|
@@ -443,6 +443,17 @@ STDAPI DllRegisterServer(void)
|
|
|
VSS_PROV_SOFTWARE,
|
|
|
const_cast<WCHAR*>(QGA_PROVIDER_VERSION),
|
|
|
g_gProviderVersion);
|
|
|
+ if (hr == (long int) VSS_E_PROVIDER_ALREADY_REGISTERED) {
|
|
|
+ DllUnregisterServer();
|
|
|
+ hr = pVssAdmin->RegisterProvider(g_gProviderId, CLSID_QGAVSSProvider,
|
|
|
+ const_cast<WCHAR * >
|
|
|
+ (QGA_PROVIDER_LNAME),
|
|
|
+ VSS_PROV_SOFTWARE,
|
|
|
+ const_cast<WCHAR * >
|
|
|
+ (QGA_PROVIDER_VERSION),
|
|
|
+ g_gProviderVersion);
|
|
|
+ }
|
|
|
+
|
|
|
if (FAILED(hr)) {
|
|
|
errmsg_dialog(hr, "RegisterProvider failed");
|
|
|
}
|