У меня есть COM-объект, который должен принять поток от клиента C # и обработать его. Казалось бы, я должен использовать IStream. Поэтому я пишу свой idl, как показано ниже. Затем я использую 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;
};
};