⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jwarpcdce.pas

📁 比较全面的win32api开发包
💻 PAS
📖 第 1 页 / 共 5 页
字号:
{$EXTERNALSYM RpcEpRegisterW}

{$IFDEF UNICODE}
function RpcEpRegister(IfSpec: RPC_IF_HANDLE; BindingVector: PRPC_BINDING_VECTOR;
  UuidVector: PUUID_VECTOR; Annotation: PWideChar): RPC_STATUS; stdcall;
{$EXTERNALSYM RpcEpRegister}
{$ELSE}
function RpcEpRegister(IfSpec: RPC_IF_HANDLE; BindingVector: PRPC_BINDING_VECTOR;
  UuidVector: PUUID_VECTOR; Annotation: PChar): RPC_STATUS; stdcall;
{$EXTERNALSYM RpcEpRegister}
{$ENDIF}

function RpcEpUnregister(IfSpec: RPC_IF_HANDLE; BindingVector: PRPC_BINDING_VECTOR;
  UuidVector: UUID_VECTOR): RPC_STATUS; stdcall;
{$EXTERNALSYM RpcEpUnregister}

function DceErrorInqTextA(RpcStatus: RPC_STATUS; ErrorText: PChar): RPC_STATUS; stdcall;
{$EXTERNALSYM DceErrorInqTextA}
function DceErrorInqTextW(RpcStatus: RPC_STATUS; ErrorText: PWideChar): RPC_STATUS; stdcall;
{$EXTERNALSYM DceErrorInqTextW}

{$IFDEF UNICODE}
function DceErrorInqText(RpcStatus: RPC_STATUS; ErrorText: PWideChar): RPC_STATUS; stdcall;
{$EXTERNALSYM DceErrorInqText}
{$ELSE}
function DceErrorInqText(RpcStatus: RPC_STATUS; ErrorText: PChar): RPC_STATUS; stdcall;
{$EXTERNALSYM DceErrorInqText}
{$ENDIF}

const
  DCE_C_ERROR_STRING_LEN = 256;
  {$EXTERNALSYM DCE_C_ERROR_STRING_LEN}

type
  RPC_EP_INQ_HANDLE = ^I_RPC_HANDLE;
  {$EXTERNALSYM RPC_EP_INQ_HANDLE}

const
  RPC_C_EP_ALL_ELTS      = 0;
  {$EXTERNALSYM RPC_C_EP_ALL_ELTS}
  RPC_C_EP_MATCH_BY_IF   = 1;
  {$EXTERNALSYM RPC_C_EP_MATCH_BY_IF}
  RPC_C_EP_MATCH_BY_OBJ  = 2;
  {$EXTERNALSYM RPC_C_EP_MATCH_BY_OBJ}
  RPC_C_EP_MATCH_BY_BOTH = 3;
  {$EXTERNALSYM RPC_C_EP_MATCH_BY_BOTH}

  RPC_C_VERS_ALL        = 1;
  {$EXTERNALSYM RPC_C_VERS_ALL}
  RPC_C_VERS_COMPATIBLE = 2;
  {$EXTERNALSYM RPC_C_VERS_COMPATIBLE}
  RPC_C_VERS_EXACT      = 3;
  {$EXTERNALSYM RPC_C_VERS_EXACT}
  RPC_C_VERS_MAJOR_ONLY = 4;
  {$EXTERNALSYM RPC_C_VERS_MAJOR_ONLY}
  RPC_C_VERS_UPTO       = 5;
  {$EXTERNALSYM RPC_C_VERS_UPTO}

function RpcMgmtEpEltInqBegin(EpBinding: RPC_BINDING_HANDLE; InquiryType: Cardinal;
  IfId: PRPC_IF_ID; VersOption: Cardinal; ObjectUuid: PUUID;
  var InquiryContext: RPC_EP_INQ_HANDLE): RPC_STATUS; stdcall;
{$EXTERNALSYM RpcMgmtEpEltInqBegin}

function RpcMgmtEpEltInqDone(var InquiryContext: RPC_EP_INQ_HANDLE): RPC_STATUS; stdcall;
{$EXTERNALSYM RpcMgmtEpEltInqDone}

function RpcMgmtEpEltInqNextA(InquiryContext: RPC_EP_INQ_HANDLE; var IfId: RPC_IF_ID;
  Binding: PRPC_BINDING_HANDLE; ObjectUuid: PUUID; var Annotation: PChar): RPC_STATUS; stdcall;
{$EXTERNALSYM RpcMgmtEpEltInqNextA}

