Como declaro um IStream em idl, para que o visual studio o mapeie para s.w.interop.comtypes?
Eu tenho um objeto COM que precisa pegar um fluxo de um cliente C # e processá-lo. Parece que eu deveria usar o IStream. Então eu escrevo meu idl como abaixo. Em seguida, uso o MIDL para compilar em um tlb, compile minha solução, registre-a e adicione uma referência à minha biblioteca em um projeto C #.
O Visual Studio cria uma definição IStream na minha própria biblioteca. Como posso impedir que isso seja feito e usar o COMTypes IStream? Parece que haveria uma das 3 respostas: adicione alguma importação
para o idl, para não redefinir o IStream (a importação do MSCOREE faz isso, mas não resolve o problema do C #)de alguma forma, aliás, o IStream no visual studio - mas não vejo como fazer isso.Todo o meu pensamento está completamente errado e eu não deveria estar usando o IStream.ajuda ... obrigado
[
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;
};
};