Я разрабатываю C ++ COM-библиотеку, чтобы использовать ее из приложения VB6. Файл .IDL определяет несколько интерфейсов и библиотеку классов с некоторыми классами компонентов, которые реализуют эти интерфейсы:
[
local,
object,
uuid(....),
version(1.0)
]
interface ICOMCvPixelBuffer : IUnknown
{
....
};
[
local,
object,
uuid(....),
version(1.0)
]
interface ICOMCvBitmap : IUnknown
{
....
HRESULT GetPixelBuffer([retval][out] ICOMCvPixelBuffer** pBuffer);
HRESULT SetPixelBuffer([in] ICOMCvPixelBuffer* pBuffer);
....
};
[
uuid(....),
version(1.0)
]
library COMCvLibrary
{
importlib("stdole32.tlb");
interface ICOMCvBitmap;
interface ICOMCvPixelBuffer;
[
uuid(....),
version(1.0)
]
coclass CCOMCvPixelBuffer
{
[default] interface ICOMCvPixelBuffer;
};
[
uuid(....),
version(1.0)
]
coclass CCOMCvBitmap
{
[default] interface ICOMCvBitmap;
};
};
Обозреватель объектов в VB6 показывает определение метода SetPixelBuffer
класса CCOMCvBitmap
как Sub SetPixelBuffer(pBuffer As CCOMCvPixelBuffer)
.
Почему это не Sub SetPixelBuffer(pBuffer As ICOMCvPixelBuffer)
, как объявлено в .IDL?