directx com インポートを行うコードを見つけました。しかし、私はそれを理解していませんし、私のコードでも機能しません。
それはこのコードです:
internal unsafe Result GetCapabilities(out BufferCapabilities dSBufferCapsRef)
{
BufferCapabilities.__Native native = BufferCapabilities.__NewNative();
Result result = (Result) **(((IntPtr*) base._nativePointer))[(int) (((IntPtr) 3) * sizeof(void*))](base._nativePointer, (IntPtr) &native);
dSBufferCapsRef = new BufferCapabilities();
dSBufferCapsRef.__MarshalFrom(ref native);
result.CheckError();
return result;
}
奇妙な行は、メソッドの行 2 です。Result result = .... _nativePointer は次のように宣言されます。
protected unsafe void* _nativePointer;
だから私の答えは、ポインターが参照しているcominterfaceのメンバーを呼び出す方法です。これをどのように呼び出すことができますか: (base._nativePointer, (IntPtr) &native)。これは、ポインター _nativePointer が指しているインターフェイスのメンバーです。
少し混乱していることは承知していますが、私の質問を理解していただければ幸いです。