请教:关于COM的初级问题(100分)

  • 主题发起人 formater
  • 开始时间
F

formater

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个程序,使用了COM技术,可以在BCB或Delphi中通过Import type library导入,
在BCB中生成两个.cpp文件和两个.h文件。在程序的帮助文件里,这个COM的属性和方法
是很少的,但生成的文件竟有70多K,因此看这个.h .cpp文件理不清头绪。
问题:导入后,菜单View下的Type Library是灰的,如何用Type Library Editor来编辑
这个COM接口,使得他的属性、方法一目了然。如果无法做到,请说明COM接口的参数类型
与BCB或Delphi中的变量类型的一一对应关系,如wchar_t**,bstr*等如何赋值Edit.Text。
如果嫌麻烦请说明使用别人写好的COM的经验,如怎样为抽象类建立实体,怎样使用
虚拟函数等。
 
tagVARIANT与VARIANT有何区别,如何把tagVARIANT变量赋给AnsiString变量?
 
你是用什麽编译的,如果用的是delphi把*_TLB.PAS加入
 
你没有没有源程序如何可以编辑它的类型库?要知道类型库编辑后如果和程序实现部分不一致会出错的![:(!]
下面是pascal中的类型和com中的类型对应关系:
Pascal type IDL type variant type Automation compatible Description
Smallint short VT_I2 Yes 2-byte signed integer
Integer long VT_I4 Yes 4-byte signed integer
Single single VT_R4 Yes 4-byte real
Double do
uble VT_R8 Yes 8-byte real
Currency CURRENCY VT_CY Yes currency
TDateTime DATE VT_DATE Yes date
WideString BSTR VT_BSTR Yes binary string
IDispatch IDispatch VT_DISPATCH Yes pointer to IDispatch interface
SCODE SCODE VT_ERROR Yes Ole Error Code
WordBool VARIANT_BOOL VT_BOOL Yes True = -1, False = 0
OleVariant VARIANT VT_VARIANT Yes Ole Variant
IUnknown IUnknown VT_UNKNOWN Yes pointer to IUnknown interface
Shortint byte VT_I1 No 1 byte signed integer
Byte unsigned char VT_UI1 Yes 1 byte unsigned integer
Word unsigned short VT_UI2 No* 2 byte unsigned integer
LongWord unsigned long VT_UI4 No* 4 byte unsigned integer
Int64 __int64 VT_I8 No 8 byte signed real
Largeuint uint64 VT_UI8 No 8 byte unsigned real
SYSINT int VT_INT No* system dependent integer (Win32=Integer)
SYSUINT unsigned int VT_UINT No* system dependent unsigned integer
HResult HRESULT VT_HRESULT No 32 bit error code
Pointer VT_PTR -> VT_VOID No untyped pointer
SafeArray SAFEARRAY VT_SAFEARRAY No OLE Safe Array
PChar LPSTR VT_LPSTR No pointer to Char
PWideChar LPWSTR VT_LPWSTR No pointer to WideChar
 
HaHa,用Type Library Editor来编辑这个COM接口,Open 相对应在.DLL文件即可。
 
多人接受答案了。
 
顶部