U
uncarman
Unregistered / Unconfirmed
GUEST, unregistred user!
编写一个ActiveX DLL,其中类对象都为COM对象,即从TTypedComObject继承下来的类,但这些类的接口无法实现属性,如下代码所示
IZBJComm = interface(IUnknown)
['{E8B9171A-EA52-40EF-887B-08863B438C2B}']
function OpenComm: WordBool
stdcall;
function ZbjReset(blnReturnStatus: WordBool): TZbjStatusValue
stdcall;
function ZbjEnable(blnReturnStatus: WordBool): TZbjStatusValue
stdcall;
function ZbjDisable(blnReturnStatus: WordBool): TZbjStatusValue
stdcall;
function ZbjReturn(blnReturnStatus: WordBool): TZbjStatusValue
stdcall;
function ZbjStack(blnReturnStatus: WordBool): TZbjStatusValue
stdcall;
function ZbjAckToAcceptor(blnReturnStatus: WordBool): TZbjStatusValue
stdcall;
function ZbjGetStatus: TZbjStatusValue
stdcall;
function ReceFromZbj(var commCode: HResult
var money: HResult): WordBool
stdcall;
function CloseComm: WordBool
stdcall;
function Get_CommPort: TCommPort
stdcall;
procedure Set_CommPort(Param1: TCommPort)
stdcall;
//手动添加此属性,结果Type Library编辑器在保存时将其删除,说明不合法
property CommPort: TCommPort read Get_CommPort write Set_CommPort;
end;
如果这些类是从TAutoObject继承下来的则可以通过Type Library编辑器添加属性,但是TAutoObject继生类的接口方法一定要返回HResult,无法返回其他类型,实在不爽。
如果我是用以上TTypedComObject继生类,如何给这些继生类添加属性接口,请指点.
IZBJComm = interface(IUnknown)
['{E8B9171A-EA52-40EF-887B-08863B438C2B}']
function OpenComm: WordBool
stdcall;
function ZbjReset(blnReturnStatus: WordBool): TZbjStatusValue
stdcall;
function ZbjEnable(blnReturnStatus: WordBool): TZbjStatusValue
stdcall;
function ZbjDisable(blnReturnStatus: WordBool): TZbjStatusValue
stdcall;
function ZbjReturn(blnReturnStatus: WordBool): TZbjStatusValue
stdcall;
function ZbjStack(blnReturnStatus: WordBool): TZbjStatusValue
stdcall;
function ZbjAckToAcceptor(blnReturnStatus: WordBool): TZbjStatusValue
stdcall;
function ZbjGetStatus: TZbjStatusValue
stdcall;
function ReceFromZbj(var commCode: HResult
var money: HResult): WordBool
stdcall;
function CloseComm: WordBool
stdcall;
function Get_CommPort: TCommPort
stdcall;
procedure Set_CommPort(Param1: TCommPort)
stdcall;
//手动添加此属性,结果Type Library编辑器在保存时将其删除,说明不合法
property CommPort: TCommPort read Get_CommPort write Set_CommPort;
end;
如果这些类是从TAutoObject继承下来的则可以通过Type Library编辑器添加属性,但是TAutoObject继生类的接口方法一定要返回HResult,无法返回其他类型,实在不爽。
如果我是用以上TTypedComObject继生类,如何给这些继生类添加属性接口,请指点.