Marshal.CreateWrapperOfType 메서드

정의

오버로드

CreateWrapperOfType(Object, Type)
사용되지 않습니다.

지정된 형식의 개체에 지정된 COM 개체를 래핑합니다.Wraps the specified COM object in an object of the specified type.

CreateWrapperOfType<T,TWrapper>(T)

[.NET Framework 4.5.1 이상 버전에서 지원됨][Supported in the .NET Framework 4.5.1 and later versions]

지정된 형식의 개체에 지정된 COM 개체를 래핑합니다.Wraps the specified COM object in an object of the specified type.

CreateWrapperOfType(Object, Type)

주의

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

지정된 형식의 개체에 지정된 COM 개체를 래핑합니다.Wraps the specified COM object in an object of the specified type.

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
static member CreateWrapperOfType : obj * Type -> obj
[<System.Security.SecurityCritical>]
static member CreateWrapperOfType : obj * Type -> obj
Public Shared Function CreateWrapperOfType (o As Object, t As Type) As Object

매개 변수

o
Object

래핑될 개체입니다.The object to be wrapped.

t
Type

만들 래퍼의 형식입니다.The type of wrapper to create.

반환

Object

원하는 형식의 인스턴스인 새로 래핑된 개체입니다.The newly wrapped object that is an instance of the desired type.

특성

예외

t__ComObject에서 파생되어야 합니다.t must derive from __ComObject.

또는-or- t Windows 런타임 형식입니다.t is a Windows Runtime type.

t 매개 변수가 null인 경우The t parameter is null.

o는 필요한 모든 인터페이스를 지원하지는 않으므로 대상 개체로 변환될 수 없습니다.o cannot be converted to the destination type because it does not support all required interfaces.

설명

CreateWrapperOfType 한 COM 클래스 형식 (일반적으로 기본 형식)을 __ComObject 다른 com 클래스 형식으로 변환 합니다.CreateWrapperOfType converts one COM class type, typically the base __ComObject type, to another COM class type. 매개 변수로 표현 되는 입력 COM 개체는 o RCW (런타임 호출 가능 래퍼)입니다.The input COM object, represented by parameter o, is a Runtime Callable Wrapper (RCW).

to 매개 변수는 모두 시그니처가 특성을 갖는 클래스 여야 합니다 System.Runtime.InteropServices.ComImportAttribute .Both the t and o parameters must be classes whose signatures are attributed with System.Runtime.InteropServices.ComImportAttribute. Tlbimp.exe (형식 라이브러리 가져오기) 도구는 형식 라이브러리를 가져올 때이 특성을 적용 합니다.The Tlbimp.exe (Type Library Importer) tool applies this attribute for you when it imports a type library. 소스 코드에서 수동으로 RCW를 만드는 경우 원래 coclass를 나타내는 관리 되는 서명에이 특성을 적용 하 여 해당 COM 원본을 지정 해야 합니다.If you create the RCW manually in source code, you should apply this attribute to the managed signature that represents the original coclass to signify its COM origins.

Tlbimp.exe COM coclass 를 관리 되는 클래스 및 인터페이스로 가져옵니다.Tlbimp.exe imports a COM coclass as a managed class and an interface. Coclass 인터페이스의 이름은 원래 coclass와 동일 하 고, 관리 되는 클래스에는 원래 coclass 이름에 "Class"가 추가 됩니다.The coclass interface has the same name as the original coclass, and the managed class has the original coclass name appended with "Class". 예를 들어, 라는 coclass는 라는 MyCoclass coclass 인터페이스 MyCoclass 와 라는 관리 되는 클래스가 됩니다 MyCoclassClass .For example, a coclass called MyCoclass becomes a coclass interface called MyCoclass and a managed class called MyCoclassClass. t는 인터페이스가 아닌 클래스 여야 하므로 MyCoclassClass coclass 인터페이스가 아닌 관리 되는 클래스 ()를 지정 해야 합니다.Since t must be a class, not an interface, be sure to specify the managed class (MyCoclassClass) and not the coclass interface.

참고

새 RCW 인스턴스가 원래 RCW에 의해 노출 된 IUnknown 포인터를 래핑 하므로 입력 COM 개체의 id가 손실 됩니다.You lose the identity of the input COM object because a new RCW instance wraps the IUnknown pointer exposed by the original RCW.

추가 정보

적용 대상

CreateWrapperOfType<T,TWrapper>(T)

[.NET Framework 4.5.1 이상 버전에서 지원됨][Supported in the .NET Framework 4.5.1 and later versions]

지정된 형식의 개체에 지정된 COM 개체를 래핑합니다.Wraps the specified COM object in an object of the specified type.

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

형식 매개 변수

T

래핑할 개체의 형식입니다.The type of object to wrap.

TWrapper

반환할 개체의 형식입니다.The type of object to return.

매개 변수

o
T

래핑될 개체입니다.The object to be wrapped.

반환

TWrapper

새로 래핑된 개체입니다.The newly wrapped object.

특성

예외

T__ComObject에서 파생되어야 합니다.T must derive from __ComObject.

또는-or- T Windows 런타임 형식입니다.T is a Windows Runtime type.

o가 원하는 모든 인터페이스를 지원하지 않으므로 TWrapper으로 변환할 수 없는 경우o cannot be converted to the TWrapper because it does not support all required interfaces.

설명

CreateWrapperOfType<T,TWrapper>(T) 형식의 COM 개체를 T TWrapper com 클래스 형식으로 변환 합니다.CreateWrapperOfType<T,TWrapper>(T) converts a COM object of type T to the TWrapper COM class type. 매개 변수로 표현 되는 입력 COM 개체는 o RCW (런타임 호출 가능 래퍼)입니다.The input COM object, represented by parameter o, is a Runtime Callable Wrapper (RCW).

T제네릭 형식 매개 변수와 o 매개 변수는 모두 특성이 특성으로 특성을 갖는 클래스 여야 합니다 System.Runtime.InteropServices.ComImportAttribute .Both the T generic type parameter and the o parameter must be classes whose signatures are attributed with the System.Runtime.InteropServices.ComImportAttribute attribute. Tlbimp.exe (형식 라이브러리 가져오기) 도구는 형식 라이브러리를 가져올 때이 특성을 적용 합니다.The Tlbimp.exe (Type Library Importer) tool applies this attribute for you when it imports a type library. 소스 코드에서 수동으로 RCW를 만드는 경우 원래 coclass를 나타내는 관리 되는 서명에이 특성을 적용 하 여 해당 COM 원본을 지정 해야 합니다.If you create the RCW manually in source code, you should apply this attribute to the managed signature that represents the original coclass to signify its COM origins.

Tlbimp.exe COM coclass 를 관리 되는 클래스 및 인터페이스로 가져옵니다.Tlbimp.exe imports a COM coclass as a managed class and an interface. Coclass 인터페이스의 이름은 원래 coclass와 동일 하 고, 관리 되는 클래스에는 원래 coclass 이름에 "Class"가 추가 됩니다.The coclass interface has the same name as the original coclass, and the managed class has the original coclass name appended with "Class". 예를 들어, 라는 coclass는 라는 MyCoclass coclass 인터페이스 MyCoclass 와 라는 관리 되는 클래스가 됩니다 MyCoclassClass .For example, a coclass called MyCoclass becomes a coclass interface called MyCoclass and a managed class called MyCoclassClass. T는 인터페이스가 아닌 클래스 여야 하므로 인터페이스가 아닌 관리 되는 클래스 ()를 지정 해야 합니다 MyCoclassClass coclass .BecauseT must be a class, not an interface, be sure to specify the managed class (MyCoclassClass) and not the coclass interface.

참고

새 RCW 인스턴스가 원래 RCW에 의해 노출 된 IUnknown 포인터를 래핑 하므로 입력 COM 개체의 id가 손실 됩니다.You lose the identity of the input COM object, because a new RCW instance wraps the IUnknown pointer exposed by the original RCW.

적용 대상