📄 directplay8.pas
字号:
{$EXTERNALSYM DPNA_VALUE_SERIALPROVIDER_A}
type
(****************************************************************************
*
* DirectPlay8Address Forward Declarations For External Types
*
****************************************************************************)
SOCKADDR = TSockAddr;
{$EXTERNALSYM SOCKADDR}
(****************************************************************************
*
* DirectPlay8Address Functions
*
****************************************************************************)
(*
*
* This function is no longer supported. It is recommended that CoCreateInstance be used to create
* DirectPlay8 address objects.
*
* HRESULT WINAPI DirectPlay8AddressCreate( const GUID * pcIID, void **ppvInterface, IUnknown *pUnknown);
*
*)
(****************************************************************************
*
* DirectPlay8Address Application Interfaces
*
****************************************************************************)
//
// COM definition for IDirectPlay8Address Generic Interface
//
{$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectPlay8Address);'}
{$EXTERNALSYM IDirectPlay8Address}
IDirectPlay8Address = interface(IUnknown)
['{83783300-4063-4c8a-9db3-82830a7feb31}']
(*** IDirectPlay8Address methods ***)
function BuildFromURLW(pwszSourceURL: PWideChar): HResult; stdcall;
function BuildFromURLA(pszSourceURL: PAnsiChar): HResult; stdcall;
function Duplicate(out ppdpaNewAddress: IDirectPlay8Address): HResult; stdcall;
function SetEqual(pdpaAddress: IDirectPlay8Address): HResult; stdcall;
function IsEqual(pdpaAddress: IDirectPlay8Address): HResult; stdcall;
function Clear: HResult; stdcall;
function GetURLW(pwszURL: PWideChar; var pdwNumChars: DWORD): HResult; stdcall;
function GetURLA(pszURL: PAnsiChar; var pdwNumChars: DWORD): HResult; stdcall;
function GetSP(out pguidSP: TGUID): HResult; stdcall;
function GetUserData(pvUserData: Pointer; var pdwBufferSize: DWORD): HResult; stdcall;
function SetSP(const pguidSP: TGUID): HResult; stdcall;
function SetUserData(pvUserData: Pointer; dwDataSize: DWORD): HResult; stdcall;
function GetNumComponents(out pdwNumComponents: DWORD): HResult; stdcall;
function GetComponentByName(pwszName: PWideChar; pvBuffer: Pointer; var pdwBufferSize: DWORD; out pdwDataType: DWORD): HResult; stdcall;
function GetComponentByIndex(dwComponentID: DWORD; pwszName: PWideChar; var pdwNameLen: DWORD; pvBuffer: Pointer; var pdwBufferSize: DWORD; out pdwDataType: DWORD): HResult; stdcall;
function AddComponent(pwszName: PWideChar; lpvData: Pointer; dwDataSize, dwDataType: DWORD): HResult; stdcall;
function GetDevice(out pguidDevice: TGUID): HResult; stdcall;
function SetDevice(const pguidDevice: TGUID): HResult; stdcall;
function BuildFromDPADDRESS(pvAddress: Pointer; dwDataSize: DWORD): HResult; stdcall;
end;
{$NODEFINE PIDirectPlay8Address}
{$HPPEMIT 'typedef _di_IDirectPlay8Address *PIDirectPlay8Address;'}
PIDirectPlay8Address = ^IDirectPlay8Address;
//
// COM definition for IDirectPlay8AddressIP Generic Interface
//
{$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectPlay8AddressIP);'}
{$EXTERNALSYM IDirectPlay8AddressIP}
IDirectPlay8AddressIP = interface(IUnknown)
['{e5a0e990-2bad-430b-87da-a142cf75de58}']
(*** IDirectPlay8AddressIP methods ***)
// Constructs a IDirectPlay8 TCP Address from a SOCKADDR structure
function BuildFromSockAddr(const pSockAddr: TSockAddr): HResult; stdcall;
// Constructs a TCP Address from a string (hostname) and port
function BuildAddress(wszAddress: PWideChar; usPort: Word): HResult; stdcall;
// Builds a local TCP Address
function BuildLocalAddress(const pguidAdapter: TGUID; usPort: Word): HResult; stdcall;
// Gets the address from the structure in SOCKADR format
function GetSockAddress(psockAddress: PSockAddr; var pdwAddressBufferSize: DWORD): HResult; stdcall;
// Gets the local afddress
function GetLocalAddress(out pguidAdapter: TGUID; out pusPort: Word): HResult; stdcall;
// Gets the remote address
function GetAddress(wszAddress: PWideChar; var pdwAddressLength: DWORD; out psPort: Word): HResult; stdcall;
end;
(****************************************************************************
*
* DirectPlay8Address Interface IIDs
*
****************************************************************************)
type
// {83783300-4063-4c8a-9DB3-82830A7FEB31}
IID_IDirectPlay8Address = IDirectPlay8Address;
{$EXTERNALSYM IID_IDirectPlay8Address}
// {E5A0E990-2BAD-430b-87DA-A142CF75DE58}
IID_IDirectPlay8AddressIP = IDirectPlay8AddressIP;
{$EXTERNALSYM IID_IDirectPlay8AddressIP}
(*==========================================================================;
*
* Copyright (C) 1998-2002 Microsoft Corporation. All Rights Reserved.
*
* File: DPlay8.h
* Content: DirectPlay8 include file
*
***************************************************************************)
const
(****************************************************************************
*
* DirectPlay8 CLSIDs
*
****************************************************************************)
// {743F1DC6-5ABA-429f-8BDF-C54D03253DC2}
CLSID_DirectPlay8Client: TGUID = '{743f1dc6-5aba-429f-8bdf-c54d03253dc2}';
{$EXTERNALSYM CLSID_DirectPlay8Client}
// {DA825E1B-6830-43d7-835D-0B5AD82956A2}
CLSID_DirectPlay8Server: TGUID = '{da825e1b-6830-43d7-835d-0b5ad82956a2}';
{$EXTERNALSYM CLSID_DirectPlay8Server}
// {286F484D-375E-4458-A272-B138E2F80A6A}
CLSID_DirectPlay8Peer: TGUID = '{286f484d-375e-4458-a272-b138e2f80a6a}';
{$EXTERNALSYM CLSID_DirectPlay8Peer}
// CLSIDs added for DirectX 9
// {FC47060E-6153-4b34-B975-8E4121EB7F3C}
CLSID_DirectPlay8ThreadPool: TGUID = '{fc47060e-6153-4b34-b975-8e4121eb7f3c}';
{$EXTERNALSYM CLSID_DirectPlay8ThreadPool}
// {E4C1D9A2-CBF7-48bd-9A69-34A55E0D8941}
CLSID_DirectPlay8NATResolver: TGUID = '{e4c1d9a2-cbf7-48bd-9a69-34a55e0d8941}';
{$EXTERNALSYM CLSID_DirectPlay8NATResolver}
(****************************************************************************
*
* DirectPlay8 Service Provider GUIDs
*
****************************************************************************)
// {53934290-628D-11D2-AE0F-006097B01411}
CLSID_DP8SP_IPX: TGUID = '{53934290-628d-11d2-ae0f-006097b01411}';
{$EXTERNALSYM CLSID_DP8SP_IPX}
// {6D4A3650-628D-11D2-AE0F-006097B01411}
CLSID_DP8SP_MODEM: TGUID = '{6d4a3650-628d-11d2-ae0f-006097b01411}';
{$EXTERNALSYM CLSID_DP8SP_MODEM}
// {743B5D60-628D-11D2-AE0F-006097B01411}
CLSID_DP8SP_SERIAL: TGUID = '{743b5d60-628d-11d2-ae0f-006097b01411}';
{$EXTERNALSYM CLSID_DP8SP_SERIAL}
// {EBFE7BA0-628D-11D2-AE0F-006097B01411}
CLSID_DP8SP_TCPIP: TGUID = '{ebfe7ba0-628d-11d2-ae0f-006097b01411}';
{$EXTERNALSYM CLSID_DP8SP_TCPIP}
// Service providers added for DirectX 9
// {995513AF-3027-4b9a-956E-C772B3F78006}
CLSID_DP8SP_BLUETOOTH: TGUID = '{995513af-3027-4b9a-956e-c772b3f78006}';
{$EXTERNALSYM CLSID_DP8SP_BLUETOOTH}
type
(****************************************************************************
*
* DirectPlay8 Callback Functions
*
****************************************************************************)
//
// Callback Function Type Definition
//
TFNDPNMessageHandler = function (pvUserContext: Pointer; dwMessageType: DWORD; pMessage: Pointer): HRESULT; stdcall;
{$NODEFINE TFNDPNMessageHandler}
{$HPPEMIT 'typedef PFNDPNMESSAGEHANDLER TFNDPNMessageHandler;'}
(****************************************************************************
*
* DirectPlay8 Datatypes (Non-Structure / Non-Message)
*
****************************************************************************)
//
// Player IDs. Used to uniquely identify a player in a session
//
PDPNID = ^DPNID;
{$EXTERNALSYM PDPNID}
DPNID = {$IFDEF TYPE_IDENTITY}type {$ENDIF}DWORD;
{$EXTERNALSYM DPNID}
TDPNID = DPNID;
//
// Used as identifiers for operations
//
PDPNHandle = ^TDPNHandle;
DPNHANDLE = {$IFDEF TYPE_IDENTITY}type {$ENDIF}DWORD;
{$EXTERNALSYM DPNHANDLE}
TDPNHandle = DPNHANDLE;
(****************************************************************************
*
* DirectPlay8 Message Identifiers
*
****************************************************************************)
const
DPN_MSGID_OFFSET = $FFFF0000;
{$EXTERNALSYM DPN_MSGID_OFFSET}
DPN_MSGID_ADD_PLAYER_TO_GROUP = (DPN_MSGID_OFFSET or $0001);
{$EXTERNALSYM DPN_MSGID_ADD_PLAYER_TO_GROUP}
DPN_MSGID_APPLICATION_DESC = (DPN_MSGID_OFFSET or $0002);
{$EXTERNALSYM DPN_MSGID_APPLICATION_DESC}
DPN_MSGID_ASYNC_OP_COMPLETE = (DPN_MSGID_OFFSET or $0003);
{$EXTERNALSYM DPN_MSGID_ASYNC_OP_COMPLETE}
DPN_MSGID_CLIENT_INFO = (DPN_MSGID_OFFSET or $0004);
{$EXTERNALSYM DPN_MSGID_CLIENT_INFO}
DPN_MSGID_CONNECT_COMPLETE = (DPN_MSGID_OFFSET or $0005);
{$EXTERNALSYM DPN_MSGID_CONNECT_COMPLETE}
DPN_MSGID_CREATE_GROUP = (DPN_MSGID_OFFSET or $0006);
{$EXTERNALSYM DPN_MSGID_CREATE_GROUP}
DPN_MSGID_CREATE_PLAYER = (DPN_MSGID_OFFSET or $0007);
{$EXTERNALSYM DPN_MSGID_CREATE_PLAYER}
DPN_MSGID_DESTROY_GROUP = (DPN_MSGID_OFFSET or $0008);
{$EXTERNALSYM DPN_MSGID_DESTROY_GROUP}
DPN_MSGID_DESTROY_PLAYER = (DPN_MSGID_OFFSET or $0009);
{$EXTERNALSYM DPN_MSGID_DESTROY_PLAYER}
DPN_MSGID_ENUM_HOSTS_QUERY = (DPN_MSGID_OFFSET or $000a);
{$EXTERNALSYM DPN_MSGID_ENUM_HOSTS_QUERY}
DPN_MSGID_ENUM_HOSTS_RESPONSE = (DPN_MSGID_OFFSET or $000b);
{$EXTERNALSYM DPN_MSGID_ENUM_HOSTS_RESPONSE}
DPN_MSGID_GROUP_INFO = (DPN_MSGID_OFFSET or $000c);
{$EXTERNALSYM DPN_MSGID_GROUP_INFO}
DPN_MSGID_HOST_MIGRATE = (DPN_MSGID_OFFSET or $000d);
{$EXTERNALSYM DPN_MSGID_HOST_MIGRATE}
DPN_MSGID_INDICATE_CONNECT = (DPN_MSGID_OFFSET or $000e);
{$EXTERNALSYM DPN_MSGID_INDICATE_CONNECT}
DPN_MSGID_INDICATED_CONNECT_ABORTED = (DPN_MSGID_OFFSET or $000f);
{$EXTERNALSYM DPN_MSGID_INDICATED_CONNECT_ABORTED}
DPN_MSGID_PEER_INFO = (DPN_MSGID_OFFSET or $0010);
{$EXTERNALSYM DPN_MSGID_PEER_INFO}
DPN_MSGID_RECEIVE = (DPN_MSGID_OFFSET or $0011);
{$EXTERNALSYM DPN_MSGID_RECEIVE}
DPN_MSGID_REMOVE_PLAYER_FROM_GROUP = (DPN_MSGID_OFFSET or $0012);
{$EXTERNALSYM DPN_MSGID_REMOVE_PLAYER_FROM_GROUP}
DPN_MSGID_RETURN_BUFFER = (DPN_MSGID_OFFSET or $0013);
{$EXTERNALSYM DPN_MSGID_RETURN_BUFFER}
DPN_MSGID_SEND_COMPLETE = (DPN_MSGID_OFFSET or $0014);
{$EXTERNALSYM DPN_MSGID_SEND_COMPLETE}
DPN_MSGID_SERVER_INFO = (DPN_MSGID_OFFSET or $0015);
{$EXTERNALSYM DPN_MSGID_SERVER_INFO}
DPN_MSGID_TERMINATE_SESSION = (DPN_MSGID_OFFSET or $0016);
{$EXTERNALSYM DPN_MSGID_TERMINATE_SESSION}
// Messages added for DirectX 9
DPN_MSGID_CREATE_THREAD = (DPN_MSGID_OFFSET or $0017);
{$EXTERNALSYM DPN_MSGID_CREATE_THREAD}
DPN_MSGID_DESTROY_THREAD = (DPN_MSGID_OFFSET or $0018);
{$EXTERNALSYM DPN_MSGID_DESTROY_THREAD}
DPN_MSGID_NAT_RESOLVER_QUERY = (DPN_MSGID_OFFSET or $0101);
{$EXTERNALSYM DPN_MSGID_NAT_RESOLVER_QUERY}
(****************************************************************************
*
* DirectPlay8 Constants
*
****************************************************************************)
DPNID_ALL_PLAYERS_GROUP = 0;
{$EXTERNALSYM DPNID_ALL_PLAYERS_GROUP}
//
// DESTROY_GROUP reasons
//
DPNDESTROYGROUPREASON_NORMAL = $0001;
{$EXTERNALSYM DPNDESTROYGROUPREASON_NORMAL}
DPNDESTROYGROUPREASON_AUTODESTRUCTED = $0002;
{$EXTERNALSYM DPNDESTROYGROUPREASON_AUTODESTRUCTED}
DPNDESTROYGROUPREASON_SESSIONTERMINATED = $0003;
{$EXTERNALSYM DPNDESTROYGROUPREASON_SESSIONTERMINATED}
//
// DESTROY_PLAYER reasons
//
DPNDESTROYPLAYERREASON_NORMAL = $0001;
{$EXTERNALSYM DPNDESTROYPLAYERREASON_NORMAL}
DPNDESTROYPLAYERREASON_CONNECTIONLOST = $0002;
{$EXTERNALSYM DPNDESTROYPLAYERREASON_CONNECTIONLOST}
DPNDESTROYPLAYERREASON_SESSIONTERMINATED = $0003;
{$EXTERNALSYM DPNDESTROYPLAYERREASON_SESSIONTERMINATED}
DPNDESTROYPLAYERREASON_HOSTDESTROYEDPLAYER = $0004;
{$EXTERNALSYM DPNDESTROYPLAYERREASON_HOSTDESTROYEDPLAYER}
DPN_MAX_APPDESC_RESERVEDDATA_SIZE = 64;
{$EXTERNALSYM DPN_MAX_APPDESC_RESERVEDDATA_SIZE}
(****************************************************************************
*
* DirectPlay8 Flags
*
****************************************************************************)
//
// Asynchronous operation flags (For Async Ops)
//
DPNOP_SYNC = $80000000;
{$EXTERNALSYM DPNOP_SYNC}
//
// Add player to group flags (For AddPlayerToGroup)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -