亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? uregister.pas

?? delphi 開發OPc工業通訊 delphi 開發OPc工業通訊
?? PAS
字號:
//******************************************************************************
// sOPC created by ACHAT SOLUTIONS GmbH, http://www.achat-solutions.de/
//******************************************************************************
unit uRegister;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComObj, StdCtrls, Registry,
  OPCDA, sOPC_TLB;

type
  TOPCAutoObjectFactory = class (TAutoObjectFactory)
  public
    procedure UpdateRegistry(Register: Boolean); override;
  end;

function RegisterOPCServer: boolean;
function UnRegisterOPCServer: boolean;

implementation

uses
  ActiveX,
  ComCat, uGlobals, uOPC;

procedure TOPCAutoObjectFactory.UpdateRegistry(Register: Boolean);
const
  ThreadStrs: array[TThreadingModel] of string =
    ('', 'Apartment', 'Free', 'Both'
{$IFDEF VER140}
    , 'Neutral'
{$ENDIF}
{$IFDEF VER150}
    , 'Neutral'
{$ENDIF}
    );
var
  ClassID, ProgID, ServerKeyName, ShortFileName: string;
  ClassKey: string;
  TypeLib: ITypeLib;
  TLibAttr: PTLibAttr;
begin
  // UpdateRegistry TComObjectFactory
  if Instancing = ciInternal then exit;
  ClassID := GUIDToString(inherited ClassID);
  ProgID := OPC.ServerName;
  ServerKeyName := 'CLSID\' + ClassID + '\' + ComServer.ServerKey;
  if Register then begin
    CreateRegKey('CLSID\' + ClassID, '', OPC.ServerDescription);
    ShortFileName := ComServer.ServerFileName;
    if AnsiPos(' ', ShortFileName) <> 0 then
      ShortFileName := ExtractShortPathName(ShortFileName);
    CreateRegKey(ServerKeyName, '', ShortFileName);
    if (ThreadingModel <> tmSingle) and IsLibrary then
      CreateRegKey(ServerKeyName, 'ThreadingModel',
        ThreadStrs[ThreadingModel]);
    if ProgID <> '' then begin
      CreateRegKey(ProgID, '', OPC.ServerDescription);
      CreateRegKey(ProgID + '\Clsid', '', ClassID);
      CreateRegKey('CLSID\' + ClassID + '\ProgID', '', ProgID);
    end;
  end else begin
    if ProgID <> '' then begin
      DeleteRegKey('CLSID\' + ClassID + '\ProgID');
      DeleteRegKey(ProgID + '\Clsid');
      DeleteRegKey(ProgID);
    end;
    DeleteRegKey(ServerKeyName);
    DeleteRegKey('CLSID\' + ClassID);
  end;

  // UpdateRegistry TTypedComObjectFactory
  ClassKey := 'CLSID\' + GUIDToString(inherited ClassID);
  if Register then begin
    TypeLib := ComServer.TypeLib;
    OleCheck(TypeLib.GetLibAttr(TLibAttr));
    try
      CreateRegKey(ClassKey + '\Version', '', Format('%d.%d',
        [TLibAttr.wMajorVerNum, TLibAttr.wMinorVerNum]));
      CreateRegKey(ClassKey + '\TypeLib', '', GUIDToString(TLibAttr.guid));
    finally
      TypeLib.ReleaseTLibAttr(TLibAttr);
    end;
  end else begin
    DeleteRegKey(ClassKey + '\TypeLib');
    DeleteRegKey(ClassKey + '\Version');
  end;
end;

function RegisterOPCServer: boolean;
var
  Registry: TRegistry;
  stGUID: string;
begin
  Result := False;
  stGUID := GUIDToString(CLASS_OPCDataAccess20);
  try
    Registry := TRegistry.Create;
    Registry.RootKey := HKEY_CLASSES_ROOT;
    // HKCR\CLSID\AppID
    if not Registry.OpenKey('\CLSID\' + stGUID, True) then exit;
    Registry.WriteString('AppID', stGUID);
    Registry.CloseKey;
    // HKCR\AppID
    if not Registry.OpenKey('\AppID\' + stGUID, True) then exit;
    Registry.WriteString('', OPC.ServerDescription);
    Registry.WriteString('RunAs', 'Interactive User');
    Registry.CloseKey;
    Registry.Free;
  except
    on E: Exception do begin
      OPCLogException('RegisterOPCServer', E);
      exit;
    end;
  end;
  if CreateComponentCategory(CATID_OPCDAServer20, 'OPC Daten Server V2.0') <> 0 then exit;
  if RegisterCLSIDInCategory(CLASS_OPCDataAccess20, CATID_OPCDAServer20) <> 0 then exit;
  Result := True;
end;

function UnRegisterOPCServer: boolean;
var
  Registry: TRegistry;
  stGUID: string;
begin
  Result := False;
  stGUID := GUIDToString(CLASS_OPCDataAccess20);
  UnRegisterCLSIDInCategory(CLASS_OPCDataAccess20, CATID_OPCDAServer20);
  try
    Registry := TRegistry.Create;
    Registry.RootKey := HKEY_CLASSES_ROOT;
    // delete key HKCR\AppID\GUID
    Registry.DeleteKey('\AppID\' + stGUID);
    // delete key HKCR\CLSID\GUID
    Registry.DeleteKey('\CLSID\' + stGUID);
    Registry.Free;
  except
    on E: Exception do begin
      OPCLogException('UnRegisterOPCServer', E);
      exit;
    end;
  end;
  Result := True;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线直播| 精品国产成人系列| 欧美一区二区成人| 国产精品丝袜91| 亚洲国产精品久久一线不卡| 免费成人在线观看视频| 日本美女视频一区二区| jvid福利写真一区二区三区| 欧美日本精品一区二区三区| 中文字幕欧美区| 亚洲综合另类小说| 国产成人午夜99999| 91福利精品视频| 国产婷婷精品av在线| 日韩精品电影在线观看| 波多野结衣精品在线| 日韩欧美在线影院| 亚洲第一久久影院| 成人a级免费电影| 久久久亚洲国产美女国产盗摄| 亚洲综合在线视频| 懂色av噜噜一区二区三区av| 91精品国产综合久久久久久久久久| 国产精品久久久久永久免费观看| 极品销魂美女一区二区三区| 欧美老肥妇做.爰bbww| 亚洲欧洲日韩一区二区三区| 国内精品久久久久影院薰衣草| 欧美日韩中文另类| 综合自拍亚洲综合图不卡区| 成人激情黄色小说| 中文文精品字幕一区二区| 狠狠狠色丁香婷婷综合久久五月| 欧美日韩一区三区| 亚洲一区二区三区视频在线播放| 成人激情小说网站| 亚洲欧洲日韩一区二区三区| 风间由美一区二区av101| 欧美国产精品一区二区三区| 国产成人自拍在线| 久久精品欧美一区二区三区不卡| 日韩av电影免费观看高清完整版| 欧美一区二区三区成人| 另类成人小视频在线| 日韩精品一区二区三区蜜臀| 精品一区二区三区视频在线观看| 欧美刺激午夜性久久久久久久| 久久丁香综合五月国产三级网站| 日韩精品影音先锋| 精品一区二区三区在线播放 | 中文字幕一区二区三区精华液| 欧洲视频一区二区| 日韩精品亚洲专区| 国产亚洲精品资源在线26u| 色素色在线综合| 亚洲午夜久久久久久久久久久| 亚洲美女视频在线| 婷婷中文字幕一区三区| 欧洲精品在线观看| 国产在线精品一区在线观看麻豆| 亚洲自拍与偷拍| wwwwww.欧美系列| 欧美亚洲精品一区| 国产黄色91视频| 亚洲人被黑人高潮完整版| 欧美理论电影在线| 国产成人午夜精品5599| 亚洲国产精品人人做人人爽| 国产亲近乱来精品视频| 在线播放/欧美激情| 国产一区二区伦理| 日本视频中文字幕一区二区三区| 久久这里只有精品首页| 精品污污网站免费看| 国产精品综合一区二区三区| 亚洲www啪成人一区二区麻豆| 国产女人18毛片水真多成人如厕| 91.成人天堂一区| 色婷婷激情综合| 99久久亚洲一区二区三区青草| 亚洲一区二区精品久久av| 国产精品久久久久久久久动漫| 欧美变态口味重另类| 日韩你懂的电影在线观看| 欧美一区二区福利在线| 99国产精品一区| 91蝌蚪porny成人天涯| 国产成人自拍网| 久久99精品国产91久久来源| 日产国产高清一区二区三区| 香蕉加勒比综合久久| 夜色激情一区二区| 亚洲视频一区二区在线观看| 中文文精品字幕一区二区| 国产蜜臀97一区二区三区| 日本一区二区三区视频视频| 国产日产精品一区| 国产精品卡一卡二| 国产精品伦理在线| 国产精品久久久久aaaa| 国产精品成人一区二区艾草| 樱桃视频在线观看一区| 亚洲一区二区三区四区五区中文| 亚洲成va人在线观看| 亚洲一区在线观看免费| 亚洲一区欧美一区| 日本在线不卡视频| 国产一区二区剧情av在线| 成人免费视频一区| 欧美日韩免费观看一区三区| 欧美一区二区三区四区久久| 欧美成人艳星乳罩| 国产欧美精品一区二区色综合朱莉| 欧美激情一区二区三区| 亚洲自拍偷拍欧美| 美女免费视频一区二区| 国产精品一区二区你懂的| 日本高清不卡一区| 日韩精品一区在线观看| 国产精品美女久久久久久久 | 欧美在线啊v一区| 久久伊人蜜桃av一区二区| 综合网在线视频| 日本人妖一区二区| 波多野洁衣一区| 日韩欧美激情一区| 亚洲欧洲成人自拍| 激情图片小说一区| 在线视频观看一区| 国产精品久久久久毛片软件| 蜜臀av亚洲一区中文字幕| 成人性生交大片免费看在线播放| 欧美色精品天天在线观看视频| 26uuu欧美| 奇米一区二区三区| 色婷婷亚洲综合| 中文字幕久久午夜不卡| 麻豆精品国产传媒mv男同| 欧美中文字幕一区二区三区| 中文字幕中文乱码欧美一区二区 | 欧美三级蜜桃2在线观看| 国产欧美一区视频| 精品午夜久久福利影院 | www..com久久爱| 精品国产乱码久久久久久1区2区 | 蜜桃精品视频在线| 538在线一区二区精品国产| 一区二区三区四区不卡在线| 99久久精品一区| 国产精品乱子久久久久| 99在线精品一区二区三区| 综合久久给合久久狠狠狠97色| 成人美女视频在线观看| 国产精品免费视频一区| 国产高清精品网站| 国产精品沙发午睡系列990531| 国产成人av资源| 欧美激情在线观看视频免费| 国产精品亚洲成人| 亚洲欧美日韩在线播放| 在线观看欧美日本| 亚洲成人免费观看| 7777精品伊人久久久大香线蕉最新版| 午夜激情一区二区| 欧美va亚洲va| 成人av在线资源网站| 一区二区三区丝袜| 日韩欧美久久久| 91一区二区三区在线播放| 亚洲国产日韩一区二区| 欧美一级精品大片| 成人aaaa免费全部观看| 香蕉乱码成人久久天堂爱免费| 日韩亚洲电影在线| 成人激情小说网站| 日韩高清不卡在线| 中文字幕高清一区| 在线不卡中文字幕| 国产成人一区二区精品非洲| 亚洲一二三四在线| 国产亚洲成aⅴ人片在线观看| 欧美在线免费视屏| caoporen国产精品视频| 奇米888四色在线精品| 亚洲美女视频一区| 国产精品久线观看视频| 欧美成人a视频| 欧美疯狂性受xxxxx喷水图片| 成人午夜av在线| 韩国一区二区三区| 天天av天天翘天天综合网色鬼国产| 日本一区二区三区高清不卡| 欧美一区二区三区爱爱| 欧美日韩情趣电影| 欧美在线一二三四区| 成人的网站免费观看| 国产精品538一区二区在线| 久久99最新地址| 丝袜亚洲另类欧美| 视频一区免费在线观看|