|
@@ -1022,43 +1022,47 @@ HKCR
|
|
if Register then
|
|
if Register then
|
|
begin
|
|
begin
|
|
classidguid := GUIDToString(ClassID);
|
|
classidguid := GUIDToString(ClassID);
|
|
- CreateRegKey('CLSID\' + classidguid, '', Description);
|
|
|
|
- if ClassVersion <> '' then
|
|
|
|
- begin
|
|
|
|
- CreateRegKey('CLSID\' + classidguid + '\ProgID', '', ProgID + '.' + ClassVersion);
|
|
|
|
- CreateRegKey('CLSID\' + classidguid + '\VersionIndependentProgID', '', ProgID + '.' + ClassVersion);
|
|
|
|
- end
|
|
|
|
- else
|
|
|
|
- CreateRegKey('CLSID\' + classidguid + '\ProgID', '', ProgID);
|
|
|
|
-
|
|
|
|
CreateRegKey('CLSID\' + classidguid + '\InprocServer32', '', FComServer.ServerFileName);
|
|
CreateRegKey('CLSID\' + classidguid + '\InprocServer32', '', FComServer.ServerFileName);
|
|
-
|
|
|
|
//tmSingle, tmApartment, tmFree, tmBoth, tmNeutral
|
|
//tmSingle, tmApartment, tmFree, tmBoth, tmNeutral
|
|
CreateRegKey('CLSID\' + classidguid + '\InprocServer32', 'ThreadingModel', ThreadModelToString(ThreadingModel));
|
|
CreateRegKey('CLSID\' + classidguid + '\InprocServer32', 'ThreadingModel', ThreadModelToString(ThreadingModel));
|
|
-
|
|
|
|
- CreateRegKey(ProgID, '', Description);
|
|
|
|
- CreateRegKey(ProgID + '\CLSID', '', GUIDToString(ClassID));
|
|
|
|
- if ClassVersion <> '' then
|
|
|
|
|
|
+ CreateRegKey('CLSID\' + classidguid, '', Description);
|
|
|
|
+ if ClassName <> '' then
|
|
begin
|
|
begin
|
|
- CreateRegKey(ProgID + '\CurVer', '', ProgID + '.' + ClassVersion);
|
|
|
|
- CreateRegKey(ProgID + '.' + ClassVersion, '', Description);
|
|
|
|
- CreateRegKey(ProgID + '.' + ClassVersion + '\CLSID', '', GUIDToString(ClassID));
|
|
|
|
|
|
+ if ClassVersion <> '' then
|
|
|
|
+ begin
|
|
|
|
+ CreateRegKey('CLSID\' + classidguid + '\ProgID', '', ProgID + '.' + ClassVersion);
|
|
|
|
+ CreateRegKey('CLSID\' + classidguid + '\VersionIndependentProgID', '', ProgID);
|
|
|
|
+ end
|
|
|
|
+ else
|
|
|
|
+ CreateRegKey('CLSID\' + classidguid + '\ProgID', '', ProgID);
|
|
|
|
+
|
|
|
|
+ CreateRegKey(ProgID, '', Description);
|
|
|
|
+ CreateRegKey(ProgID + '\CLSID', '', GUIDToString(ClassID));
|
|
|
|
+ if ClassVersion <> '' then
|
|
|
|
+ begin
|
|
|
|
+ CreateRegKey(ProgID + '\CurVer', '', ProgID + '.' + ClassVersion);
|
|
|
|
+ CreateRegKey(ProgID + '.' + ClassVersion, '', Description);
|
|
|
|
+ CreateRegKey(ProgID + '.' + ClassVersion + '\CLSID', '', GUIDToString(ClassID));
|
|
|
|
+ end;
|
|
end;
|
|
end;
|
|
-
|
|
|
|
end else
|
|
end else
|
|
begin
|
|
begin
|
|
classidguid := GUIDToString(ClassID);
|
|
classidguid := GUIDToString(ClassID);
|
|
DeleteRegKey('CLSID\' + classidguid + '\InprocServer32');
|
|
DeleteRegKey('CLSID\' + classidguid + '\InprocServer32');
|
|
DeleteRegKey('CLSID\' + classidguid + '\VersionIndependentProgID');
|
|
DeleteRegKey('CLSID\' + classidguid + '\VersionIndependentProgID');
|
|
- DeleteRegKey('CLSID\' + classidguid + '\ProgID');
|
|
|
|
- DeleteRegKey('CLSID\' + classidguid);
|
|
|
|
- DeleteRegKey(ProgID + '\CLSID');
|
|
|
|
- DeleteRegKey(ProgID);
|
|
|
|
- if ClassVersion <> '' then
|
|
|
|
|
|
+ if ClassName <> '' then
|
|
begin
|
|
begin
|
|
- DeleteRegKey(ProgID + '.' + ClassVersion + '\CLSID');
|
|
|
|
- DeleteRegKey(ProgID + '.' + ClassVersion);
|
|
|
|
|
|
+ DeleteRegKey('CLSID\' + classidguid + '\ProgID');
|
|
|
|
+ DeleteRegKey(ProgID + '\CLSID');
|
|
|
|
+ if ClassVersion <> '' then
|
|
|
|
+ begin
|
|
|
|
+ DeleteRegKey(ProgID + '\CurVer');
|
|
|
|
+ DeleteRegKey(ProgID + '.' + ClassVersion + '\CLSID');
|
|
|
|
+ DeleteRegKey(ProgID + '.' + ClassVersion);
|
|
|
|
+ end;
|
|
|
|
+ DeleteRegKey(ProgID);
|
|
end;
|
|
end;
|
|
|
|
+ DeleteRegKey('CLSID\' + classidguid);
|
|
end;
|
|
end;
|
|
{$ifdef DEBUG_COM}
|
|
{$ifdef DEBUG_COM}
|
|
WriteLn('UpdateRegistry end');
|
|
WriteLn('UpdateRegistry end');
|