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

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

?? tntregistry.pas

?? TNT Components Source
?? PAS
字號:

{*****************************************************************************}
{                                                                             }
{    Tnt Delphi Unicode Controls                                              }
{      http://www.tntware.com/delphicontrols/unicode/                         }
{        Version: 2.3.0                                                       }
{                                                                             }
{    Copyright (c) 2002-2007, Troy Wolbrink (troy.wolbrink@tntware.com)       }
{                                                                             }
{*****************************************************************************}

unit TntRegistry;

{$INCLUDE TntCompilers.inc}

interface

uses
  Registry, Windows, TntClasses;

{TNT-WARN TRegistry}
type
  TTntRegistry = class(TRegistry{TNT-ALLOW TRegistry})
  private
    procedure WriteStringEx(dwType: DWORD; const Name, Value: WideString);
  public
    procedure GetKeyNames(Strings: TTntStrings);
    procedure GetValueNames(Strings: TTntStrings);
    function ReadString(const Name: WideString): WideString;
    procedure WriteString(const Name, Value: WideString);
    procedure WriteExpandString(const Name, Value: WideString);
  end;

implementation

uses
  RTLConsts, SysUtils, TntSysUtils;

{ TTntRegistry }

procedure TTntRegistry.GetKeyNames(Strings: TTntStrings);
var
  Len: DWORD;
  I: Integer;
  Info: TRegKeyInfo;
  S: WideString;
begin
  if (not Win32PlatformIsUnicode) then
    inherited GetKeyNames(Strings.AnsiStrings)
  else begin
    Strings.Clear;
    if GetKeyInfo(Info) then
    begin
      SetLength(S, (Info.MaxSubKeyLen + 1) * 2);
      for I := 0 to Info.NumSubKeys - 1 do
      begin
        Len := (Info.MaxSubKeyLen + 1) * 2;
        if RegEnumKeyExW(CurrentKey, I, PWideChar(S), Len, nil, nil, nil, nil) = ERROR_SUCCESS then
          Strings.Add(PWideChar(S));
      end;
    end;
  end;
end;

{$IFNDEF COMPILER_9_UP} // fix declaration for RegEnumValueW (lpValueName is a PWideChar)
function RegEnumValueW(hKey: HKEY; dwIndex: DWORD; lpValueName: PWideChar;
  var lpcbValueName: DWORD; lpReserved: Pointer; lpType: PDWORD;
  lpData: PByte; lpcbData: PDWORD): Longint; stdcall; external advapi32 name 'RegEnumValueW';
{$ENDIF}

procedure TTntRegistry.GetValueNames(Strings: TTntStrings);
var
  Len: DWORD;
  I: Integer;
  Info: TRegKeyInfo;
  S: WideString;
begin
  if (not Win32PlatformIsUnicode) then
    inherited GetValueNames(Strings.AnsiStrings)
  else begin
    Strings.Clear;
    if GetKeyInfo(Info) then
    begin
      SetLength(S, Info.MaxValueLen + 1);
      for I := 0 to Info.NumValues - 1 do
      begin
        Len := Info.MaxValueLen + 1;
        RegEnumValueW(CurrentKey, I, PWideChar(S), Len, nil, nil, nil, nil);
        Strings.Add(PWideChar(S));
      end;
    end;
  end;
end;

function TTntRegistry.ReadString(const Name: WideString): WideString;
var
  DataType: Cardinal;
  BufSize: Cardinal;
begin
  if (not Win32PlatformIsUnicode) then
    result := inherited ReadString(Name)
  else begin
    // get length and type
    DataType := REG_NONE;
    if RegQueryValueExW(CurrentKey, PWideChar(Name), nil,
      @DataType, nil, @BufSize) <> ERROR_SUCCESS then
        Result := ''
    else begin
      // check type
      if not (DataType in [REG_SZ, REG_EXPAND_SZ]) then
        raise ERegistryException.CreateFmt(SInvalidRegType, [Name]);
      if BufSize = 1 then
        BufSize := SizeOf(WideChar); // sometimes this occurs for single character values!
      SetLength(Result, BufSize div SizeOf(WideChar));
      if RegQueryValueExW(CurrentKey, PWideChar(Name), nil,
        @DataType, PByte(PWideChar(Result)), @BufSize) <> ERROR_SUCCESS then
          raise ERegistryException.CreateFmt(SRegGetDataFailed, [Name]);
      Result := PWideChar(Result);
    end
  end
end;

procedure TTntRegistry.WriteStringEx(dwType: DWORD; const Name, Value: WideString);
begin
  Assert(dwType in [REG_SZ, REG_EXPAND_SZ]);
  if (not Win32PlatformIsUnicode) then begin
    if dwType = REG_SZ then
      inherited WriteString(Name, Value)
    else
      inherited WriteExpandString(Name, Value);
  end else begin
    if RegSetValueExW(CurrentKey, PWideChar(Name), 0, dwType,
      PWideChar(Value), (Length(Value) + 1) * SizeOf(WideChar)) <> ERROR_SUCCESS then
        raise ERegistryException.CreateFmt(SRegSetDataFailed, [Name]);
  end;
end;

procedure TTntRegistry.WriteString(const Name, Value: WideString);
begin
  WriteStringEx(REG_SZ, Name, Value);
end;

procedure TTntRegistry.WriteExpandString(const Name, Value: WideString);
begin
  WriteStringEx(REG_EXPAND_SZ, Name, Value);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区二区不卡| 国产乱码一区二区三区| 狠狠色丁香婷婷综合久久片| 91香蕉国产在线观看软件| 日韩丝袜情趣美女图片| 亚洲精品欧美在线| 成人综合婷婷国产精品久久蜜臀 | 精品动漫一区二区三区在线观看| 欧美激情艳妇裸体舞| 一区二区三区欧美| 国产馆精品极品| 欧美一区二区三区色| 亚洲一二三四在线| 91在线你懂得| 国产精品国产三级国产普通话蜜臀| 久久精品免费看| 欧美一二三四在线| 亚洲成a天堂v人片| 成人性色生活片免费看爆迷你毛片| 日韩欧美电影一二三| 视频在线观看91| 欧美日韩亚洲综合| 香蕉久久夜色精品国产使用方法| 日本韩国精品一区二区在线观看| 欧美激情在线一区二区三区| 视频在线观看一区二区三区| 91丨九色丨尤物| 国产精品第一页第二页第三页| 国产一区视频网站| 国产亚洲制服色| 粉嫩av亚洲一区二区图片| 国产日韩欧美高清| 9久草视频在线视频精品| 日韩一区日韩二区| 99re成人在线| 亚洲福利视频导航| 欧美一区二区三区啪啪| 美女久久久精品| 久久综合色之久久综合| 丁香五精品蜜臀久久久久99网站 | 午夜视频一区二区| 91精品国产综合久久久蜜臀图片| 五月婷婷久久综合| 2024国产精品| www.欧美精品一二区| 亚洲专区一二三| 欧美一区二区三区思思人| 蜜桃一区二区三区四区| 久久免费精品国产久精品久久久久| 国产精品一区在线观看你懂的| 国产日韩精品一区| 欧美在线免费观看视频| 日韩高清一级片| 久久精品一区二区三区不卡| 91免费视频大全| 蜜臀a∨国产成人精品| 久久久亚洲午夜电影| 色婷婷香蕉在线一区二区| 三级久久三级久久| 国产精品毛片久久久久久| 欧美日韩一二三| 国产91丝袜在线播放九色| 国产精品国产自产拍在线| 91精品在线一区二区| 不卡的看片网站| 日本aⅴ亚洲精品中文乱码| 国产精品欧美综合在线| 欧美日韩一本到| 国产成人午夜片在线观看高清观看| 亚洲少妇最新在线视频| 日韩一区二区三免费高清| 99这里都是精品| 美女看a上一区| 有码一区二区三区| 久久亚洲精精品中文字幕早川悠里 | 久久人人97超碰com| 在线精品视频免费播放| 黑人巨大精品欧美一区| 一区二区成人在线视频| 久久精品人人做人人爽人人| 欧美日韩精品一区视频| 成年人网站91| 国产一区二区三区视频在线播放| 亚洲成av人影院| 亚洲少妇最新在线视频| 久久久99精品免费观看| 日韩欧美国产高清| 欧美日韩在线播放三区| 国产91丝袜在线观看| 免费在线观看一区| 亚洲第一福利一区| 一区二区三区.www| 国产精品视频你懂的| 日韩精品一区二区三区蜜臀| 欧美亚洲综合在线| 91浏览器在线视频| 色乱码一区二区三区88| 成人高清免费在线播放| 国产精品一区二区免费不卡 | 一区二区三区在线观看网站| 久久亚洲一区二区三区四区| 欧美一区二区三区视频| 欧美日韩国产免费| 欧美日韩一区二区三区高清| 色婷婷综合久久久中文字幕| 成人性生交大合| 成人综合婷婷国产精品久久蜜臀| 国产精一品亚洲二区在线视频| 美女mm1313爽爽久久久蜜臀| 日本aⅴ免费视频一区二区三区 | 国产精品白丝av| 亚洲精品国产成人久久av盗摄| 中文字幕一区三区| 国产精品久久久久影院老司| 国产精品免费丝袜| 亚洲天堂成人网| 亚洲日本va在线观看| 亚洲精品成人在线| 另类小说综合欧美亚洲| 久久精品99久久久| 国内偷窥港台综合视频在线播放| 激情图区综合网| 国产精品影视天天线| 国产乱色国产精品免费视频| 成人综合婷婷国产精品久久免费| 成人av免费观看| 91福利国产精品| 69p69国产精品| 久久天堂av综合合色蜜桃网| 国产精品区一区二区三区| 亚洲精选视频免费看| 日韩精品视频网站| 国产一区二区三区香蕉| av在线一区二区| 欧美三级电影网| 亚洲精品一线二线三线无人区| 久久久久高清精品| 玉米视频成人免费看| 蜜桃一区二区三区在线| 成人综合日日夜夜| 在线区一区二视频| 欧美一二三区在线观看| 国产精品热久久久久夜色精品三区| 亚洲黄色小说网站| 久久精品国产99国产精品| 成人的网站免费观看| 欧美日韩视频在线一区二区| 26uuu国产电影一区二区| 最新中文字幕一区二区三区| 五月天久久比比资源色| 国产乱码精品一区二区三区五月婷 | 在线观看日产精品| 精品国产三级电影在线观看| 亚洲同性同志一二三专区| 日韩av一二三| 99这里只有精品| 日韩精品中文字幕一区二区三区| 国产精品短视频| 六月丁香综合在线视频| 91小视频免费观看| 久久综合给合久久狠狠狠97色69| 亚洲天堂福利av| 激情成人综合网| 欧美日韩大陆在线| 亚洲欧美怡红院| 精品一区二区精品| 欧美在线观看禁18| 欧美激情一区二区在线| 青青草97国产精品免费观看| 色综合色综合色综合色综合色综合| 精品国产一区二区三区四区四| 一区二区三区精品| 成人国产精品免费观看视频| 日韩欧美一级精品久久| 亚洲成人午夜影院| 色狠狠一区二区| 国产精品毛片a∨一区二区三区 | 日韩黄色免费网站| 色国产综合视频| 中文字幕中文在线不卡住| 国产又粗又猛又爽又黄91精品| 欧美一区二区三区电影| 亚洲一区二区偷拍精品| av电影在线观看一区| 国产欧美日韩在线观看| 国产剧情av麻豆香蕉精品| 精品免费视频.| 久久国产麻豆精品| 日韩视频一区二区在线观看| 天堂蜜桃一区二区三区| 欧美丝袜自拍制服另类| 一区二区三区中文字幕| 91九色最新地址| 亚洲激情在线播放| 欧美自拍偷拍一区| 伊人性伊人情综合网| 91同城在线观看| 亚洲综合成人在线视频| 欧美色国产精品| 日日摸夜夜添夜夜添亚洲女人|