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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? pfgpalminf.pas

?? delphi編寫(xiě)與Palm數(shù)據(jù)交換管道連接程序。
?? PAS
字號(hào):
unit pfgPalmInf;
{**************************************************************************}
{* pfgPalmInf Unit                                                        *}
{*                                                                        *}
{* This unit provides a set of information objects detailing information  *}
{* on the Palm. These objects aren't used by the conduit library, but are *}
{* rather intended as stand-alone objects for the user to reference in    *}
{* their conduits.                                                        *}
{*                                                                        *}
{* Currently available are:                                               *}
{*   PalmInfo object - This object provides basic information about the   *}
{*                     Palm and the current HotSync session.              *}
{*   CardInfo object - Submitted by Per-Eric Larsson 26/4/2001            *}
{*                     This object provides information about a           *}
{*                     specific Palm card (the CardInfo function returns  *}
{*                     information for card 0), including size, contents, *}
{*                     and the specific databases available.              *}
{*                                                                        *}
{* Copyright (C) 2001 by Paul Gilbert, All Rights Reserved                *}
{**************************************************************************}

interface

{$I pfgPalmConduits.inc}

{$IFDEF PFG_DELPHI6_UP}
uses Windows, Messages, SysUtils, Classes, pfgSyncMgr, Variants;
{$ELSE}
uses Windows, Messages, SysUtils, Classes, pfgSyncMgr;
{$ENDIF}

type
  TpfgPalmSystemInfo = class
  private
    FProductID: string;
    FMajor, FMinor: Integer;
    FUsername: string;
    FPassword: Variant;
    FLastSyncDate: TDateTime; // Only valid for Palm OS 3.0 or later
    FLastSyncPC: LongWord; // Only valid for Palm OS 3.0 or later
    FPCId: LongWord; // ID for this PC

    procedure Initialize;
  public
    constructor Create; virtual;

    property ProductID: string read FProductID;
    property Major: Integer read FMajor;
    property Minor: Integer read FMinor;
    property Username: string read FUsername;
    property Password: Variant read FPassword;
    property LastSyncDate: TDateTime read FLastSyncDate; // Valid for >= OS3.0
    property LastSyncPC: LongWord read FLastSyncPC;
    property PCId: LongWord read FPCId;
  end;

// PEL 2001-04-26

type
  TpfgDbInfo = class(TCollectionItem)
  private
    FModNumber: DWORD;
    FCreator: DWORD;
    FDbType: DWORD;
    FCardNum: Integer;
    FRecCount: longint;
    FDbName: string;
    FCreateDate: TDateTime;
    FBackupDate: TDateTime;
    FModDate: TDateTime;
    FDBIndex: WORD;
    FVersion: WORD;
    FDbFlags: WORD;
    procedure SetFromCDbList(const aCDbList: CDbList);
  protected
    function GetDisplayName: string; override;
  public
    constructor Create(Collection: TCollection); override;
    property CardNum: Integer read FCardNum;
    property DbFlags: WORD read FDbFlags;
    property DbType: DWORD read FDbType;
    property DbName: string read FDbName;
    property Creator: DWORD read FCreator;
    property Version: WORD read FVersion;
    property ModNumber: DWORD read FModNumber;
    property DBIndex: WORD read FDBIndex;
    property CreateDate: TDateTime read FCreateDate;
    property ModDate: TDateTime read FModDate;
    property BackupDate: TDateTime read FBackupDate;
    property RecCount: longint read FRecCount;
  end;

  TpfgDbInfoList = class(TCollection)
  private
    function GetDbItem(Index: Integer): TpfgDbInfo;
  public
    constructor Create; reintroduce;
    destructor Destroy; override;
    function Add(const aCDbList: CDbList): TpfgDbInfo;overload;
    function Add: TpfgDbInfo;overload;
    Procedure SendToStrings(ts:Tstrings);

    property Items[Index: Integer]: TpfgDbInfo read GetDbItem;
  end;

  TpfgCardInfo = class
  private
    FCardNo: Integer;
    FRomSize: DWORD;
    FCreateDate: TDateTime;
    FCardVersion: WORD;
    FFreeRam: DWORD;
    FRamSize: DWORD;
    FromDbCount: WORD;
    FramDbCount: WORD;
    FCardName: string;
    FManufName: string;
    FramDb: TpfgDbInfoList;
    FromDb: TpfgDbInfoList;
    procedure SetCardNo(const Value: Integer);
    procedure Initialize;
  public
    constructor Create; overload; virtual;
    constructor Create(acardno: Integer); overload; virtual;
    property CardNo: Integer read FCardNo write SetCardNo;
    property CardVersion: WORD read FCardVersion;
    property CreateDate: TDateTime read FCreateDate;
    property RomSize: DWORD read FRomSize;
    property RamSize: DWORD read FRamSize;
    property FreeRam: DWORD read FFreeRam;
    property romDbCount: WORD read FromDbCount;
    property ramDbCount: WORD read FramDbCount;
    property CardName: string read FCardName;
    property ManufName: string read FManufName;
    property romDb: TpfgDbInfoList read FromDb;
    property ramDb: TpfgDbInfoList read FramDb;
  end;

// PalmInfo
// Returns a global instance of the Palm info class

function PalmInfo: TpfgPalmSystemInfo;

// CardInfo
// Returns a global instance of the Card info class

function CardInfo: TpfgCardInfo;

implementation

uses
  pfgCondMgre,
  pfgPalmSyncError,
  pfgPalmMisc,
  PELDateTime;

var
  Int_PalmInfo: TpfgPalmSystemInfo = nil;
  Int_CardInfo: TpfgCardInfo = nil;

function PalmInfo: TpfgPalmSystemInfo;
begin
  if not Assigned(Int_PalmInfo) then Int_PalmInfo := TpfgPalmSystemInfo.Create;
  Result := Int_PalmInfo;
end;

function CardInfo: TpfgCardInfo;
begin
  if not Assigned(Int_CardInfo) then Int_CardInfo := TpfgCardInfo.Create;
  Result := Int_CardInfo;
end;

{**************************************************************************}
{* TpfgPalmSystemInfo class                                               *}
{*                                                                        *}
{**************************************************************************}

constructor TpfgPalmSystemInfo.Create;
begin
  Initialize;
end;

// Initialize
// Calls the SyncReadSystemInfo to get the Palm information, and then fills
// out the object's properties with the return values

procedure TpfgPalmSystemInfo.Initialize;
var
  info: CSystemInfo;
  Buffer: array[0..99] of Char;
  uinfo: CUserIDInfo;
  ctr: Integer;
begin
  { Get the basic system info }
  FillChar(info, Sizeof(CSystemInfo), 0);
  info.m_ProductIdText := @Buffer;
  info.m_AllocedLen := Sizeof(Buffer);
  PalmCheck(SyncReadSystemInfo(info));

  // Fill out the Product ID string
  SetLength(FProductID, info.m_ProdIdLength);
  Move(info.m_ProductIdText^, FProductID[1], info.m_ProdIdLength);

  // Fill out the ROM version
  FMajor := SYNCROMVMAJOR(info.m_RomSoftVersion);
  FMinor := SYNCROMVMINOR(info.m_RomSoftVersion);

  { Get the user info }
  FillChar(uinfo, Sizeof(uinfo), 0);
  PalmCheck(SyncReadUserID(uinfo));

  // Fill out the username
  FUsername := StrPas(uinfo.m_pName);

  // Fill out the password, storing it as a variant array
  FPassword := VarArrayCreate([0, uinfo.m_PasswdLength - 1], varByte);
  for ctr := 0 to uinfo.m_PasswdLength - 1 do FPassword[ctr] :=
    uinfo.m_Password[ctr];

  // Fill out the last sync date
  FLastSyncDate := UTCTimeToDateTime(uinfo.m_LastSyncDate);

  // Fill out the last synced PC ID
  FLastSyncPC := uinfo.m_LastSyncPC;

  // Find out this PC's ID
  PalmCheck(CmGetPCIdentifier(Integer(FPCId)));
end;


{ TpfgCardInfo }

constructor TpfgCardInfo.Create;
begin
  Create(0);
end;

constructor TpfgCardInfo.Create(acardno: Integer);
begin
  cardNo := Acardno;
  FramDb := TpfgDbInfoList.Create;
  FromDb := TpfgDbInfoList.Create;
  Initialize;
end;

procedure TpfgCardInfo.Initialize;
var
  rInfo: CCardInfo;
  CDbLista: array of CDbList;
  rCnt, i: Integer;
begin
  rInfo.m_CardNo := cardNo;
  rInfo.m_dwReserved := 0;
  PalmCheck(SyncReadSingleCardInfo(rInfo));
  FManufName := strpas(rInfo.m_ManufName);
  setlength(FManufName,rInfo.m_ManufNameLen);
  FCardName := strpas(rInfo.m_CardName);
  setlength(FCardName,rInfo.m_CardNameLen);
  FCreateDate := UTCTimeToDateTime(rInfo.m_CreateDate);
  FCardVersion := rInfo.m_CardVersion;
  FFreeRam := rInfo.m_FreeRam;
  FRamSize := rInfo.m_RamSize;
  FRomSize := rInfo.m_RomSize;

//rom db's
  FromDbCount := rInfo.m_romDbCount;
  rCnt := romDbCount;
  setlength(CDbLista, rCnt);
  PalmCheck(SyncReadDBList(cardNo, 0, false, @CDbLista[0], rCnt));
  for i := 0 to romDbCount - 1 do
  begin
    FromDb.Add(CDbLista[i]);
  end;
  FramDbCount := rInfo.m_ramDbCount;
  rCnt := ramDbCount;
  setlength(CDbLista, rCnt);
  PalmCheck(SyncReadDBList(cardNo, 0, true, @CDbLista[0], rCnt));
  for i := 0 to ramDbCount - 1 do
  begin
    FramDb.Add(CDbLista[i]);
  end;
end;

procedure TpfgCardInfo.SetCardNo(const Value: Integer);
begin
  FCardNo := Value;
end;


{ TpfgDbInfo }

constructor TpfgDbInfo.Create(Collection: TCollection);
begin
  inherited;
end;

procedure TpfgDbInfo.SetFromCDbList(const aCDbList: CDbList);
begin
  FModNumber := aCDbList.m_ModNumber;
  FCreator := aCDbList.m_Creator;
  FDbType := aCDbList.m_DbType;
  FCardNum:= aCDbList.m_CardNum;
  FRecCount:= aCDbList.m_RecCount;
  FDbName:= strpas(aCDbList.m_Name);
  FCreateDate := UTCTimeToDateTime(aCDbList.m_CreateDate);
  FBackupDate := UTCTimeToDateTime(aCDbList.m_BackupDate);
  FModDate := UTCTimeToDateTime(aCDbList.m_ModDate);
  FDBIndex := aCDbList.m_Index;
  FVersion := aCDbList.m_Version;
  FDbFlags := aCDbList.m_DbFlags;
end;

function TpfgDbInfo.GetDisplayName: string;
begin
  Result := DbName;
end;

{ TpfgDbInfoList }

function TpfgDbInfoList.Add: TpfgDbInfo;
begin
  Result := inherited Add as TpfgDbInfo;
end;


function TpfgDbInfoList.Add(const aCDbList: CDbList): TpfgDbInfo;
begin

  Result := self.Add;
  result.SetFromCDbList(aCDbList);
end;


constructor TpfgDbInfoList.Create;
begin
  inherited Create(TpfgDbInfo);
end;

destructor TpfgDbInfoList.Destroy;
begin
  inherited;
end;

procedure TpfgDbInfoList.SendToStrings(ts: Tstrings);
var
  i:integer;
begin
  ts.BeginUpdate;
  ts.clear;
  for i := 0 to Count-1 do
  begin
    ts.Add(items[i].DisplayName);
  end;
  ts.EndUpdate;
end;

// GetDbItem
// Returns an item from the collection, cast to a TpfgDbInfo class

function TpfgDbInfoList.GetDbItem(Index: Integer): TpfgDbInfo;
begin
  Result := inherited Items[Index] as TpfgDbInfo;
end;

initialization

finalization
begin
  if Assigned(Int_PalmInfo) then Int_PalmInfo.Free;
  if Assigned(Int_CardInfo) then Int_CardInfo.Free;  
end;

end.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕视频一区二区三区久| 95精品视频在线| 国产一区中文字幕| 粉嫩高潮美女一区二区三区| 成人综合婷婷国产精品久久免费| 99久久国产综合精品女不卡| 欧美亚洲国产一区二区三区| 日韩欧美视频一区| 国产精品卡一卡二| 日韩中文字幕1| 成人教育av在线| 在线电影院国产精品| 久久九九全国免费| 三级亚洲高清视频| 成人免费视频视频| 欧美精品粉嫩高潮一区二区| 国产日本一区二区| 午夜天堂影视香蕉久久| 国产精品亚洲综合一区在线观看| 91九色最新地址| 精品国产髙清在线看国产毛片| 日韩理论片中文av| 国内外成人在线| 91免费观看视频在线| 日韩欧美一级在线播放| 亚洲视频免费在线| 国产一区不卡在线| 欧美精品九九99久久| 综合在线观看色| 精品一区二区三区在线播放| 日本精品一区二区三区四区的功能| 精品国产免费一区二区三区四区 | 美女mm1313爽爽久久久蜜臀| 成人免费观看男女羞羞视频| 欧美一区二区在线免费播放 | 在线亚洲免费视频| 国产欧美日韩麻豆91| 免费在线一区观看| 欧美精品在线观看播放| 亚洲天堂精品在线观看| 国产高清在线观看免费不卡| 91精品麻豆日日躁夜夜躁| 亚洲欧洲综合另类| 成人午夜大片免费观看| 欧美成人午夜电影| 日日夜夜精品免费视频| 一本色道久久综合精品竹菊| 国产日韩欧美电影| 国模套图日韩精品一区二区| 欧美喷水一区二区| 亚洲一区二区美女| 日本国产一区二区| 亚洲人123区| 成人精品亚洲人成在线| 欧美精品一区二区久久久| 青青草原综合久久大伊人精品优势| 欧洲一区二区三区免费视频| 亚洲欧洲99久久| 成人av在线一区二区三区| 久久久蜜桃精品| 国产在线日韩欧美| www成人在线观看| 久久99精品久久久久久国产越南 | 激情五月婷婷综合网| 欧美一级一区二区| 日韩专区在线视频| 欧美福利一区二区| 丝瓜av网站精品一区二区| 欧美系列一区二区| 午夜国产精品一区| 91麻豆精品国产91久久久久久久久 | 轻轻草成人在线| 欧美一区二区三区四区视频| 午夜久久久久久电影| 欧美日韩在线不卡| 热久久免费视频| 91精品国产欧美一区二区18 | 日韩女优av电影| 国内精品第一页| 国产亚洲午夜高清国产拍精品| 国产精品一二一区| 国产精品理论在线观看| 91在线你懂得| 亚洲一卡二卡三卡四卡五卡| 欧美日韩免费在线视频| 日韩精彩视频在线观看| 欧美一级理论片| 国产一区久久久| 国产精品久久久久一区二区三区| av动漫一区二区| 亚洲一区二区三区四区的| 欧美精品亚洲一区二区在线播放| 免费欧美高清视频| 国产调教视频一区| 色呦呦国产精品| 日韩高清中文字幕一区| 精品国产乱码久久久久久久| 国产精品一二一区| 亚洲激情综合网| 日韩一区二区三区四区| 国产精品资源在线观看| 亚洲欧洲国产日韩| 91精品国产91热久久久做人人| 国模冰冰炮一区二区| 亚洲丝袜另类动漫二区| 欧美男人的天堂一二区| 九色porny丨国产精品| 国产精品青草久久| 在线播放一区二区三区| 国精品**一区二区三区在线蜜桃| 国产精品久久久久国产精品日日| 欧美中文字幕一区二区三区 | 久久久久久久国产精品影院| av高清久久久| 蜜桃久久av一区| 亚洲欧洲性图库| 欧美一二三区在线观看| 国产成人高清在线| 亚洲成人动漫精品| 国产喂奶挤奶一区二区三区| 91麻豆免费在线观看| 免费成人av资源网| 136国产福利精品导航| 欧美一区二区三区在| 不卡欧美aaaaa| 日本不卡视频在线| 亚洲欧美在线aaa| 日韩精品在线一区二区| 91一区二区在线| 国产一区二区伦理片| 一区二区三区在线视频观看| 精品免费视频.| 欧美日韩激情在线| 成人看片黄a免费看在线| 日本欧美在线看| 一区二区三区在线免费播放| xvideos.蜜桃一区二区| 欧美性高清videossexo| 成人综合婷婷国产精品久久免费| 日本在线不卡一区| 亚洲黄色小说网站| 国产香蕉久久精品综合网| 欧美欧美午夜aⅴ在线观看| 白白色 亚洲乱淫| 国产一区二区视频在线| 亚洲3atv精品一区二区三区| 国产精品网曝门| 精品国产欧美一区二区| 在线播放视频一区| 欧美视频中文字幕| 99re热这里只有精品视频| 国产在线日韩欧美| 久久se精品一区二区| 亚洲成人一区在线| 亚洲精品免费一二三区| 国产目拍亚洲精品99久久精品| 日韩一区二区三区免费看 | 午夜精品久久久久久久久| 国产精品免费视频观看| 精品对白一区国产伦| 91.麻豆视频| 欧美日韩高清影院| 欧美三区免费完整视频在线观看| 99久久婷婷国产综合精品| 国产麻豆精品在线| 国产一区二区三区av电影 | 国产性做久久久久久| 久久综合色之久久综合| 日韩欧美不卡一区| 欧美tickling挠脚心丨vk| 制服丝袜亚洲精品中文字幕| 欧美色图一区二区三区| 在线精品视频免费播放| 日本大香伊一区二区三区| 99精品视频免费在线观看| 成人免费看视频| 99久久精品国产观看| 97久久精品人人做人人爽| 99免费精品在线观看| 99在线精品视频| 99久久精品一区二区| av亚洲产国偷v产偷v自拍| 99久久99久久精品免费看蜜桃| 99久久综合狠狠综合久久| 成人性生交大片免费看在线播放| 国产99久久久久| 成人av网站在线观看| 成人国产亚洲欧美成人综合网| 成人激情校园春色| 一本色道a无线码一区v| 色视频成人在线观看免| 欧美在线观看18| 正在播放一区二区| 337p粉嫩大胆色噜噜噜噜亚洲| 久久夜色精品国产噜噜av| 久久久夜色精品亚洲| 亚洲国产精品二十页| 亚洲卡通欧美制服中文| 亚洲丶国产丶欧美一区二区三区| 日一区二区三区|