function RpcMgmtEpEltInqNextW(InquiryContext: RPC_EP_INQ_HANDLE; var IfId: RPC_IF_ID;
  Binding: PRPC_BINDING_HANDLE; ObjectUuid: PUUID; var Annotation: PWideChar): RPC_STATUS; stdcall;
{$EXTERNALSYM RpcMgmtEpEltInqNextW}

{$IFDEF UNICODE}
function RpcMgmtEpEltInqNext(InquiryContext: RPC_EP_INQ_HANDLE; var IfId: RPC_IF_ID;
  Binding: PRPC_BINDING_HANDLE; ObjectUuid: PUUID; var Annotation: PWideChar): RPC_STATUS; stdcall;
{$EXTERNALSYM RpcMgmtEpEltInqNext}
{$ELSE}
function RpcMgmtEpEltInqNext(InquiryContext: RPC_EP_INQ_HANDLE; var IfId: RPC_IF_ID;
  Binding: PRPC_BINDING_HANDLE; ObjectUuid: PUUID; var Annotation: PChar): RPC_STATUS; stdcall;
{$EXTERNALSYM RpcMgmtEpEltInqNext}
{$ENDIF}

function RpcMgmtEpUnregister(EpBinding: RPC_BINDING_HANDLE; IfId: PRPC_IF_ID;
  Binding: RPC_BINDING_HANDLE; ObjectUuid : PUUID): RPC_STATUS; stdcall;
{$EXTERNALSYM RpcMgmtEpUnregister}

type
  RPC_MGMT_AUTHORIZATION_FN = function (ClientBinding: RPC_BINDING_HANDLE;
    RequestedMgmtOperation: Cardinal; var Status: RPC_STATUS): Integer; stdcall;
  {$EXTERNALSYM RPC_MGMT_AUTHORIZATION_FN}
  TRpcMgmtAuthorizationFn = RPC_MGMT_AUTHORIZATION_FN;

const
  RPC_C_MGMT_INQ_IF_IDS         = 0;
  {$EXTERNALSYM RPC_C_MGMT_INQ_IF_IDS}
  RPC_C_MGMT_INQ_PRINC_NAME     = 1;
  {$EXTERNALSYM RPC_C_MGMT_INQ_PRINC_NAME}
  RPC_C_MGMT_INQ_STATS          = 2;
  {$EXTERNALSYM RPC_C_MGMT_INQ_STATS}
  RPC_C_MGMT_IS_SERVER_LISTEN   = 3;
  {$EXTERNALSYM RPC_C_MGMT_IS_SERVER_LISTEN}
  RPC_C_MGMT_STOP_SERVER_LISTEN = 4;
  {$EXTERNALSYM RPC_C_MGMT_STOP_SERVER_LISTEN}

function RpcMgmtSetAuthorizationFn(AuthorizationFn: RPC_MGMT_AUTHORIZATION_FN): RPC_STATUS; stdcall;
{$EXTERNALSYM RpcMgmtSetAuthorizationFn}

const
  RPC_C_PARM_MAX_PACKET_LENGTH = 1;
  {$EXTERNALSYM RPC_C_PARM_MAX_PACKET_LENGTH}
  RPC_C_PARM_BUFFER_LENGTH     = 2;
  {$EXTERNALSYM RPC_C_PARM_BUFFER_LENGTH}

  RPC_IF_AUTOLISTEN              = $0001;
  {$EXTERNALSYM RPC_IF_AUTOLISTEN}
  RPC_IF_OLE                     = $0002;
  {$EXTERNALSYM RPC_IF_OLE}
  RPC_IF_ALLOW_UNKNOWN_AUTHORITY = $0004;
  {$EXTERNALSYM RPC_IF_ALLOW_UNKNOWN_AUTHORITY}
  RPC_IF_ALLOW_SECURE_ONLY       = $0008;
  {$EXTERNALSYM RPC_IF_ALLOW_SECURE_ONLY}
  RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH = $0010;
  {$EXTERNALSYM RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH}

implementation

const
  rpclib = 'rpcrt4.dll';


{$IFDEF DYNAMIC_LINK}
var
  _RpcBindingCopy: Pointer;

function RpcBindingCopy;
begin
  GetProcedureAddress(_RpcBindingCopy, rpclib, 'RpcBindingCopy');
  asm
    mov esp, ebp
    pop ebp
    jmp [_RpcBindingCopy]
  end;
end;
{$ELSE}
function RpcBindingCopy; external rpclib name 'RpcBindingCopy';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _RpcBindingFree: Pointer;

function RpcBindingFree;
begin
  GetProcedureAddress(_RpcBindingFree, rpclib, 'RpcBindingFree');
  asm
    mov esp, ebp
    pop ebp
    jmp [_RpcBindingFree]
  end;
