📄 dplay8.h
字号:
/*==========================================================================;
*
* Copyright (C) 1998-2000 Microsoft Corporation. All Rights Reserved.
*
* File: DPlay8.h
* Content: DirectPlay8 include file
*
***************************************************************************/
#ifndef __DIRECTPLAY8_H__
#define __DIRECTPLAY8_H__
#include <ole2.h> // for DECLARE_INTERFACE and HRESULT
#include "dpaddr.h"
#ifdef __cplusplus
extern "C" {
#endif
/****************************************************************************
*
* DirectPlay8 CLSIDs
*
****************************************************************************/
// {743F1DC6-5ABA-429f-8BDF-C54D03253DC2}
DEFINE_GUID(CLSID_DirectPlay8Client,
0x743f1dc6, 0x5aba, 0x429f, 0x8b, 0xdf, 0xc5, 0x4d, 0x3, 0x25, 0x3d, 0xc2);
// {286F484D-375E-4458-A272-B138E2F80A6A}
DEFINE_GUID(CLSID_DirectPlay8Peer,
0x286f484d, 0x375e, 0x4458, 0xa2, 0x72, 0xb1, 0x38, 0xe2, 0xf8, 0xa, 0x6a);
// {DA825E1B-6830-43d7-835D-0B5AD82956A2}
DEFINE_GUID(CLSID_DirectPlay8Server,
0xda825e1b, 0x6830, 0x43d7, 0x83, 0x5d, 0xb, 0x5a, 0xd8, 0x29, 0x56, 0xa2);
/****************************************************************************
*
* DirectPlay8 Interface IIDs
*
****************************************************************************/
// {5102DACD-241B-11d3-AEA7-006097B01411}
DEFINE_GUID(IID_IDirectPlay8Client,
0x5102dacd, 0x241b, 0x11d3, 0xae, 0xa7, 0x0, 0x60, 0x97, 0xb0, 0x14, 0x11);
// {5102DACF-241B-11d3-AEA7-006097B01411}
DEFINE_GUID(IID_IDirectPlay8Peer,
0x5102dacf, 0x241b, 0x11d3, 0xae, 0xa7, 0x0, 0x60, 0x97, 0xb0, 0x14, 0x11);
// {5102DACE-241B-11d3-AEA7-006097B01411}
DEFINE_GUID(IID_IDirectPlay8Server,
0x5102dace, 0x241b, 0x11d3, 0xae, 0xa7, 0x0, 0x60, 0x97, 0xb0, 0x14, 0x11);
/****************************************************************************
*
* DirectPlay8 Service Provider GUIDs
*
****************************************************************************/
// {53934290-628D-11D2-AE0F-006097B01411}
DEFINE_GUID(CLSID_DP8SP_IPX, 0x53934290, 0x628d, 0x11d2, 0xae, 0xf, 0x0, 0x60, 0x97, 0xb0, 0x14, 0x11);
// {6D4A3650-628D-11D2-AE0F-006097B01411}
DEFINE_GUID(CLSID_DP8SP_MODEM, 0x6d4a3650, 0x628d, 0x11d2, 0xae, 0xf, 0x0, 0x60, 0x97, 0xb0, 0x14, 0x11);
// {743B5D60-628D-11D2-AE0F-006097B01411}
DEFINE_GUID(CLSID_DP8SP_SERIAL, 0x743b5d60, 0x628d, 0x11d2, 0xae, 0xf, 0x0, 0x60, 0x97, 0xb0, 0x14, 0x11);
// {EBFE7BA0-628D-11D2-AE0F-006097B01411}
DEFINE_GUID(CLSID_DP8SP_TCPIP, 0xebfe7ba0, 0x628d, 0x11d2, 0xae, 0xf, 0x0, 0x60, 0x97, 0xb0, 0x14, 0x11);
/****************************************************************************
*
* DirectPlay8 Interface Pointer definitions
*
****************************************************************************/
typedef struct IDirectPlay8Peer *PDIRECTPLAY8PEER;
typedef struct IDirectPlay8Server *PDIRECTPLAY8SERVER;
typedef struct IDirectPlay8Client *PDIRECTPLAY8CLIENT;
/****************************************************************************
*
* DirectPlay8 Forward Declarations For External Types
*
****************************************************************************/
typedef struct IDirectPlay8LobbiedApplication *PDNLOBBIEDAPPLICATION;
typedef struct IDirectPlay8Address IDirectPlay8Address;
/****************************************************************************
*
* DirectPlay8 Callback Functions
*
****************************************************************************/
//
// Callback Function Type Definition
//
typedef HRESULT (WINAPI *PFNDPNMESSAGEHANDLER)(PVOID,DWORD,PVOID);
/****************************************************************************
*
* DirectPlay8 Datatypes (Non-Structure / Non-Message)
*
****************************************************************************/
//
// Player IDs. Used to uniquely identify a player in a session
//
typedef DWORD DPNID, *PDPNID;
//
// Used as identifiers for operations
//
typedef DWORD DPNHANDLE, *PDPNHANDLE;
/****************************************************************************
*
* DirectPlay8 Message Identifiers
*
****************************************************************************/
#define DPN_MSGID_OFFSET 0xFFFF0000
#define DPN_MSGID_ADD_PLAYER_TO_GROUP ( DPN_MSGID_OFFSET | 0x0001 )
#define DPN_MSGID_APPLICATION_DESC ( DPN_MSGID_OFFSET | 0x0002 )
#define DPN_MSGID_ASYNC_OP_COMPLETE ( DPN_MSGID_OFFSET | 0x0003 )
#define DPN_MSGID_CLIENT_INFO ( DPN_MSGID_OFFSET | 0x0004 )
#define DPN_MSGID_CONNECT_COMPLETE ( DPN_MSGID_OFFSET | 0x0005 )
#define DPN_MSGID_CREATE_GROUP ( DPN_MSGID_OFFSET | 0x0006 )
#define DPN_MSGID_CREATE_PLAYER ( DPN_MSGID_OFFSET | 0x0007 )
#define DPN_MSGID_DESTROY_GROUP ( DPN_MSGID_OFFSET | 0x0008 )
#define DPN_MSGID_DESTROY_PLAYER ( DPN_MSGID_OFFSET | 0x0009 )
#define DPN_MSGID_ENUM_HOSTS_QUERY ( DPN_MSGID_OFFSET | 0x000a )
#define DPN_MSGID_ENUM_HOSTS_RESPONSE ( DPN_MSGID_OFFSET | 0x000b )
#define DPN_MSGID_GROUP_INFO ( DPN_MSGID_OFFSET | 0x000c )
#define DPN_MSGID_HOST_MIGRATE ( DPN_MSGID_OFFSET | 0x000d )
#define DPN_MSGID_INDICATE_CONNECT ( DPN_MSGID_OFFSET | 0x000e )
#define DPN_MSGID_INDICATED_CONNECT_ABORTED ( DPN_MSGID_OFFSET | 0x000f )
#define DPN_MSGID_PEER_INFO ( DPN_MSGID_OFFSET | 0x0010 )
#define DPN_MSGID_RECEIVE ( DPN_MSGID_OFFSET | 0x0011 )
#define DPN_MSGID_REMOVE_PLAYER_FROM_GROUP ( DPN_MSGID_OFFSET | 0x0012 )
#define DPN_MSGID_RETURN_BUFFER ( DPN_MSGID_OFFSET | 0x0013 )
#define DPN_MSGID_SEND_COMPLETE ( DPN_MSGID_OFFSET | 0x0014 )
#define DPN_MSGID_SERVER_INFO ( DPN_MSGID_OFFSET | 0x0015 )
#define DPN_MSGID_TERMINATE_SESSION ( DPN_MSGID_OFFSET | 0x0016 )
/****************************************************************************
*
* DirectPlay8 Constants
*
****************************************************************************/
#define DPNID_ALL_PLAYERS_GROUP 0
//
// DESTROY_GROUP reasons
//
#define DPNDESTROYGROUPREASON_NORMAL 0x0001
#define DPNDESTROYGROUPREASON_AUTODESTRUCTED 0x0002
#define DPNDESTROYGROUPREASON_SESSIONTERMINATED 0x0003
//
// DESTROY_PLAYER reasons
//
#define DPNDESTROYPLAYERREASON_NORMAL 0x0001
#define DPNDESTROYPLAYERREASON_CONNECTIONLOST 0x0002
#define DPNDESTROYPLAYERREASON_SESSIONTERMINATED 0x0003
#define DPNDESTROYPLAYERREASON_HOSTDESTROYEDPLAYER 0x0004
/****************************************************************************
*
* DirectPlay8 Flags
*
****************************************************************************/
//
// Asynchronous operation flags (For Async Ops)
//
#define DPNOP_SYNC 0x80000000
//
// Add player to group flags (For AddPlayerToGroup)
//
#define DPNADDPLAYERTOGROUP_SYNC DPNOP_SYNC
//
// Cancel flags
//
#define DPNCANCEL_CONNECT 0x0001
#define DPNCANCEL_ENUM 0x0002
#define DPNCANCEL_SEND 0x0004
#define DPNCANCEL_ALL_OPERATIONS 0x8000
//
// Connect flags (For Connect)
//
#define DPNCONNECT_SYNC DPNOP_SYNC
#define DPNCONNECT_OKTOQUERYFORADDRESSING 0x0001
//
// Create group flags (For CreateGroup)
//
#define DPNCREATEGROUP_SYNC DPNOP_SYNC
//
// Destroy group flags (For DestroyGroup)
//
#define DPNDESTROYGROUP_SYNC DPNOP_SYNC
//
// Enumerate clients and groups flags (For EnumPlayersAndGroups)
//
#define DPNENUM_PLAYERS 0x0001
#define DPNENUM_GROUPS 0x0010
//
// Enum hosts flags (For EnumHosts)
//
#define DPNENUMHOSTS_SYNC DPNOP_SYNC
#define DPNENUMHOSTS_OKTOQUERYFORADDRESSING 0x0001
#define DPNENUMHOSTS_NOBROADCASTFALLBACK 0x0002
//
// Enum service provider flags (For EnumSP)
//
#define DPNENUMSERVICEPROVIDERS_ALL 0x0001
//
// Get send queue info flags (For GetSendQueueInfo)
//
#define DPNGETSENDQUEUEINFO_PRIORITY_NORMAL 0x0001
#define DPNGETSENDQUEUEINFO_PRIORITY_HIGH 0x0002
#define DPNGETSENDQUEUEINFO_PRIORITY_LOW 0x0004
//
// Group information flags (For Group Info)
//
#define DPNGROUP_AUTODESTRUCT 0x0001
//
// Host flags (For Host)
//
#define DPNHOST_OKTOQUERYFORADDRESSING 0x0001
//
// Set info
//
#define DPNINFO_NAME 0x0001
#define DPNINFO_DATA 0x0002
//
// Initialize flags (For Initialize)
//
#define DPNINITIALIZE_DISABLEPARAMVAL 0x0001
//
// Register Lobby flags
//
#define DPNLOBBY_REGISTER 0x0001
#define DPNLOBBY_UNREGISTER 0x0002
//
// Player information flags (For Player Info / Player Messages)
//
#define DPNPLAYER_LOCAL 0x0002
#define DPNPLAYER_HOST 0x0004
//
// Remove player from group flags (For RemovePlayerFromGroup)
//
#define DPNREMOVEPLAYERFROMGROUP_SYNC DPNOP_SYNC
//
// Send flags (For Send/SendTo)
//
#define DPNSEND_SYNC DPNOP_SYNC
#define DPNSEND_NOCOPY 0x0001
#define DPNSEND_NOCOMPLETE 0x0002
#define DPNSEND_COMPLETEONPROCESS 0x0004
#define DPNSEND_GUARANTEED 0x0008
#define DPNSEND_NONSEQUENTIAL 0x0010
#define DPNSEND_NOLOOPBACK 0x0020
#define DPNSEND_PRIORITY_LOW 0x0040
#define DPNSEND_PRIORITY_HIGH 0x0080
//
// Session Flags (for DPN_APPLICATION_DESC)
//
#define DPNSESSION_CLIENT_SERVER 0x0001
#define DPNSESSION_MIGRATE_HOST 0x0004
#define DPNSESSION_NODPNSVR 0x0040
#define DPNSESSION_REQUIREPASSWORD 0x0080
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -