WPFでは、次を使用できます。
var texture = (INuiFrameTexture) Marshal.GetObjectForIUnknown(frame.pFrameTexture);
私の INuiFrameTexture は次のようになります。
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("00000000-0000-0000-C000-000000000046")]
internal interface INuiFrameTexture {
[PreserveSig]
int BufferLen();
[PreserveSig]
int Pitch();
[PreserveSig]
HRESULT LockRect(uint Level,ref NuiLockedRect pLockedRect,ref IntPtr pRect,uint Flags);
[PreserveSig]
HRESULT GetLevelDesc(uint Level, NuiSurfaceDesc pDesc);
[PreserveSig]
HRESULT UnlockRect([In] uint Level);
}
今、Silverlight で同じことを達成しようとしていますが、フレームワークには GetObjectForIUnknown メソッドがありません。Silverlight でこれを行う方法があるかどうかは誰にもわかりませんか?