Marshal.CreateWrapperOfType Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
CreateWrapperOfType(Object, Type) |
Przestarzałe.
Opakowuje określony obiekt COM w obiekcie określonego typu. |
CreateWrapperOfType<T,TWrapper>(T) |
Opakowuje określony obiekt COM w obiekcie określonego typu. |
CreateWrapperOfType(Object, Type)
- Źródło:
- Marshal.NoCom.cs
- Źródło:
- Marshal.NoCom.cs
- Źródło:
- Marshal.NoCom.cs
Przestroga
CreateWrapperOfType(Object, Type) may be unavailable in future releases. Instead, use CreateWrapperOfType<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296519
Opakowuje określony obiekt COM w obiekcie określonego typu.
public:
static System::Object ^ CreateWrapperOfType(System::Object ^ o, Type ^ t);
[System.Obsolete("CreateWrapperOfType(Object, Type) may be unavailable in future releases. Instead, use CreateWrapperOfType<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296519")]
[System.Security.SecurityCritical]
public static object CreateWrapperOfType (object o, Type t);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object? CreateWrapperOfType (object? o, Type t);
[System.Security.SecurityCritical]
public static object CreateWrapperOfType (object o, Type t);
public static object CreateWrapperOfType (object o, Type t);
public static object? CreateWrapperOfType (object? o, Type t);
[<System.Obsolete("CreateWrapperOfType(Object, Type) may be unavailable in future releases. Instead, use CreateWrapperOfType<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296519")>]
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : obj * Type -> obj
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member CreateWrapperOfType : obj * Type -> obj
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : obj * Type -> obj
static member CreateWrapperOfType : obj * Type -> obj
Public Shared Function CreateWrapperOfType (o As Object, t As Type) As Object
Parametry
- o
- Object
Obiekt, który ma zostać opakowany.
- t
- Type
Typ otoki do utworzenia.
Zwraca
Nowo opakowany obiekt, który jest wystąpieniem żądanego typu.
- Atrybuty
Wyjątki
t
musi pochodzić z klasy __ComObject
.
-lub-
t
jest typem środowiska uruchomieniowego systemu Windows.
Parametr t
ma wartość null
.
o
Nie można przekonwertować na typ docelowy, ponieważ nie obsługuje wszystkich wymaganych interfejsów.
Uwagi
CreateWrapperOfType Konwertuje jeden typ klasy COM, zazwyczaj typ podstawowy __ComObject
, na inny typ klasy COM. Wejściowy obiekt COM, reprezentowany przez parametr o
, jest runtime Callable Wrapper (RCW).
t
Parametry i o
muszą być klasami, których podpisy są przypisywane za pomocą System.Runtime.InteropServices.ComImportAttributepolecenia . Narzędzie Tlbimp.exe (importer biblioteki typów) stosuje ten atrybut podczas importowania biblioteki typów. Jeśli ręcznie utworzysz RCW w kodzie źródłowym, należy zastosować ten atrybut do sygnatury zarządzanej reprezentującej oryginalną coklasę, aby oznaczyć jej źródła COM.
Tlbimp.exe importuje coklasę COM jako klasę zarządzaną i interfejs. Interfejs coclass ma taką samą nazwę jak oryginalna coclass, a klasa zarządzana ma oryginalną nazwę coclass dołączona z "Class". Na przykład coklasa o nazwie MyCoclass
staje się interfejsem coklasy o nazwie MyCoclass
i klasą zarządzaną o nazwie MyCoclassClass
. Ponieważ t
musi być klasą, a nie interfejsem, należy określić klasę zarządzaną (MyCoclassClass
), a nie interfejs coclass.
Uwaga
Utracisz tożsamość wejściowego obiektu COM, ponieważ nowe wystąpienie RCW opakowuje wskaźnik IUnknown uwidoczniony przez oryginalny RCW.
Zobacz też
Dotyczy
CreateWrapperOfType<T,TWrapper>(T)
- Źródło:
- Marshal.NoCom.cs
- Źródło:
- Marshal.NoCom.cs
- Źródło:
- Marshal.NoCom.cs
Opakowuje określony obiekt COM w obiekcie określonego typu.
public:
generic <typename T, typename TWrapper>
static TWrapper CreateWrapperOfType(T o);
[System.Security.SecurityCritical]
public static TWrapper CreateWrapperOfType<T,TWrapper> (T o);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static TWrapper CreateWrapperOfType<T,TWrapper> (T? o);
public static TWrapper CreateWrapperOfType<T,TWrapper> (T o);
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : 'T -> 'Wrapper
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member CreateWrapperOfType : 'T -> 'Wrapper
static member CreateWrapperOfType : 'T -> 'Wrapper
Public Shared Function CreateWrapperOfType(Of T, TWrapper) (o As T) As TWrapper
Parametry typu
- T
Typ obiektu do opakowania.
- TWrapper
Typ obiektu, który będzie zwracany.
Parametry
- o
- T
Obiekt, który ma zostać opakowany.
Zwraca
Nowo opakowany obiekt.
- Atrybuty
Wyjątki
T
musi pochodzić z klasy __ComObject
.
-lub-
T
jest typem środowiska uruchomieniowego systemu Windows.
o
Nie można przekonwertować na element , TWrapper
ponieważ nie obsługuje wszystkich wymaganych interfejsów.
Uwagi
CreateWrapperOfType<T,TWrapper>(T) Konwertuje obiekt COM typu T
na TWrapper
typ klasy COM. Wejściowy obiekt COM, reprezentowany przez parametr o
, jest runtime Callable Wrapper (RCW).
T
Zarówno parametr typu ogólnego, jak i o
parametr muszą być klasami, których podpisy są przypisywane za pomocą atrybutu System.Runtime.InteropServices.ComImportAttribute . Narzędzie Tlbimp.exe (importer biblioteki typów) stosuje ten atrybut podczas importowania biblioteki typów. Jeśli ręcznie utworzysz RCW w kodzie źródłowym, należy zastosować ten atrybut do sygnatury zarządzanej reprezentującej oryginalną coklasę, aby oznaczyć jej źródła COM.
Tlbimp.exe importuje coklasę COM jako klasę zarządzaną i interfejs. Interfejs coclass ma taką samą nazwę jak oryginalna coclass, a klasa zarządzana ma oryginalną nazwę coclass dołączona z "Class". Na przykład coklasa o nazwie MyCoclass
staje się interfejsem coklasy o nazwie MyCoclass
i klasą zarządzaną o nazwie MyCoclassClass
. PonieważT
musi być klasą, a nie interfejsem, należy określić klasę zarządzaną (MyCoclassClass
), a nie coclass
interfejs.
Uwaga
Utracisz tożsamość wejściowego obiektu COM, ponieważ nowe wystąpienie RCW opakowuje wskaźnik IUnknown uwidoczniony przez oryginalny RCW.