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

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

?? pfguserdata.pas

?? delphi編寫與Palm數據交換管道連接程序。
?? PAS
字號:
unit pfgUserData;
{**************************************************************************}
{                                                                          }
{    This C DLL header file first (automatic) conversion generated by:     }
{    HeadConv 4.0 (c) 2000 by Bob Swart (aka Dr.Bob - www.drbob42.com)     }
{      Final Delphi-Jedi (Darth) command-line units edition                }
{                                                                          }
{    Generated Date: 2001-05-13                                            }
{    Generated Time: 12:18:40                                              }
{                                                                          }
{**************************************************************************}

interface
uses
  pfgWTypes,

  Windows;



{=> c:\palmdev\cdk401\c++\include\USERDATA.H <=}

{+//**************************************************************************** }
{-* }
{-* Copyright (c) 1998-2000 Palm, Inc. or its subsidiaries. }
{-* All rights reserved. }
{-* }
{=*************************************************************************** }

{$IFNDEF _USER_DATA_HEADER_}
{$DEFINE _USER_DATA_HEADER_}

type
  UmUserSyncAction = (
    Synchronize {= 0},
    PCToHH,
    HHToPC,
    DoNothing,
    Custom  );

var

  UmGetLibVersion: function (var pdwMajor: LongInt;
                         var pdwMinor: LongInt): LongInt  stdcall ;


  UmGetUserCount: function : SmallInt  stdcall ;

  UmGetUserID: function (sIndex: SmallInt;
                     var pdwUserID: LongInt): LongInt  stdcall ;

  UmGetUserName: function (dwUserID: LongInt;
                       pUserNameBuffer: PChar;
                       var psUserNameBufSize: SmallInt): LongInt  stdcall ;

  UmGetUserDirectory: function (dwUserID: LongInt;
                            pUserDirBuffer: PChar;
                            var psUserDirBufSize: SmallInt): LongInt  stdcall ;

  UmGetUserPassword: function (dwUserID: LongInt;
                           pUserPasswordBuffer: PChar;
                           var psUserPasswordBufSize: SmallInt): LongInt  stdcall ;


  UmIsUserInstalled: function (dwUserID: LongInt): LongInt  stdcall ;

  UmIsUserProfile: function (dwUserID: LongInt): LongInt  stdcall ;


  UmSetUserName: function (dwUserID: LongInt;
                       const pUserName: PChar): LongInt  stdcall ;

  UmSetUserDirectory: function (dwUserID: LongInt;
                            const pUserDir: PTCHAR): LongInt  stdcall ;


  UmSetUserInstall: function (dwUserID: LongInt;
                          bUserInstall: Bool): LongInt  stdcall ;


  UmSetUserPermSyncPreferences: function (dwUserID: LongInt;
                                      dwCreatorID: LongInt;
                                      usaAction: LongInt): LongInt  stdcall ;

  UmSetUserTempSyncPreferences: function (dwUserID: LongInt;
                                      dwCreatorID: LongInt;
                                      usaAction: LongInt): LongInt  stdcall ;


  UmGetUserPermSyncPreferences: function (dwUserID: LongInt;
                                      dwCreatorID: LongInt;
                                      var pUsaAction: LongInt): LongInt  stdcall ;

  UmGetUserTempSyncPreferences: function (dwUserID: LongInt;
                                      dwCreatorID: LongInt;
                                      var pUsaAction: LongInt): LongInt  stdcall ;


  UmRemoveUserTempSyncPreferences: function (dwUserID: LongInt;
                                         dwCreatorID: LongInt): LongInt  stdcall ;

  UmDeleteUserPermSyncPreferences: function (dwUserID: LongInt;
                                         dwCreatorID: LongInt): LongInt  stdcall ;

  UmDeleteUserTempSyncPreferences: function (dwUserID: LongInt;
                                         dwCreatorID: LongInt): LongInt  stdcall ;

  UmAddUser: function (const pUser: PChar;
                   bProfileUser: Bool): LongInt  stdcall ;

  UmDeleteUser: function (dwUserID: LongInt): LongInt  stdcall ;


  UmGetRootDirectory: function (pRootDirBuffer: PChar;
                            var psRootDirBufSize: SmallInt): LongInt  stdcall ;

{/// install conduit user calls }

  UmIsInstallMaskSet: function (dwUserID: LongInt;
                            dwMask: LongInt): LongInt  stdcall ;

  UmClearInstallMask: function (dwUserID: LongInt;
                            dwMask: LongInt): LongInt  stdcall ;

  UmSetInstallMask: function (dwUserID: LongInt;
                          dwMask: LongInt): LongInt  stdcall ;


  UmGetString: function (dwUserID: LongInt;
                     const pszSection: PTCHAR;
                     const pszKey: PTCHAR;
                     var pBuf: TCHAR;
                     var lSize: LongInt;
                     const pszDefault: PTCHAR): LongInt  stdcall ;

  UmSetString: function (dwUserID: LongInt;
                     const pszSection: PTCHAR;
                     const pszKey: PTCHAR;
                     const pszValue: PTCHAR): LongInt  stdcall ;

  UmGetInteger: function (dwUserID: LongInt;
                      const pszSection: PTCHAR;
                      const pszKey: PTCHAR;
                      var pBuf: LongInt;
                      lDefault: LongInt): LongInt  stdcall ;

  UmSetInteger: function (dwUserID: LongInt;
                      const pszSection: PTCHAR;
                      const pszKey: PTCHAR;
                      lValue: LongInt): LongInt  stdcall ;

  UmDeleteKey: function (dwUserID: LongInt;
                     const pszSection: PTCHAR;
                     const pszKey: PTCHAR): LongInt  stdcall ;

  UmGetIDFromPath: function (const pszPath: PTCHAR;
                         var pdwUserID: LongInt): LongInt  stdcall ;

  UmGetIDFromName: function (const pszName: PTCHAR;
                         var pdwUserID: LongInt): LongInt  stdcall ;

{/// Expansion slot info calls }

  UmSlotGetExpMgrVersion: function (dwUserId: LongInt;
                                var pdwExpMgrVersion: LongInt): LongInt  stdcall ;


  UmSlotGetSlotCount: function (dwUserId: LongInt;
                            var pwNumSlots: Word): LongInt  stdcall ;

  UmSlotGetInfo: function (dwUserId: LongInt;
                       var pdwSlotIdList: LongInt;
                       var pwNumEntries: Word): LongInt  stdcall ;

  UmSlotGetMediaType: function (dwUserId: LongInt;
                            dwSlotId: LongInt;
                            var pdwSlotMediaType: LongInt): LongInt  stdcall ;

  UmSlotGetDisplayName: function (dwUserId: LongInt;
                              dwSlotId: LongInt;
                              var pszSlotDisplayName: TCHAR;
                              var plSize: LongInt): LongInt  stdcall ;

  UmSlotGetInstallDirectory: function (dwUserId: LongInt;
                                   dwSlotId: LongInt;
                                   var pszSlotInstallDir: TCHAR;
                                   var plSize: LongInt): LongInt  stdcall ;

{/// Error codes }
const
  ERR_UM_NO_USERSDAT_FILE = -500;
const
  ERR_UM_NO_USERS = -501;
const
  ERR_UM_USERSDAT_ALREADY_EXISTS = -502; {// not used}
const
  ERR_UM_INVALID_USER_INDEX = -503; {// commented out}
const
  ERR_UM_BUFSIZE_TOO_SMALL = -504;
const
  ERR_UM_INVALID_USER = -505;
const
  ERR_UM_INVALID_REGISTRY = -506; {// not used}
const
  ERR_UM_INVALID_INDEX = -507; {// not used}
const
  ERR_UM_INVALID_BUFFER = -508; {// not used}
const
  ERR_UM_INVALID_USER_NAME = -509;
const
  ERR_UM_INVALID_USER_DIR = -510;
const
  ERR_UM_NO_DIRECTORY = -511; {// not used}
const
  ERR_UM_NO_USER_FOUND = -512; {// not used}
const
  ERR_UM_NOT_FOUND = -513;
const
  ERR_UM_BAD_FILENAME = -514; {// not used}
const
  ERR_UM_USER_ACCESS = -515; {// not used}
const
  ERR_UM_SAVE_ERR = -516;
const
  ERR_UM_BASE = -517; {// don't understand}
const
  ERR_UM_OTHER_USERSDAT_ACCESS_PROBLEM = -518;
const
  ERR_UM_SEMAPHORE_ACCESS = -519;
const
  ERR_UM_UNABLE_TO_CREATE_NEW_FILE = -520; {// commented out}
const
  ERR_UM_NO_CORE_PATH = -521;
const
  ERR_UM_INVALID_POINTER = -522;
const
  ERR_UM_USER_ALREADY_EXISTS = -523;
const
  ERR_UM_USER_DIR_ALREADY_IN_USE = -524;



const
  ERR_UM_CANNOT_WRITE_TO_STORE = -525;
const
  ERR_UM_SYNC_PATH_TOO_BIG = -526;
const
  ERR_UM_STRING_TOO_BIG = -527;
const
  ERR_UM_FUNCTION_NOT_SUPPORTED = -528;
const
  ERR_UM_DEV_CFG_DATA_NOT_AVAILABLE = -529;

{$ENDIF // _USER_DATA_HEADER_}

function PalmPath: string;

implementation

uses
  Registry, SysUtils, Dialogs;

var
  Int_PalmPath: string = '';
  DllHandle : THandle;
  DllLoaded : Boolean;

function DLLPath: string;
var
 Buffer: array[0..MAX_PATH- 1] of char;
begin
 GetModuleFileName(hInstance, Buffer, MAX_PATH);
 Result := StrPas(Buffer);
end;

function PalmPath : string;
var
  TheHandle: HANDLE;
  Len: Smallint;
  Buffer: Array [0..MAX_PATH-1] of Char;
begin
  if Int_PalmPath = '' then
  begin
    if FileExists(DLLPath + 'userdata.dll') then
    begin
      // Get the Palm directory from the copy of the UserData.dll file
      TheHandle := LoadLibrary(PChar(DLLPath + 'userdata.dll'));
      if TheHandle >= 32 then
      begin
        @UmGetRootDirectory:= GetProcAddress(TheHandle,'UmGetRootDirectory');
        Len := MAX_PATH;
        UmGetRootDirectory(Buffer, Len);
        Int_PalmPath := StrPas(Buffer);
        FreeLibrary(TheHandle);
      end;
    end;

    if Int_PalmPath = '' then
    begin
      with TRegistry.Create do
        try
          if OpenKeyReadOnly('Software\U.S. Robotics\Pilot Desktop\Core') then
          Int_PalmPath := ExtractFilePath(ReadString('HotSyncPath'));
        finally
          Free;
        end;
    end;

    if (Int_PalmPath <> '') and (Int_PalmPath[Length(Int_PalmPath)] <> '\') then
      Int_PalmPath := Int_PalmPath + '\';
  end;

  Result := Int_PalmPath;
end;

procedure LoadDll;
begin
  if DllLoaded then Exit;

  DllHandle := LoadLibrary(PChar(PalmPath + 'userdata.dll'));
  DllLoaded := DllHandle >= 32;

  if DllLoaded then
  begin
    @UmGetLibVersion:= GetProcAddress(DLLHandle,'UmGetLibVersion');
    //Assert(@UmGetLibVersion <> nil);
    @UmGetUserCount:= GetProcAddress(DLLHandle,'UmGetUserCount');
    Assert(@UmGetUserCount <> nil);
    @UmGetUserID:= GetProcAddress(DLLHandle,'UmGetUserID');
    Assert(@UmGetUserID <> nil);
    @UmGetUserName:= GetProcAddress(DLLHandle,'UmGetUserName');
    Assert(@UmGetUserName <> nil);
    @UmGetUserDirectory:= GetProcAddress(DLLHandle,'UmGetUserDirectory');
    Assert(@UmGetUserDirectory <> nil);
    @UmGetUserPassword:= GetProcAddress(DLLHandle,'UmGetUserPassword');
    Assert(@UmGetUserPassword <> nil);
    @UmIsUserInstalled:= GetProcAddress(DLLHandle,'UmIsUserInstalled');
    Assert(@UmIsUserInstalled <> nil);
    @UmIsUserProfile:= GetProcAddress(DLLHandle,'UmIsUserProfile');
    Assert(@UmIsUserProfile <> nil);
    @UmSetUserName:= GetProcAddress(DLLHandle,'UmSetUserName');
    Assert(@UmSetUserName <> nil);
    @UmSetUserDirectory:= GetProcAddress(DLLHandle,'UmSetUserDirectory');
    Assert(@UmSetUserDirectory <> nil);
    @UmSetUserInstall:= GetProcAddress(DLLHandle,'UmSetUserInstall');
    Assert(@UmSetUserInstall <> nil);
    @UmSetUserPermSyncPreferences:= GetProcAddress(DLLHandle,'UmSetUserPermSyncPreferences');
    Assert(@UmSetUserPermSyncPreferences <> nil);
    @UmSetUserTempSyncPreferences:= GetProcAddress(DLLHandle,'UmSetUserTempSyncPreferences');
    Assert(@UmSetUserTempSyncPreferences <> nil);
    @UmGetUserPermSyncPreferences:= GetProcAddress(DLLHandle,'UmGetUserPermSyncPreferences');
    Assert(@UmGetUserPermSyncPreferences <> nil);
    @UmGetUserTempSyncPreferences:= GetProcAddress(DLLHandle,'UmGetUserTempSyncPreferences');
    Assert(@UmGetUserTempSyncPreferences <> nil);
    @UmRemoveUserTempSyncPreferences:= GetProcAddress(DLLHandle,'UmRemoveUserTempSyncPreferences');
    Assert(@UmRemoveUserTempSyncPreferences <> nil);
    @UmDeleteUserPermSyncPreferences:= GetProcAddress(DLLHandle,'UmDeleteUserPermSyncPreferences');
    Assert(@UmDeleteUserPermSyncPreferences <> nil);
    @UmDeleteUserTempSyncPreferences:= GetProcAddress(DLLHandle,'UmDeleteUserTempSyncPreferences');
    Assert(@UmDeleteUserTempSyncPreferences <> nil);
    @UmAddUser:= GetProcAddress(DLLHandle,'UmAddUser');
    Assert(@UmAddUser <> nil);
    @UmDeleteUser:= GetProcAddress(DLLHandle,'UmDeleteUser');
    Assert(@UmDeleteUser <> nil);
    @UmGetRootDirectory:= GetProcAddress(DLLHandle,'UmGetRootDirectory');
    Assert(@UmGetRootDirectory <> nil);
    @UmIsInstallMaskSet:= GetProcAddress(DLLHandle,'UmIsInstallMaskSet');
    Assert(@UmIsInstallMaskSet <> nil);
    @UmClearInstallMask:= GetProcAddress(DLLHandle,'UmClearInstallMask');
    Assert(@UmClearInstallMask <> nil);
    @UmSetInstallMask:= GetProcAddress(DLLHandle,'UmSetInstallMask');
    Assert(@UmSetInstallMask <> nil);
    @UmGetString:= GetProcAddress(DLLHandle,'UmGetString');
    Assert(@UmGetString <> nil);
    @UmSetString:= GetProcAddress(DLLHandle,'UmSetString');
    Assert(@UmSetString <> nil);
    @UmGetInteger:= GetProcAddress(DLLHandle,'UmGetInteger');
    Assert(@UmGetInteger <> nil);
    @UmSetInteger:= GetProcAddress(DLLHandle,'UmSetInteger');
    Assert(@UmSetInteger <> nil);
    @UmDeleteKey:= GetProcAddress(DLLHandle,'UmDeleteKey');
    Assert(@UmDeleteKey <> nil);
    @UmGetIDFromPath:= GetProcAddress(DLLHandle,'UmGetIDFromPath');
    Assert(@UmGetIDFromPath <> nil);
    @UmGetIDFromName:= GetProcAddress(DLLHandle,'UmGetIDFromName');
    Assert(@UmGetIDFromName <> nil);
    @UmSlotGetExpMgrVersion:= GetProcAddress(DLLHandle,'UmSlotGetExpMgrVersion');
    //Assert(@UmSlotGetExpMgrVersion <> nil);
    @UmSlotGetSlotCount:= GetProcAddress(DLLHandle,'UmSlotGetSlotCount');
    //Assert(@UmSlotGetSlotCount <> nil);
    @UmSlotGetInfo:= GetProcAddress(DLLHandle,'UmSlotGetInfo');
    //Assert(@UmSlotGetInfo <> nil);
    @UmSlotGetMediaType:= GetProcAddress(DLLHandle,'UmSlotGetMediaType');
    //Assert(@UmSlotGetMediaType <> nil);
    @UmSlotGetDisplayName:= GetProcAddress(DLLHandle,'UmSlotGetDisplayName');
    //Assert(@UmSlotGetDisplayName <> nil);
    @UmSlotGetInstallDirectory:= GetProcAddress(DLLHandle,'UmSlotGetInstallDirectory');
    //Assert(@UmSlotGetInstallDirectory <> nil);
  end;
end;


initialization
  DllLoaded := False;
  LoadDll;

  if (not DllLoaded) then
    MessageDlg('pfgUserData: Unable to load userdata.dll',mtError,[mbOk],0);

finalization
  if DllLoaded then FreeLibrary(DllHandle);
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线视频免费播放| 男男成人高潮片免费网站| 欧美日韩在线直播| 在线观看av不卡| 青青青伊人色综合久久| 国产精品久久久久国产精品日日 | 色综合色狠狠综合色| 日韩高清在线不卡| 最新热久久免费视频| 精品少妇一区二区三区日产乱码| 99re在线精品| 国产一区视频在线看| 一区二区免费看| 欧美经典三级视频一区二区三区| 欧美另类z0zxhd电影| 成人久久18免费网站麻豆| 美女高潮久久久| 亚洲午夜在线电影| 亚洲激情图片小说视频| 国产日韩影视精品| 欧美变态口味重另类| 欧美日韩一区二区欧美激情| 97久久精品人人做人人爽50路| 精品亚洲porn| 美女视频网站久久| 日本成人中文字幕在线视频| 一区二区三区免费在线观看| 中文文精品字幕一区二区| 欧美一区二区人人喊爽| 欧美伊人久久久久久午夜久久久久| 高清国产午夜精品久久久久久| 老司机精品视频线观看86| 午夜久久久久久久久| 洋洋av久久久久久久一区| 国产精品国产三级国产| 欧美激情艳妇裸体舞| 精品国产亚洲在线| 欧美电视剧免费观看| 欧美va亚洲va| 日韩免费观看2025年上映的电影| 欧美二区在线观看| 在线电影一区二区三区| 精品视频资源站| 欧美色图12p| 欧美系列一区二区| 欧美日韩精品免费| 欧美日韩黄色影视| 欧美乱妇一区二区三区不卡视频| 欧美日韩精品系列| 欧美一级二级在线观看| 日韩免费性生活视频播放| 精品久久久久久久久久久院品网| 日韩欧美一二区| 欧美成人bangbros| 欧美xxxxxxxx| 久久久精品一品道一区| 久久久亚洲国产美女国产盗摄| 久久久亚洲欧洲日产国码αv| 欧美精品一区视频| 国产欧美日韩视频一区二区| 中文字幕一区二区三区精华液| 日韩一区中文字幕| 亚洲精品免费看| 亚洲午夜在线视频| 免费一级欧美片在线观看| 久久综合综合久久综合| 国产精品一线二线三线| 成人国产一区二区三区精品| 99久久久久久| 欧美性感一区二区三区| 欧美二区乱c少妇| 久久午夜电影网| 成人欧美一区二区三区视频网页| 亚洲精品视频观看| 日韩影视精彩在线| 国产精品综合在线视频| 一本到高清视频免费精品| 欧美日韩国产在线观看| 精品国产污污免费网站入口 | 一区二区三区产品免费精品久久75| 一区二区三区四区在线免费观看| 日日摸夜夜添夜夜添精品视频| 另类中文字幕网| 91在线视频官网| 在线播放欧美女士性生活| 国产欧美一区二区精品性 | 久久精品久久综合| 成人精品鲁一区一区二区| 欧洲av一区二区嗯嗯嗯啊| 欧美精品一区二区三区蜜桃| 亚洲人成网站影音先锋播放| 日韩高清电影一区| av毛片久久久久**hd| 欧美老女人在线| 亚洲国产电影在线观看| 亚洲成人动漫精品| jiyouzz国产精品久久| 91精品国产综合久久香蕉的特点| 中文字幕高清不卡| 日本亚洲电影天堂| 91亚洲精品久久久蜜桃网站| 日韩欧美中文字幕精品| 亚洲男人电影天堂| 国产精品小仙女| 678五月天丁香亚洲综合网| 国产精品三级av| 奇米精品一区二区三区在线观看| 99精品国产视频| 久久久av毛片精品| 日韩电影在线免费看| av在线播放一区二区三区| 日韩欧美一级二级| 亚洲123区在线观看| av一区二区三区四区| 精品国产百合女同互慰| 日韩精品五月天| 91久久精品一区二区| 中文字幕的久久| 国产综合色产在线精品| 欧美电影在哪看比较好| 一区二区三区四区五区视频在线观看| 狠狠色综合播放一区二区| 欧美福利一区二区| 一区二区三区欧美激情| 91视视频在线观看入口直接观看www | 日韩毛片精品高清免费| 激情文学综合网| 69堂国产成人免费视频| 亚洲一区在线观看视频| 99久久99久久免费精品蜜臀| 国产婷婷精品av在线| 久久 天天综合| 日韩欧美国产一二三区| 日韩中文字幕91| 欧美喷潮久久久xxxxx| 亚洲综合一二区| 在线看国产一区| 一区二区三区在线播| 在线免费观看成人短视频| 专区另类欧美日韩| 色婷婷av一区二区三区大白胸| 国产精品久久久久久亚洲伦| 成人小视频免费在线观看| 国产免费久久精品| 成人免费视频caoporn| 国产欧美日韩综合| 99综合影院在线| 亚洲三级电影网站| 色呦呦日韩精品| 夜夜嗨av一区二区三区网页| 欧美三级韩国三级日本一级| 亚洲1区2区3区4区| 欧美zozozo| 波波电影院一区二区三区| 国产精品国模大尺度视频| 91看片淫黄大片一级在线观看| 一区二区三区在线视频观看58| 欧美日韩aaa| 日韩高清在线不卡| 国产视频一区二区三区在线观看| 高清beeg欧美| 亚洲精品视频在线观看网站| 欧美日韩成人综合| 国产自产2019最新不卡| 国产精品乱人伦一区二区| 色婷婷综合久久久中文字幕| 午夜精品福利一区二区三区蜜桃| 欧美一区二区视频观看视频| 国产精品亚洲一区二区三区在线 | 久久综合久久99| 从欧美一区二区三区| 一区二区三区蜜桃| 日韩精品综合一本久道在线视频| 国产成人日日夜夜| 一区二区欧美国产| 欧美变态口味重另类| 92国产精品观看| 免费看欧美女人艹b| 国产精品国产三级国产aⅴ入口| 欧美影视一区在线| 国内精品伊人久久久久影院对白| 国产精品婷婷午夜在线观看| 欧美在线观看你懂的| 久久国产欧美日韩精品| 国产精品久久久久久久久免费相片| 在线亚洲精品福利网址导航| 狠狠久久亚洲欧美| 亚洲色图丝袜美腿| 欧美va亚洲va在线观看蝴蝶网| 色综合中文字幕国产| 美女视频一区在线观看| 亚洲视频在线观看一区| 日韩小视频在线观看专区| 99精品偷自拍| 精品中文字幕一区二区小辣椒| 亚洲人成网站影音先锋播放| 精品久久久久久久久久久久久久久久久| 91丝袜呻吟高潮美腿白嫩在线观看| 日韩成人av影视| 亚洲人成7777|