Interfejs IVsCoTaskMemFreeMyStrings
Używane w powiązaniu z niektórych inne interfejsy, aby wskazać, że zwracane z tych interfejsów ciągi powinny zwolniona przez obiekt wywołujący.
Przestrzeń nazw: Microsoft.VisualStudio.Shell.Interop
Zestaw: Microsoft.VisualStudio.Shell.Interop.8.0 (w Microsoft.VisualStudio.Shell.Interop.8.0.dll)
Składnia
[InterfaceTypeAttribute(1)]
[GuidAttribute("47811DA4-330F-4EB5-9D14-BBC82773DA66")]
public interface IVsCoTaskMemFreeMyStrings
[InterfaceTypeAttribute(1)]
[GuidAttribute("47811DA4-330F-4EB5-9D14-BBC82773DA66")]
public interface class IVsCoTaskMemFreeMyStrings
[<InterfaceTypeAttribute(1)>]
[<GuidAttribute("47811DA4-330F-4EB5-9D14-BBC82773DA66")>]
type IVsCoTaskMemFreeMyStrings = interface end
<InterfaceTypeAttribute(1)>
<GuidAttribute("47811DA4-330F-4EB5-9D14-BBC82773DA66")>
Public Interface IVsCoTaskMemFreeMyStrings
Uwagi
COM normalne zasady wymagają dowolny ciąg przekazywana z powrotem do rozmówcy powinny kopię ciąg, który ostatecznie zbywa wywołującego.Innymi słowy obiekt wywołujący jest podana własności ciąg i można zbywać ciągu, gdy obiekt wywołujący, poda.
Niektóre interfejsy w Visual Studio miejsca rozszerzalności nie przestrzegają tę regułę z przekazaniem prawa własności do rozmówcy, ze względu na wydajność.Wywoływania tych specjalnych interfejsów zrozumieć tę zmianę w regule i nie należy próbować zbywać ciąg.Jednak w kodzie zarządzanym deklaracji parametru zwracane ciągi w tych specjalnych interfejsów implikują zawsze własności przekazywanie ciągu do obiektu wywołującego.
Kod zarządzany należy implementować IVsCoTaskMemFreeMyStrings interfejsu na tych określonych interfejsach, aby wskazać, że ciąg naprawdę powinny zostać uwolnione przez obiekt wywołujący; w przeciwnym wypadku obiekt wywołujący nie zwolni ciąg.
Uwagi dotyczące implementacji:
Implementuje ten interfejs na tym samym interfejsy, które zawierają następujące metody.Wykonania tego interfejsu wskazuje, że ciąg zwracany z następujących metod jest usuwana przez obiekt wywołujący; w przeciwnym razie ciąg nie jest zbywany.
GetText(IVsLiteTreeList interface)
GetTipText(IVsLiteTreeList interface)
GetSourceContext(IVsObjectList interface)
GetText(IVsObjectList interface)
GetNameAt(IVsLibraryMgr interface)
GetSeparatorString(IVsLibrary interface)
GetDisplayText(IVsCompletionSet interface)
FullTextRead(IVsFullTextScanner interface)
Read(IVsTextScanner interface)
GetEntryText(IVsDropdownBarClient interface)
Image_FullTextRead(IVsPersistentTextImage interface)
Uwagi dotyczące wywoływania:
Niezarządzane calling kod do kodu zarządzanego do jednej metody na liście wykazane w informacji dodatkowej do implementacji sekcji wywołania QueryInterface metody na interfejsie, który zawiera metody uzyskiwania IVsCoTaskMemFreeMyStrings interfejsu.Jeśli IVsCoTaskMemFreeMyStrings interfejsu można uzyskać, jest odpowiedzialny za zwalniania ciąg, wywołując FreeCoTaskMem funkcji (nie SysFreeString funkcji).Jeśli nie można uzyskać IVsCoTaskMemFreeMyStrings interfejsu, nie należy próbować wolne zwrócony ciąg.
Zobacz też
Przestrzeń nazw Microsoft.VisualStudio.Shell.Interop
Powrót do początku