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 COM Components using VC-ATL(1) (轉)dev
- Developing COM Components using VC-ATL(2-2) (轉)dev
- Developing COM Components using VC-ATL(3-3) (轉)dev
- Developing COM Components using VC-ATL(3-5) (轉)dev
- Developing COM Components using VC-ATL(3-4) (轉)dev
- Developing COM Components using VC-ATL(3-6) (轉)dev
- Developing COM Components using VC-ATL(3-7) (轉)dev
- Developing for ARKit 1.5 update using Unity ARKit PlugindevUnityPlugin
- [轉帖]10 Hardware Components of Oracle ExadataOracle
- Angular 2 Components CommunicateAngular
- 探索Web ComponentsWeb
- [譯] Architecture Components 之 Adding Components to your ProjectProject
- 從HTML Components的衰落看Web Components的危機HTMLWeb
- Web Components 小欖Web
- 「 重磅 」React Server ComponentsReactServer
- Styled-Components初探
- Web Components 原生元件 TrendsWeb元件
- 【譯】Web Components簡介Web
- Web Components系列(一) —— 概述Web
- Building Custom ComponentsUI
- astro中建立web componentsASTWeb
- SAP Commerce Cloud Build Manifest ComponentsCloudUI
- Flutter Flame 教程3 -- Components元件Flutter元件
- 初識 Web Components 與 StencilWeb
- 【譯】容器元件 (Container Components)元件AI
- Atag – Web Components 最佳實踐Web
- visual components premium特色功能REM
- Web Components之Custom ElementsWeb
- Altium designer 從原理圖更新至PCB時出現提示:failed to match * of * components using unique identifiersAIIDE
- XML 程式設計思想: UBL 1.0(以及 ebXML Core Components 等)(轉)XML程式設計
- Web Components 入門例項教程Web
- [譯] styled-components v3.1.0
- [譯] Web Components 的高階工具Web
- Visual Components軟體特點
- 淺析Web components的痛點Web
- Web Components 系列(五)—— 關於 TemplatesWeb
- Web Components 系列(五)—— 詳解 SlotsWeb
- CSS in JS 之 Styled-components 用法CSSJS