end;
{$ELSE}
function RpcBindingFree; external rpclib name 'RpcBindingFree';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _RpcBindingSetOption: Pointer;

function RpcBindingSetOption;
begin
  GetProcedureAddress(_RpcBindingSetOption, rpclib, 'RpcBindingSetOption');
  asm
    mov esp, ebp
    pop ebp
    jmp [_RpcBindingSetOption]
  end;
end;
{$ELSE}
function RpcBindingSetOption; external rpclib name 'RpcBindingSetOption';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _RpcBindingInqOption: Pointer;

function RpcBindingInqOption;
begin
  GetProcedureAddress(_RpcBindingInqOption, rpclib, 'RpcBindingInqOption');
  asm
    mov esp, ebp
    pop ebp
    jmp [_RpcBindingInqOption]
  end;
end;
{$ELSE}
function RpcBindingInqOption; external rpclib name 'RpcBindingInqOption';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _RpcBindingFromStringBindingA: Pointer;

function RpcBindingFromStringBindingA;
begin
  GetProcedureAddress(_RpcBindingFromStringBindingA, rpclib, 'RpcBindingFromStringBindingA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_RpcBindingFromStringBindingA]
  end;
end;
{$ELSE}
function RpcBindingFromStringBindingA; external rpclib name 'RpcBindingFromStringBindingA';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _RpcBindingFromStringBindingW: Pointer;

function RpcBindingFromStringBindingW;
begin
  GetProcedureAddress(_RpcBindingFromStringBindingW, rpclib, 'RpcBindingFromStringBindingW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_RpcBindingFromStringBindingW]
  end;
end;
{$ELSE}
function RpcBindingFromStringBindingW; external rpclib name 'RpcBindingFromStringBindingW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}

{$IFDEF DYNAMIC_LINK}
var
  _RpcBindingFromStringBinding: Pointer;

function RpcBindingFromStringBinding;
begin
  GetProcedureAddress(_RpcBindingFromStringBinding, rpclib, 'RpcBindingFromStringBindingW');
  asm
    mov esp, ebp
    pop ebp
    jmp [_RpcBindingFromStringBinding]
  end;
end;
{$ELSE}
function RpcBindingFromStringBinding; external rpclib name 'RpcBindingFromStringBindingW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}

{$IFDEF DYNAMIC_LINK}
var
  _RpcBindingFromStringBinding: Pointer;

function RpcBindingFromStringBinding;
begin
  GetProcedureAddress(_RpcBindingFromStringBinding, rpclib, 'RpcBindingFromStringBindingA');
  asm
    mov esp, ebp
    pop ebp
    jmp [_RpcBindingFromStringBinding]
  end;
end;
{$ELSE}
function RpcBindingFromStringBinding; external rpclib name 'RpcBindingFromStringBindingA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}

{$IFDEF DYNAMIC_LINK}
var
  _RpcSsGetContextBinding: Pointer;

function RpcSsGetContextBinding;
begin
  GetProcedureAddress(_RpcSsGetContextBinding, rpclib, 'RpcSsGetContextBinding');
  asm
    mov esp, ebp
    pop ebp
    jmp [_RpcSsGetContextBinding]
  end;
end;
{$ELSE}
function RpcSsGetContextBinding; external rpclib name 'RpcSsGetContextBinding';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _RpcBindingInqObject: Pointer;

function RpcBindingInqObject;
begin
  GetProcedureAddress(_RpcBindingInqObject, rpclib, 'RpcBindingInqObject');
  asm
    mov esp, ebp
    pop ebp
    jmp [_RpcBindingInqObject]
  end;
end;
{$ELSE}
function RpcBindingInqObject; external rpclib name 'RpcBindingInqObject';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _RpcBindingReset: Pointer;

function RpcBindingReset;
begin
  GetProcedureAddress(_RpcBindingReset, rpclib, 'RpcBindingReset');
  asm
    mov esp, ebp
    pop ebp
    jmp [_RpcBindingReset]
  end;
end;
{$ELSE}
function RpcBindingReset; external rpclib name 'RpcBindingReset';
{$ENDIF DYNAMIC_LINK}

{$IFDEF DYNAMIC_LINK}
var
  _RpcBindingSetObject: Pointer;

function RpcBindingSetObject;
begin
  GetProcedureAddress(_RpcBindingSetObject, rpclib, 'RpcBindingSetObject');
  asm
    mov esp, ebp
    pop ebp
    jmp [_RpcBindingSetObject]
  end;
end;
{$ELSE}
function RpcBindingSetObject;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -