我正在开发一个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中的对象浏览器中,
CCOMCvBitmap
类的SetPixelBuffer
方法的定义显示为Sub SetPixelBuffer(pBuffer As CCOMCvPixelBuffer)
。为什么它不是在.IDL中声明的Sub SetPixelBuffer(pBuffer As ICOMCvPixelBuffer)
?