Delphi

本类阅读TOP10

·游戏外挂设计技术探讨①
·如何使用Delphi设计强大的服务器程序
·分布式网络考试系统原型分析及实现
·用DLL方式封装MDI子窗体。
·使用HOOK随心监视Windows
·Delphi 水晶报表打包解决
·url编码与解码工具附代码
·工人线程中关闭窗体的实现
·hdsi2.0 sql注入部分抓包分析语句
·Borland Delphi 2005 下载

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Delphi 接口笔记

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

//  a:=stringToGuid('{000208FB-0000-0000-C000-000000000046}');
//  IChart 和 chart接口各自具有不同的GUID根本不相容
//  a:=stringtoGuid('{000208FB-0001-0000-C000-000000000046}');}
// StringToGuid 用于将 字符串GUID转换为 TGUID
// GuidToString 用于将TGUID转换为字符串guid
//varSupports 判断 Variant 变量 是否支持 TGuid这个接口

procedure TForm1.btnGenerateClick(Sender: TObject);
var
  Guid: TGUID;
begin
  CoCreateGuid(Guid);
  Memo1.Lines.Add(GuidToString(Guid));
end;
Supports 函数 判断是否支持特定接口;
CoCreateGuid 这个procedure 可以生成GUID号。
GuidToString 将TGUID转换成字符串GUID
StringToGuid 将字符串GUID转换成 TGUID 类型

TGUID 声明
  TGUID = packed record
    D1: LongWord;
    D2: Word;
    D3: Word;
    D4: array[0..7] of Byte;
  end;
GUID 例子:
{D2552D95-A2D7-48D8-AA27-F08E810779BD}

当 interface 变量 赋值为Nil时自动释放。
可以将实现某接口的变量作为参数直接赋值给需要这个接口作为参数的过程或函数。

接口数组的声明:
FEmpArray: Array[1 .. MAX_EMPLOYEES] of IUnknown;

OLE容器中的自动化对象与iMPORT 后的 xxxx_tlb.PAS 的通信方式。
var
 vsht:IUnknown;
 isht:_Workbook;
begin
  olc.Run;
  if not (olc.State=osRunning) then olc.Run;
  vsht:=olc.OleObjectInterface;  //调用OLE容器D的OleObjectInterface 而不是OleObject
  isht:=vsht as _Workbook;
  esht.ConnectTo(isht);
  (esht.Worksheets.Item[1] as _WorkSheet).Cells.Item[1,1].value:=25;
  esht.Application.Quit;
  esht.Disconnect;
end;

问题:
 Delphi Import office 的 Graph 对象后为什么会生成 IApplication、IChart……等这样的接口和
Dispinterface 这样的接口有什么区别?,另外 Graph中 Dispinterface 的接口可以在注册表中找到相同的GUID而i开头的接口就找不到,为什么?另外根据FLAG来看,似乎声明成了 HIDDEN DISPABLE
是什么含义?
隐藏接口吗?有什么用?调试? 为什么EXCEL的IMPORT没有?

接口真的是好乱啊:
导入每个COM组件的XXXX_TLB.pas每个对象都有自己的模式?并不相同?怎么回事?不明白!




相关文章

相关软件




月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有