Developing COM Components using VC-ATL(2-3) (轉)
COM的註冊角色:namespace prefix = o ns = "urn:schemas--com::office" />
如果COM用名裝載並且元件位置或名字變化了,客戶應用將不能訪問元件。檔名無法提供在一個上的不同的元件版本,因而造成了不同版本商之間的產品衝突。
COM透過藉助識別符號ID註冊系統登錄檔中的COM元件的位置來處理這個問題。COM元件的ID必須保證是系統唯一的,以避免與不同產品的衝突,並且客戶可不必知道元件的物理位置而可以訪問元件,這也就是所謂的元件對客戶的透明化。
COM類註冊在HKEY_CLASSES_CLSID主鍵下。對每個CLSID主鍵,有一個子鍵InprocServer32,這個子鍵的預設值為DLL的檔名。
元件可以使用regsver32程式註冊。這個程式提供進入登錄檔的元件。
DLL檔案可以使用以下命令註冊:
Regsver32
為了註冊EXE檔案,命令語法為:
註冊COM元件讀取的註冊檔案是MyCom.rgs
在本例中,登錄檔的結構為(紅色為CLSID,綠色為IID,藍色為LIBID)
HKEY_CLASSES_ROOTCLSID{FEB7BDEF-FB6F-446B-BE31-DF0A3AD391BA}
預設MyClass
InprocServer32
預設C:MyProjDeMyProj.dll
Apartment ThreadingModel
ProgID
預設MyProj.MyCom.1
Programmable
TypeLib
預設{FE651184-11DE-4D01-BD69-B07DDFA12D0C}
VersionIndependentProgID
預設MyProj.MyCom
HKEY_CLASSES_ROOTMyProj.MyCom
CLSID
預設{FEB7BDEF-FB6F-446B-BE31-DF0A3AD391BA}
CurVer
預設MyProj.MyCom.1
HKEY_CLASSES_ROOTMyProj.MyCom.1
CLSID
預設{FEB7BDEF-FB6F-446B-BE31-DF0A3AD391BA}
HKEY_CLASSES_ROOTInterface{65460F9C-3BAB-4055-885A-8ED59F5FA9B0}
預設IMyCom
StubClsid
ProxyStubClsid32
TypeLib
預設{FE651184-11DE-4D01-BD69-B07DDFA12D0C}
Version 1.0
HKEY_CLASSES_ROOTTypeLib{FE651184-11DE-4D01-BD69-B07DDFA12D0C}
1.0
預設MyProj 1.0 Type Library
1.0
1.0
預設C:MyProjDebugMyProj.dll
1.0FLAGS
1.0HELPDIR
預設C:MyProjDebug
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-963225/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Developing for ARKit 1.5 update using Unity ARKit PlugindevUnityPlugin
- [轉帖]10 Hardware Components of Oracle ExadataOracle
- Python 基礎 2-3 列表的反轉與排序Python排序
- 2-3
- Useful Techniques in Developing On-demand Service ApplicationdevAPP
- Choosing a driver model for developing a USB client driverdevclient
- [轉帖]10 Tips for using the Eclipse Memory AnalyzerEclipse
- SpringBoot文件之Developing的閱讀筆記Spring Bootdev筆記
- MySQL 索引優化 Using where, Using filesortMySql索引優化
- 探索Web ComponentsWeb
- MySQL explain結果Extra中"Using Index"與"Using where; Using index"區別MySqlAIIndex
- 資料結構--2-3樹資料結構
- Angular 2 Components CommunicateAngular
- Web Components 小欖Web
- 「 重磅 」React Server ComponentsReactServer
- Using hints for PostgresqlSQL
- String interpolation using $
- using的用法
- Using mysqldump for backupsMySql
- MySQL 之 USINGMySql
- 利用wps的com口用python實現excel轉pdfPythonExcel
- 【譯】Web Components簡介Web
- 【譯】容器元件 (Container Components)元件AI
- Web Components 原生元件 TrendsWeb元件
- Microsoft Office 2003 Web ComponentsROSWeb
- astro中建立web componentsASTWeb
- Web Components系列(一) —— 概述Web
- visual components premium特色功能REM
- pdf crop using pythonPython
- MGTSC 212 using ExcelExcel
- Video Division with using OpenCvIDEOpenCV
- Dictionary application using SwingAPP
- What are the benefits of using an proxy?
- 淺談Using filesort和Using temporary 為什麼這麼慢
- Atag – Web Components 最佳實踐Web
- Android Architecture Components 之 Room 篇AndroidOOM
- Flutter Flame 教程3 -- Components元件Flutter元件
- Visual Components軟體特點
- 初識 Web Components 與 StencilWeb