Repository URL to install this package:
|
Version:
3.2.0 ▾
|
{******************************************************************************}
{ }
{ Lan Manager Replicator API interface Unit for Object Pascal }
{ }
{ Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
{ Corporation. All Rights Reserved. }
{ }
{ The original file is: lmrepl.h, released November 2001. The original Pascal }
{ code is: LmRepl.pas, released Februari 2002. The initial developer of the }
{ Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
{ }
{ Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
{ Marcel van Brakel. All Rights Reserved. }
{ }
{ Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
{ }
{ You may retrieve the latest version of this file at the Project JEDI }
{ APILIB home page, located at http://jedi-apilib.sourceforge.net }
{ }
{ The contents of this file are used with permission, subject to the Mozilla }
{ Public License Version 1.1 (the "License"); you may not use this file except }
{ in compliance with the License. You may obtain a copy of the License at }
{ http://www.mozilla.org/MPL/MPL-1.1.html }
{ }
{ Software distributed under the License is distributed on an "AS IS" basis, }
{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
{ the specific language governing rights and limitations under the License. }
{ }
{ Alternatively, the contents of this file may be used under the terms of the }
{ GNU Lesser General Public License (the "LGPL License"), in which case the }
{ provisions of the LGPL License are applicable instead of those above. }
{ If you wish to allow use of your version of this file only under the terms }
{ of the LGPL License and not to allow others to use your version of this file }
{ under the MPL, indicate your decision by deleting the provisions above and }
{ replace them with the notice and other provisions required by the LGPL }
{ License. If you do not delete the provisions above, a recipient may use }
{ your version of this file under either the MPL or the LGPL License. }
{ }
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
{ }
{******************************************************************************}
// $Id: JwaLmRepl.pas,v 1.12 2007/09/05 11:58:50 dezipaitor Exp $
{$IFNDEF JWA_OMIT_SECTIONS_LM}
unit JwaLmRepl;
{$WEAKPACKAGEUNIT}
{$ENDIF JWA_OMIT_SECTIONS_LM}
{$HPPEMIT ''}
{$HPPEMIT '#include "lmrepl.h"'}
{$HPPEMIT ''}
{$IFNDEF JWA_OMIT_SECTIONS_LM}
{$I jediapilib.inc}
interface
uses
JwaLmCons, JwaWinType;
{$ENDIF JWA_OMIT_SECTIONS_LM}
{$IFNDEF JWA_IMPLEMENTATIONSECTION}
//
// Replicator Configuration APIs
//
const
REPL_ROLE_EXPORT = 1;
{$EXTERNALSYM REPL_ROLE_EXPORT}
REPL_ROLE_IMPORT = 2;
{$EXTERNALSYM REPL_ROLE_IMPORT}
REPL_ROLE_BOTH = 3;
{$EXTERNALSYM REPL_ROLE_BOTH}
REPL_INTERVAL_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + 0;
{$EXTERNALSYM REPL_INTERVAL_INFOLEVEL}
REPL_PULSE_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + 1;
{$EXTERNALSYM REPL_PULSE_INFOLEVEL}
REPL_GUARDTIME_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + 2;
{$EXTERNALSYM REPL_GUARDTIME_INFOLEVEL}
REPL_RANDOM_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + 3;
{$EXTERNALSYM REPL_RANDOM_INFOLEVEL}
type
_REPL_INFO_0 = record
rp0_role: DWORD;
rp0_exportpath: LPWSTR;
rp0_exportlist: LPWSTR;
rp0_importpath: LPWSTR;
rp0_importlist: LPWSTR;
rp0_logonusername: LPWSTR;
rp0_interval: DWORD;
rp0_pulse: DWORD;
rp0_guardtime: DWORD;
rp0_random: DWORD;
end;
{$EXTERNALSYM _REPL_INFO_0}
REPL_INFO_0 = _REPL_INFO_0;
{$EXTERNALSYM REPL_INFO_0}
LPREPL_INFO_0 = ^REPL_INFO_0;
{$EXTERNALSYM LPREPL_INFO_0}
PREPL_INFO_0 = ^REPL_INFO_0;
{$EXTERNALSYM PREPL_INFO_0}
TReplInfo0 = REPL_INFO_0;
PReplInfo0 = PREPL_INFO_0;
_REPL_INFO_1000 = record
rp1000_interval: DWORD;
end;
{$EXTERNALSYM _REPL_INFO_1000}
REPL_INFO_1000 = _REPL_INFO_1000;
{$EXTERNALSYM REPL_INFO_1000}
LPREPL_INFO_1000 = ^REPL_INFO_1000;
{$EXTERNALSYM LPREPL_INFO_1000}
PREPL_INFO_1000 = ^REPL_INFO_1000;
{$EXTERNALSYM PREPL_INFO_1000}
TReplInfo1000 = REPL_INFO_1000;
PReplInfo1000 = PREPL_INFO_1000;
_REPL_INFO_1001 = record
rp1001_pulse: DWORD;
end;
{$EXTERNALSYM _REPL_INFO_1001}
REPL_INFO_1001 = _REPL_INFO_1001;
{$EXTERNALSYM REPL_INFO_1001}
LPREPL_INFO_1001 = ^REPL_INFO_1001;
{$EXTERNALSYM LPREPL_INFO_1001}
PREPL_INFO_1001 = ^REPL_INFO_1001;
{$EXTERNALSYM PREPL_INFO_1001}
TReplInfo1001 = REPL_INFO_1001;
PReplInfo1001 = PREPL_INFO_1001;
_REPL_INFO_1002 = record
rp1002_guardtime: DWORD;
end;
{$EXTERNALSYM _REPL_INFO_1002}
REPL_INFO_1002 = _REPL_INFO_1002;
{$EXTERNALSYM REPL_INFO_1002}
LPREPL_INFO_1002 = ^REPL_INFO_1002;
{$EXTERNALSYM LPREPL_INFO_1002}
PREPL_INFO_1002 = ^REPL_INFO_1002;
{$EXTERNALSYM PREPL_INFO_1002}
TReplInfo1002 = REPL_INFO_1002;
PReplInfo1002 = PREPL_INFO_1002;
_REPL_INFO_1003 = record
rp1003_random: DWORD;
end;
{$EXTERNALSYM _REPL_INFO_1003}
REPL_INFO_1003 = _REPL_INFO_1003;
{$EXTERNALSYM REPL_INFO_1003}
LPREPL_INFO_1003 = ^REPL_INFO_1003;
{$EXTERNALSYM LPREPL_INFO_1003}
PREPL_INFO_1003 = ^REPL_INFO_1003;
{$EXTERNALSYM PREPL_INFO_1003}
TReplInfo1003 = REPL_INFO_1003;
PReplInfo1003 = PREPL_INFO_1003;
function NetReplGetInfo(servername: LPCWSTR; level: DWORD; var bufptr: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplGetInfo}
function NetReplSetInfo(servername: LPCWSTR; level: DWORD; buf: LPBYTE ; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplSetInfo}
//
// Replicator Export Directory APIs
//
const
REPL_INTEGRITY_FILE = 1;
{$EXTERNALSYM REPL_INTEGRITY_FILE}
REPL_INTEGRITY_TREE = 2;
{$EXTERNALSYM REPL_INTEGRITY_TREE}
REPL_EXTENT_FILE = 1;
{$EXTERNALSYM REPL_EXTENT_FILE}
REPL_EXTENT_TREE = 2;
{$EXTERNALSYM REPL_EXTENT_TREE}
REPL_EXPORT_INTEGRITY_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + 0;
{$EXTERNALSYM REPL_EXPORT_INTEGRITY_INFOLEVEL}
REPL_EXPORT_EXTENT_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + 1;
{$EXTERNALSYM REPL_EXPORT_EXTENT_INFOLEVEL}
type
_REPL_EDIR_INFO_0 = record
rped0_dirname: LPWSTR;
end;
{$EXTERNALSYM _REPL_EDIR_INFO_0}
REPL_EDIR_INFO_0 = _REPL_EDIR_INFO_0;
{$EXTERNALSYM REPL_EDIR_INFO_0}
LPREPL_EDIR_INFO_0 = ^REPL_EDIR_INFO_0;
{$EXTERNALSYM LPREPL_EDIR_INFO_0}
PREPL_EDIR_INFO_0 = ^REPL_EDIR_INFO_0;
{$EXTERNALSYM PREPL_EDIR_INFO_0}
TReplEdirInfo0 = REPL_EDIR_INFO_0;
PReplEdirInfo0 = PREPL_EDIR_INFO_0;
_REPL_EDIR_INFO_1 = record
rped1_dirname: LPWSTR;
rped1_integrity: DWORD;
rped1_extent: DWORD;
end;
{$EXTERNALSYM _REPL_EDIR_INFO_1}
REPL_EDIR_INFO_1 = _REPL_EDIR_INFO_1;
{$EXTERNALSYM REPL_EDIR_INFO_1}
LPREPL_EDIR_INFO_1 = ^REPL_EDIR_INFO_1;
{$EXTERNALSYM LPREPL_EDIR_INFO_1}
PREPL_EDIR_INFO_1 = ^REPL_EDIR_INFO_1;
{$EXTERNALSYM PREPL_EDIR_INFO_1}
TReplEdirInfo1 = REPL_EDIR_INFO_1;
PReplEdirInfo1 = PREPL_EDIR_INFO_1;
_REPL_EDIR_INFO_2 = record
rped2_dirname: LPWSTR;
rped2_integrity: DWORD;
rped2_extent: DWORD;
rped2_lockcount: DWORD;
rped2_locktime: DWORD;
end;
{$EXTERNALSYM _REPL_EDIR_INFO_2}
REPL_EDIR_INFO_2 = _REPL_EDIR_INFO_2;
{$EXTERNALSYM REPL_EDIR_INFO_2}
LPREPL_EDIR_INFO_2 = ^REPL_EDIR_INFO_2;
{$EXTERNALSYM LPREPL_EDIR_INFO_2}
PREPL_EDIR_INFO_2 = ^REPL_EDIR_INFO_2;
{$EXTERNALSYM PREPL_EDIR_INFO_2}
TReplEdirInfo2 = REPL_EDIR_INFO_2;
PReplEdirInfo2 = PREPL_EDIR_INFO_2;
_REPL_EDIR_INFO_1000 = record
rped1000_integrity: DWORD;
end;
{$EXTERNALSYM _REPL_EDIR_INFO_1000}
REPL_EDIR_INFO_1000 = _REPL_EDIR_INFO_1000;
{$EXTERNALSYM REPL_EDIR_INFO_1000}
LPREPL_EDIR_INFO_1000 = ^REPL_EDIR_INFO_1000;
{$EXTERNALSYM LPREPL_EDIR_INFO_1000}
PREPL_EDIR_INFO_1000 = ^REPL_EDIR_INFO_1000;
{$EXTERNALSYM PREPL_EDIR_INFO_1000}
TReplEdirInfo1000 = REPL_EDIR_INFO_1000;
PReplEdirInfo1000 = PREPL_EDIR_INFO_1000;
_REPL_EDIR_INFO_1001 = record
rped1001_extent: DWORD;
end;
{$EXTERNALSYM _REPL_EDIR_INFO_1001}
REPL_EDIR_INFO_1001 = _REPL_EDIR_INFO_1001;
{$EXTERNALSYM REPL_EDIR_INFO_1001}
LPREPL_EDIR_INFO_1001 = ^REPL_EDIR_INFO_1001;
{$EXTERNALSYM LPREPL_EDIR_INFO_1001}
PREPL_EDIR_INFO_1001 = ^REPL_EDIR_INFO_1001;
{$EXTERNALSYM PREPL_EDIR_INFO_1001}
TReplEdirInfo1001 = REPL_EDIR_INFO_1001;
PReplEdirInfo1001 = PREPL_EDIR_INFO_1001;
function NetReplExportDirAdd(servername: LPCWSTR; level: DWORD; buf: LPBYTE ; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplExportDirAdd}
function NetReplExportDirDel(servername: LPCWSTR; dirname: LPCWSTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplExportDirDel}
function NetReplExportDirEnum(servername: LPCWSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries, resumehandle: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplExportDirEnum}
function NetReplExportDirGetInfo(servername, dirname: LPCWSTR; level: DWORD; var bufptr: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplExportDirGetInfo}
function NetReplExportDirSetInfo(servername, dirname: LPCWSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplExportDirSetInfo}
function NetReplExportDirLock(servername: LPCWSTR; dirname: LPCWSTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplExportDirLock}
function NetReplExportDirUnlock(servername: LPCWSTR; dirname: LPCWSTR; unlockforce: DWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplExportDirUnlock}
const
REPL_UNLOCK_NOFORCE = 0;
{$EXTERNALSYM REPL_UNLOCK_NOFORCE}
REPL_UNLOCK_FORCE = 1;
{$EXTERNALSYM REPL_UNLOCK_FORCE}
//
// Replicator Import Directory APIs
//
type
_REPL_IDIR_INFO_0 = record
rpid0_dirname: LPWSTR;
end;
{$EXTERNALSYM _REPL_IDIR_INFO_0}
REPL_IDIR_INFO_0 = _REPL_IDIR_INFO_0;
{$EXTERNALSYM REPL_IDIR_INFO_0}
LPREPL_IDIR_INFO_0 = ^REPL_IDIR_INFO_0;
{$EXTERNALSYM LPREPL_IDIR_INFO_0}
PREPL_IDIR_INFO_0 = ^REPL_IDIR_INFO_0;
{$EXTERNALSYM PREPL_IDIR_INFO_0}
TReplIdirInfo0 = REPL_IDIR_INFO_0;
PReplIdirInfo0 = PREPL_IDIR_INFO_0;
_REPL_IDIR_INFO_1 = record
rpid1_dirname: LPWSTR;
rpid1_state: DWORD;
rpid1_mastername: LPWSTR;
rpid1_last_update_time: DWORD;
rpid1_lockcount: DWORD;
rpid1_locktime: DWORD;
end;
{$EXTERNALSYM _REPL_IDIR_INFO_1}
REPL_IDIR_INFO_1 = _REPL_IDIR_INFO_1;
{$EXTERNALSYM REPL_IDIR_INFO_1}
LPREPL_IDIR_INFO_1 = ^REPL_IDIR_INFO_1;
{$EXTERNALSYM LPREPL_IDIR_INFO_1}
PREPL_IDIR_INFO_1 = ^REPL_IDIR_INFO_1;
{$EXTERNALSYM PREPL_IDIR_INFO_1}
TReplIdirInfo1 = REPL_IDIR_INFO_1;
PReplIdirInfo1 = PREPL_IDIR_INFO_1;
function NetReplImportDirAdd(servername: LPCWSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplImportDirAdd}
function NetReplImportDirDel(servername: LPCWSTR; dirname: LPCWSTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplImportDirDel}
function NetReplImportDirEnum(servername: LPCWSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries, resumehandle: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplImportDirEnum}
function NetReplImportDirGetInfo(servername, dirname: LPCWSTR; level: DWORD; var bufptr: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplImportDirGetInfo}
function NetReplImportDirLock(servername: LPCWSTR; dirname: LPCWSTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplImportDirLock}
function NetReplImportDirUnlock(servername: LPCWSTR; dirname: LPCWSTR; unlockforce: DWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetReplImportDirUnlock}
const
REPL_STATE_OK = 0;
{$EXTERNALSYM REPL_STATE_OK}
REPL_STATE_NO_MASTER = 1;
{$EXTERNALSYM REPL_STATE_NO_MASTER}
REPL_STATE_NO_SYNC = 2;
{$EXTERNALSYM REPL_STATE_NO_SYNC}
REPL_STATE_NEVER_REPLICATED = 3;
{$EXTERNALSYM REPL_STATE_NEVER_REPLICATED}
{$ENDIF JWA_IMPLEMENTATIONSECTION}
{$IFNDEF JWA_OMIT_SECTIONS_LM}
implementation
//uses ...
{$ENDIF JWA_OMIT_SECTIONS_LM}
{$IFNDEF JWA_INTERFACESECTION}
{$IFDEF DYNAMIC_LINK}
var
_NetReplGetInfo: Pointer;
function NetReplGetInfo;
begin
GetProcedureAddress(_NetReplGetInfo, netapi32, 'NetReplGetInfo');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplGetInfo]
end;
end;
var
_NetReplSetInfo: Pointer;
function NetReplSetInfo;
begin
GetProcedureAddress(_NetReplSetInfo, netapi32, 'NetReplSetInfo');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplSetInfo]
end;
end;
var
_NetReplExportDirAdd: Pointer;
function NetReplExportDirAdd;
begin
GetProcedureAddress(_NetReplExportDirAdd, netapi32, 'NetReplExportDirAdd');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplExportDirAdd]
end;
end;
var
_NetReplExportDirDel: Pointer;
function NetReplExportDirDel;
begin
GetProcedureAddress(_NetReplExportDirDel, netapi32, 'NetReplExportDirDel');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplExportDirDel]
end;
end;
var
_NetReplExportDirEnum: Pointer;
function NetReplExportDirEnum;
begin
GetProcedureAddress(_NetReplExportDirEnum, netapi32, 'NetReplExportDirEnum');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplExportDirEnum]
end;
end;
var
_NetReplExportDirGetInfo: Pointer;
function NetReplExportDirGetInfo;
begin
GetProcedureAddress(_NetReplExportDirGetInfo, netapi32, 'NetReplExportDirGetInfo');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplExportDirGetInfo]
end;
end;
var
_NetReplExportDirSetInfo: Pointer;
function NetReplExportDirSetInfo;
begin
GetProcedureAddress(_NetReplExportDirSetInfo, netapi32, 'NetReplExportDirSetInfo');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplExportDirSetInfo]
end;
end;
var
_NetReplExportDirLock: Pointer;
function NetReplExportDirLock;
begin
GetProcedureAddress(_NetReplExportDirLock, netapi32, 'NetReplExportDirLock');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplExportDirLock]
end;
end;
var
_NetReplExportDirUnlock: Pointer;
function NetReplExportDirUnlock;
begin
GetProcedureAddress(_NetReplExportDirUnlock, netapi32, 'NetReplExportDirUnlock');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplExportDirUnlock]
end;
end;
var
_NetReplImportDirAdd: Pointer;
function NetReplImportDirAdd;
begin
GetProcedureAddress(_NetReplImportDirAdd, netapi32, 'NetReplImportDirAdd');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplImportDirAdd]
end;
end;
var
_NetReplImportDirDel: Pointer;
function NetReplImportDirDel;
begin
GetProcedureAddress(_NetReplImportDirDel, netapi32, 'NetReplImportDirDel');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplImportDirDel]
end;
end;
var
_NetReplImportDirEnum: Pointer;
function NetReplImportDirEnum;
begin
GetProcedureAddress(_NetReplImportDirEnum, netapi32, 'NetReplImportDirEnum');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplImportDirEnum]
end;
end;
var
_NetReplImportDirGetInfo: Pointer;
function NetReplImportDirGetInfo;
begin
GetProcedureAddress(_NetReplImportDirGetInfo, netapi32, 'NetReplImportDirGetInfo');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplImportDirGetInfo]
end;
end;
var
_NetReplImportDirLock: Pointer;
function NetReplImportDirLock;
begin
GetProcedureAddress(_NetReplImportDirLock, netapi32, 'NetReplImportDirLock');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplImportDirLock]
end;
end;
var
_NetReplImportDirUnlock: Pointer;
function NetReplImportDirUnlock;
begin
GetProcedureAddress(_NetReplImportDirUnlock, netapi32, 'NetReplImportDirUnlock');
asm
MOV ESP, EBP
POP EBP
JMP [_NetReplImportDirUnlock]
end;
end;
{$ELSE}
function NetReplGetInfo; external netapi32 name 'NetReplGetInfo';
function NetReplSetInfo; external netapi32 name 'NetReplSetInfo';
function NetReplExportDirAdd; external netapi32 name 'NetReplExportDirAdd';
function NetReplExportDirDel; external netapi32 name 'NetReplExportDirDel';
function NetReplExportDirEnum; external netapi32 name 'NetReplExportDirEnum';
function NetReplExportDirGetInfo; external netapi32 name 'NetReplExportDirGetInfo';
function NetReplExportDirSetInfo; external netapi32 name 'NetReplExportDirSetInfo';
function NetReplExportDirLock; external netapi32 name 'NetReplExportDirLock';
function NetReplExportDirUnlock; external netapi32 name 'NetReplExportDirUnlock';
function NetReplImportDirAdd; external netapi32 name 'NetReplImportDirAdd';
function NetReplImportDirDel; external netapi32 name 'NetReplImportDirDel';
function NetReplImportDirEnum; external netapi32 name 'NetReplImportDirEnum';
function NetReplImportDirGetInfo; external netapi32 name 'NetReplImportDirGetInfo';
function NetReplImportDirLock; external netapi32 name 'NetReplImportDirLock';
function NetReplImportDirUnlock; external netapi32 name 'NetReplImportDirUnlock';
{$ENDIF DYNAMIC_LINK}
{$ENDIF JWA_INTERFACESECTION}
{$IFNDEF JWA_OMIT_SECTIONS_LM}
end.
{$ENDIF JWA_OMIT_SECTIONS_LM}