IVsCoTaskMemFreeMyStrings Interfejs

Definicja

Używany w skojarzeniu z pewnymi innymi interfejsami, aby wskazać, że ciągi zwracane z tych interfejsów powinny być zwolnione przez obiekt wywołujący.

public interface class IVsCoTaskMemFreeMyStrings
public interface class IVsCoTaskMemFreeMyStrings
__interface IVsCoTaskMemFreeMyStrings
[System.Runtime.InteropServices.Guid("47811DA4-330F-4EB5-9D14-BBC82773DA66")]
[System.Runtime.InteropServices.InterfaceType(1)]
public interface IVsCoTaskMemFreeMyStrings
[<System.Runtime.InteropServices.Guid("47811DA4-330F-4EB5-9D14-BBC82773DA66")>]
[<System.Runtime.InteropServices.InterfaceType(1)>]
type IVsCoTaskMemFreeMyStrings = interface
Public Interface IVsCoTaskMemFreeMyStrings
Atrybuty

Uwagi

Normalne reguły modelu COM wymagają, aby wszystkie ciągi przesyłane z powrotem do obiektu wywołującego były kopią ciągu, który został ostatecznie oddysponowany przez wywołującego. Innymi słowy, obiekt wywołujący otrzymuje własność ciągu i może usunąć ciąg, gdy obiekt wywołujący jest dopasowany.

Niektóre interfejsy w Visual Studio przestrzeni rozszerzalności nie są zgodne z tą regułą przekazania własności do obiektu wywołującego ze względu na wydajność. Obiekty wywołujące tych specjalnych interfejsów rozumieją tę zmianę w regule i nie próbują usuwania ciągu. Jednak w kodzie zarządzanym deklaracje parametrów dla zwracanych ciągów w tych specjalnych interfejsach implikują zawsze przekazanie własności ciągu do obiektu wywołującego.

Kod zarządzany powinien implementować IVsCoTaskMemFreeMyStrings interfejs na tych konkretnych interfejsach, aby wskazać, że ciąg naprawdę powinien zostać zwolniony przez obiekt wywołujący; w przeciwnym razie obiekt wywołujący nie zwolni ciągu.

Uwagi dotyczące implementowania

Zaimplementuj ten interfejs w tych samych interfejsach, które zawierają następujące metody. Zaimplementowanie tego interfejsu wskazuje, że ciąg zwracany przez następujące metody jest usuwany przez obiekt wywołujący; w przeciwnym razie ciąg nie jest usuwany.

Uwagi dotyczące wywoływania

Jeśli kod niezarządzany jest wywoływany w kodzie zarządzanym do jednej z metod znajdujących się w sekcji Uwagi dotyczące realizatorów, należy wywołać metodę QueryInterface w interfejsie zawierającym metodę uzyskania IVsCoTaskMemFreeMyStrings interfejsu. Jeśli IVsCoTaskMemFreeMyStrings można uzyskać dostęp do interfejsu, użytkownik jest odpowiedzialny za zwolnienie ciągu przez wywołanie funkcji FreeCoTaskMem (a nie funkcji SysFreeString ). Jeśli nie możesz uzyskać IVsCoTaskMemFreeMyStrings interfejsu, nie próbuj zwolnić zwracanego ciągu.

Dotyczy