У меня есть COM-объект, который принимает поток от клиента C# и обрабатывает его. Казалось бы, я должен использовать IStream. Поэтому я пишу свой холостой ход, как показано ниже. Затем я использую MIDL для компиляции в tlb и компилирую свое решение, регистрирую его, а затем добавляю ссылку на мою библиотеку в проект C#.
Visual Studio создает определение IStream в моей собственной библиотеке. Как я могу остановить это и заставить его использовать COMTypes IStream? Кажется, будет один из 3 ответов: добавить импорт
- в idl, чтобы он не повторно объявлял IStream (импорт MSCOREE делает это, но не решает проблему C #)
- каким-то образом псевдоним 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;
};
};