根據此文章: http://msdn.microsoft.com/en-us/library/ms809975.aspx 您可以在服務中導出組件。導出相同COM組件的多個服務
但是是否可以創建多個服務來導出同一個組件的不同實例?
我看到一個潛在的問題是定義\ HKEY_CLASSES_ROOT \ AppID \\ LocalService時,因爲每個服務都有不同的名稱,我不能將它們全部放在同一個密鑰中。
謝謝
根據此文章: http://msdn.microsoft.com/en-us/library/ms809975.aspx 您可以在服務中導出組件。導出相同COM組件的多個服務
但是是否可以創建多個服務來導出同一個組件的不同實例?
我看到一個潛在的問題是定義\ HKEY_CLASSES_ROOT \ AppID \\ LocalService時,因爲每個服務都有不同的名稱,我不能將它們全部放在同一個密鑰中。
謝謝
它鏈接的文章中很明確地提到:
Do not use REGCLS_SINGLEUSE. Registration fails if you use this flag. The operating system allows a single instance of a service. For this reason, the COM component must be available to multiple clients simultaneously.
您有如果你想它的多個實例使用常規進程外的服務器。
不,這不會談論服務。 –
D'oh,你說得對。我一般只想到本地服務器,而不是專門的Win32服務。 – Luke
呃,好吧,怎麼算出來的?引用的關鍵點是您可以獲得僅啓動一次的服務。 –
我所做的是:CoGetClassObject(MyCLSID CLSCTX_INPROC_SERVER,NULL,IID_IClassFactory,(PVOID *)&pCF);後來CoRegisterClassObject(MyCLSID,PCF,CLSCTX_LOCAL_SERVER,REGCLS_MULTIPLEUSE | REGCLS_MULTI_SEPARATE,與m_ckClassObj); – mathk
我有2型動物名安裝服務和它的工作但在某些時候,我有一個錯誤:'該類被配置爲作爲與調用者不同的安全ID運行,然後我將\ HKEY_CLASSES_ROOT \ AppID \ {CLSID} \ LocalService重命名爲第一個服務的名稱,啓動它並將其重新命名爲第二個服務的名稱並啓動第二個服務,並且它可以正常工作 – mathk