//a:=stringToGuid(
{
FB
C
}
);
//IChart 和 chart接口各自具有不同的GUID根本不相容
//a:=stringtoGuid({FBC});}
// StringToGuid 用于将 字符串GUID转换为 TGUID
// GuidToString 用于将TGUID转换为字符串guid
//varSupports 判断 Variant 变量 是否支持 TGuid这个接口
procedure TFormbtnGenerateClick(Sender: TObject);
var
Guid: TGUID;
begin
CoCreateGuid(Guid);
MemoLinesAdd(GuidToString(Guid));
end;
Supports 函数 判断是否支持特定接口
CoCreateGuid 这个procedure 可以生成GUID号
GuidToString 将TGUID转换成字符串GUID
StringToGuid 将字符串GUID转换成 TGUID 类型
TGUID 声明
TGUID = packed record
D: LongWord;
D: Word;
D: Word;
D: array[] of Byte;
end;
GUID 例子
{DDADDAAFEBD}
当 interface 变量 赋值为Nil时自动释放
可以将实现某接口的变量作为参数直接赋值给需要这个接口作为参数的过程或函数
接口数组的声明
FEmpArray: Array[ MAX_EMPLOYEES] of IUnknown;
OLE容器中的自动化对象与iMPORT 后的 xxxx_tlbPAS 的通信方式
var
vsht:IUnknown;
isht:_Workbook;
begin
olcRun;
if not (olcState=osRunning) then olcRun;
vsht:=olcOleObjectInterface;//调用OLE容器D的OleObjectInterface 而不是OleObject
isht:=vsht as _Workbook;
eshtConnectTo(isht);
(eshtWorksheetsItem[] as _WorkSheet)CellsItem[]value:=;
eshtApplicationQuit;
eshtDisconnect;
end;
问题
Delphi Import office 的 Graph 对象后为什么会生成 IApplicationIChart……等这样的接口和
Dispinterface 这样的接口有什么区别?另外 Graph中 Dispinterface 的接口可以在注册表中找到相同的GUID而i开头的接口就找不到为什么?另外根据FLAG来看似乎声明成了 HIDDEN DISPABLE
是什么含义?
隐藏接口吗?有什么用?调试? 为什么EXCEL的IMPORT没有?