Che*_*tah 3 .net com guid progid
所以我使用NetOffice创建了一个outlook插件.
在插件入口点上它有这样的东西:
[GuidAttribute("d7066ab2-ac03-431a-bea5-b70d3efab2a5"), ProgId("OutlookPlugin"), ComVisible(true)]
现在我明白了这个ComVisible位将库设置为ComVisible.我假设这样我可以通过程序集信息创建单个类ComVisible而不是整个库 - >使程序集COM-Visible.
但我不明白的是什么GuidAttribute,并ProgId用于?
COM的一个重要特性是应用程序可以请求创建类对象,COM可以排除可执行文件实现它并为您加载它.这需要一种识别组件的好方法.
你会说:"好吧,不是问题,只要给它一个名字".问题是,人们不擅长挑选好名字.有一个叫做"汉斯"的家伙,我知道至少还有一个人有我的名字.生活在某个地方的是荷兰,不知道他是谁.
这是一个问题,与人名不同,组件名称冲突是致命的.您将加载完全错误的组件,您的程序将崩溃.因此,COM设计人员认为唯一的好解决方案是全球唯一ID,这个数字在整个已知的宇宙中都是独一无二的.一个GUID.
COM应用程序使用该编号来请求创建对象.底层的api函数是CoCreateInstance,第一个参数是CLSID,它是标识类的guid.
然而,人们不太善于记住很长的数字.因此,有一种识别组件的备份方法,特别是在脚本语言中使用它.这种运行时环境以可靠的方式获取guid值并不容易.所以这个号码还附有一个名字.这是ProgId.您将它传递给一个通常名为CreateObject()的辅助函数.它做了一个额外的步骤,它使用CLSIDFromProgID()辅助函数将名称映射到数字,然后调用CoCreateInstance.不用说,这有时也会出错.
| 归档时间: |
|
| 查看次数: |
1446 次 |
| 最近记录: |