C#クライアントからストリームを取得して処理する必要があるCOMオブジェクトがあります。IStreamを使用する必要があるようです。だから私は私のidlを以下のように書きます。次に、MIDLを使用してtlbにコンパイルし、ソリューションをコンパイルして登録し、ライブラリへの参照をC#プロジェクトに追加します。
Visual Studioは、自分のライブラリにIStream定義を作成します。どうすればそれを止めて、COMTypes IStreamを使用できるようにできますか?3つの答えのうちの1つがあるようです:いくつかのインポートを追加します
- IStreamを再宣言しないようにidlに追加します(MSCOREEをインポートするとそれは実行されますが、C#の問題は解決されません)
- どういうわけか、Visual StudioでIStreamのエイリアスを作成しますが、これを行う方法がわかりません。
- 私の考えはすべて完全に間違っているので、IStreamを使用するべきではありません
ヘルプ...ありがとう
[
uuid(3AC11584-7F6A-493A-9C90-588560DF8769),
version(1.0),
]
library TestLibrary
{
importlib("stdole2.tlb");
[
uuid(09FF25EC-6A21-423B-A5FD-BCB691F93C0C),
version(1.0),
helpstring("Just for testing"),
dual,
nonextensible,
oleautomation
]
interface ITest: IDispatch
{
[id(0x00000006),helpstring("Testing stream")]
HRESULT _stdcall LoadFromStream([in] IStream * stream, [out, retval] IMyTest ** ResultValue);
};
[
uuid(CC2864E4-55BA-4057-8687-29153BE3E046),
noncreatable,
version(1.0)
]
coclass HCTest
{
[default] interface ITest;
};
};