| 1 | #undef INTERFACE | 
 
 
 
 
 | 2 | /* | 
 
 
 
 
 | 3 | * Copyright (C) 2003-2005 Raphael Junqueira | 
 
 
 
 
 | 4 | * | 
 
 
 
 
 | 5 | * This library is free software; you can redistribute it and/or | 
 
 
 
 
 | 6 | * modify it under the terms of the GNU Lesser General Public | 
 
 
 
 
 | 7 | * License as published by the Free Software Foundation; either | 
 
 
 
 
 | 8 | * version 2.1 of the License, or (at your option) any later version. | 
 
 
 
 
 | 9 | * | 
 
 
 
 
 | 10 | * This library is distributed in the hope that it will be useful, | 
 
 
 
 
 | 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 
 
 
 
 | 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
 
 
 
 
 | 13 | * Lesser General Public License for more details. | 
 
 
 
 
 | 14 | * | 
 
 
 
 
 | 15 | * You should have received a copy of the GNU Lesser General Public | 
 
 
 
 
 | 16 | * License along with this library; if not, write to the Free Software | 
 
 
 
 
 | 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
 
 
 
 
 | 18 | */ | 
 
 
 
 
 | 19 |  | 
 
 
 
 
 | 20 | #ifndef __WINE_DPLAY8_H | 
 
 
 
 
 | 21 | #define __WINE_DPLAY8_H | 
 
 
 
 
 | 22 |  | 
 
 
 
 
 | 23 | #include <ole2.h> | 
 
 
 
 
 | 24 | #include <dpaddr.h> | 
 
 
 
 
 | 25 |  | 
 
 
 
 
 | 26 | #ifdef __cplusplus | 
 
 
 
 
 | 27 | extern "C" { | 
 
 
 
 
 | 28 | #endif /* defined(__cplusplus) */ | 
 
 
 
 
 | 29 |  | 
 
 
 
 
 | 30 |  | 
 
 
 
 
 | 31 | typedef HRESULT (WINAPI *PFNDPNMESSAGEHANDLER)(PVOID, DWORD, PVOID); | 
 
 
 
 
 | 32 | typedef DWORD   DPNID, *PDPNID; | 
 
 
 
 
 | 33 | typedef DWORD   DPNHANDLE, *PDPNHANDLE; | 
 
 
 
 
 | 34 |  | 
 
 
 
 
 | 35 | /***************************************************************************** | 
 
 
 
 
 | 36 | * DirectPlay8 Message Id | 
 
 
 
 
 | 37 | */ | 
 
 
 
 
 | 38 | #define DPN_MSGID_OFFSET                        0xFFFF0000 | 
 
 
 
 
 | 39 | #define DPN_MSGID_ADD_PLAYER_TO_GROUP           (DPN_MSGID_OFFSET | 0x0001) | 
 
 
 
 
 | 40 | #define DPN_MSGID_APPLICATION_DESC              (DPN_MSGID_OFFSET | 0x0002) | 
 
 
 
 
 | 41 | #define DPN_MSGID_ASYNC_OP_COMPLETE             (DPN_MSGID_OFFSET | 0x0003) | 
 
 
 
 
 | 42 | #define DPN_MSGID_CLIENT_INFO                   (DPN_MSGID_OFFSET | 0x0004) | 
 
 
 
 
 | 43 | #define DPN_MSGID_CONNECT_COMPLETE              (DPN_MSGID_OFFSET | 0x0005) | 
 
 
 
 
 | 44 | #define DPN_MSGID_CREATE_GROUP                  (DPN_MSGID_OFFSET | 0x0006) | 
 
 
 
 
 | 45 | #define DPN_MSGID_CREATE_PLAYER                 (DPN_MSGID_OFFSET | 0x0007) | 
 
 
 
 
 | 46 | #define DPN_MSGID_DESTROY_GROUP                 (DPN_MSGID_OFFSET | 0x0008) | 
 
 
 
 
 | 47 | #define DPN_MSGID_DESTROY_PLAYER                (DPN_MSGID_OFFSET | 0x0009) | 
 
 
 
 
 | 48 | #define DPN_MSGID_ENUM_HOSTS_QUERY              (DPN_MSGID_OFFSET | 0x000A) | 
 
 
 
 
 | 49 | #define DPN_MSGID_ENUM_HOSTS_RESPONSE           (DPN_MSGID_OFFSET | 0x000B) | 
 
 
 
 
 | 50 | #define DPN_MSGID_GROUP_INFO                    (DPN_MSGID_OFFSET | 0x000C) | 
 
 
 
 
 | 51 | #define DPN_MSGID_HOST_MIGRATE                  (DPN_MSGID_OFFSET | 0x000D) | 
 
 
 
 
 | 52 | #define DPN_MSGID_INDICATE_CONNECT              (DPN_MSGID_OFFSET | 0x000E) | 
 
 
 
 
 | 53 | #define DPN_MSGID_INDICATED_CONNECT_ABORTED     (DPN_MSGID_OFFSET | 0x000F) | 
 
 
 
 
 | 54 | #define DPN_MSGID_PEER_INFO                     (DPN_MSGID_OFFSET | 0x0010) | 
 
 
 
 
 | 55 | #define DPN_MSGID_RECEIVE                       (DPN_MSGID_OFFSET | 0x0011) | 
 
 
 
 
 | 56 | #define DPN_MSGID_REMOVE_PLAYER_FROM_GROUP      (DPN_MSGID_OFFSET | 0x0012) | 
 
 
 
 
 | 57 | #define DPN_MSGID_RETURN_BUFFER                 (DPN_MSGID_OFFSET | 0x0013) | 
 
 
 
 
 | 58 | #define DPN_MSGID_SEND_COMPLETE                 (DPN_MSGID_OFFSET | 0x0014) | 
 
 
 
 
 | 59 | #define DPN_MSGID_SERVER_INFO                   (DPN_MSGID_OFFSET | 0x0015) | 
 
 
 
 
 | 60 | #define DPN_MSGID_TERMINATE_SESSION             (DPN_MSGID_OFFSET | 0x0016) | 
 
 
 
 
 | 61 | #define DPN_MSGID_CREATE_THREAD                 (DPN_MSGID_OFFSET | 0x0017) | 
 
 
 
 
 | 62 | #define DPN_MSGID_DESTROY_THREAD                (DPN_MSGID_OFFSET | 0x0018) | 
 
 
 
 
 | 63 | #define DPN_MSGID_NAT_RESOLVER_QUERY            (DPN_MSGID_OFFSET | 0x0101) | 
 
 
 
 
 | 64 |  | 
 
 
 
 
 | 65 | /***************************************************************************** | 
 
 
 
 
 | 66 | * DirectPlay8 Errors | 
 
 
 
 
 | 67 | */ | 
 
 
 
 
 | 68 | #define _DPN_FACILITY_CODE              0x015 | 
 
 
 
 
 | 69 | #define _DPNHRESULT_BASE                0x8000 | 
 
 
 
 
 | 70 | #define MAKE_DPNHRESULT(code)           MAKE_HRESULT(1, _DPN_FACILITY_CODE, (code + _DPNHRESULT_BASE)) | 
 
 
 
 
 | 71 |  | 
 
 
 
 
 | 72 | #define DPNSUCCESS_EQUAL                MAKE_HRESULT(0, _DPN_FACILITY_CODE, (0x05 + _DPNHRESULT_BASE)) | 
 
 
 
 
 | 73 | #define DPNSUCCESS_NOTEQUAL             MAKE_HRESULT(0, _DPN_FACILITY_CODE, (0x0A + _DPNHRESULT_BASE)) | 
 
 
 
 
 | 74 | #define DPNSUCCESS_PENDING              MAKE_HRESULT(0, _DPN_FACILITY_CODE, (0x0E + _DPNHRESULT_BASE)) | 
 
 
 
 
 | 75 |  | 
 
 
 
 
 | 76 | #define DPN_OK                          S_OK | 
 
 
 
 
 | 77 | #define DPNERR_GENERIC                  E_FAIL | 
 
 
 
 
 | 78 | #define DPNERR_INVALIDPARAM             E_INVALIDARG | 
 
 
 
 
 | 79 | #define DPNERR_UNSUPPORTED              E_NOTIMPL | 
 
 
 
 
 | 80 | #define DPNERR_NOINTERFACE              E_NOINTERFACE | 
 
 
 
 
 | 81 | #define DPNERR_OUTOFMEMORY              E_OUTOFMEMORY | 
 
 
 
 
 | 82 | #define DPNERR_INVALIDPOINTER           E_POINTER | 
 
 
 
 
 | 83 | #define DPNERR_PENDING                  DPNSUCCESS_PENDING | 
 
 
 
 
 | 84 | #define DPNERR_ABORTED                  MAKE_DPNHRESULT(0x030) | 
 
 
 
 
 | 85 | #define DPNERR_ADDRESSING               MAKE_DPNHRESULT(0x040) | 
 
 
 
 
 | 86 | #define DPNERR_ALREADYCLOSING           MAKE_DPNHRESULT(0x050) | 
 
 
 
 
 | 87 | #define DPNERR_ALREADYCONNECTED         MAKE_DPNHRESULT(0x060) | 
 
 
 
 
 | 88 | #define DPNERR_ALREADYDISCONNECTING     MAKE_DPNHRESULT(0x070) | 
 
 
 
 
 | 89 | #define DPNERR_ALREADYINITIALIZED       MAKE_DPNHRESULT(0x080) | 
 
 
 
 
 | 90 | #define DPNERR_ALREADYREGISTERED        MAKE_DPNHRESULT(0x090) | 
 
 
 
 
 | 91 | #define DPNERR_BUFFERTOOSMALL           MAKE_DPNHRESULT(0x100) | 
 
 
 
 
 | 92 | #define DPNERR_CANNOTCANCEL             MAKE_DPNHRESULT(0x110) | 
 
 
 
 
 | 93 | #define DPNERR_CANTCREATEGROUP          MAKE_DPNHRESULT(0x120) | 
 
 
 
 
 | 94 | #define DPNERR_CANTCREATEPLAYER         MAKE_DPNHRESULT(0x130) | 
 
 
 
 
 | 95 | #define DPNERR_CANTLAUNCHAPPLICATION    MAKE_DPNHRESULT(0x140) | 
 
 
 
 
 | 96 | #define DPNERR_CONNECTING               MAKE_DPNHRESULT(0x150) | 
 
 
 
 
 | 97 | #define DPNERR_CONNECTIONLOST           MAKE_DPNHRESULT(0x160) | 
 
 
 
 
 | 98 | #define DPNERR_CONVERSION               MAKE_DPNHRESULT(0x170) | 
 
 
 
 
 | 99 | #define DPNERR_DATATOOLARGE             MAKE_DPNHRESULT(0x175) | 
 
 
 
 
 | 100 | #define DPNERR_DOESNOTEXIST             MAKE_DPNHRESULT(0x180) | 
 
 
 
 
 | 101 | #define DPNERR_DPNSVRNOTAVAILABLE       MAKE_DPNHRESULT(0x185) | 
 
 
 
 
 | 102 | #define DPNERR_DUPLICATECOMMAND         MAKE_DPNHRESULT(0x190) | 
 
 
 
 
 | 103 | #define DPNERR_ENDPOINTNOTRECEIVING     MAKE_DPNHRESULT(0x200) | 
 
 
 
 
 | 104 | #define DPNERR_ENUMQUERYTOOLARGE        MAKE_DPNHRESULT(0x210) | 
 
 
 
 
 | 105 | #define DPNERR_ENUMRESPONSETOOLARGE     MAKE_DPNHRESULT(0x220) | 
 
 
 
 
 | 106 | #define DPNERR_EXCEPTION                MAKE_DPNHRESULT(0x230) | 
 
 
 
 
 | 107 | #define DPNERR_GROUPNOTEMPTY            MAKE_DPNHRESULT(0x240) | 
 
 
 
 
 | 108 | #define DPNERR_HOSTING                  MAKE_DPNHRESULT(0x250) | 
 
 
 
 
 | 109 | #define DPNERR_HOSTREJECTEDCONNECTION   MAKE_DPNHRESULT(0x260) | 
 
 
 
 
 | 110 | #define DPNERR_HOSTTERMINATEDSESSION    MAKE_DPNHRESULT(0x270) | 
 
 
 
 
 | 111 | #define DPNERR_INCOMPLETEADDRESS        MAKE_DPNHRESULT(0x280) | 
 
 
 
 
 | 112 | #define DPNERR_INVALIDADDRESSFORMAT     MAKE_DPNHRESULT(0x290) | 
 
 
 
 
 | 113 | #define DPNERR_INVALIDAPPLICATION       MAKE_DPNHRESULT(0x300) | 
 
 
 
 
 | 114 | #define DPNERR_INVALIDCOMMAND           MAKE_DPNHRESULT(0x310) | 
 
 
 
 
 | 115 | #define DPNERR_INVALIDDEVICEADDRESS     MAKE_DPNHRESULT(0x320) | 
 
 
 
 
 | 116 | #define DPNERR_INVALIDENDPOINT          MAKE_DPNHRESULT(0x330) | 
 
 
 
 
 | 117 | #define DPNERR_INVALIDFLAGS             MAKE_DPNHRESULT(0x340) | 
 
 
 
 
 | 118 | #define DPNERR_INVALIDGROUP             MAKE_DPNHRESULT(0x350) | 
 
 
 
 
 | 119 | #define DPNERR_INVALIDHANDLE            MAKE_DPNHRESULT(0x360) | 
 
 
 
 
 | 120 | #define DPNERR_INVALIDHOSTADDRESS       MAKE_DPNHRESULT(0x370) | 
 
 
 
 
 | 121 | #define DPNERR_INVALIDINSTANCE          MAKE_DPNHRESULT(0x380) | 
 
 
 
 
 | 122 | #define DPNERR_INVALIDINTERFACE         MAKE_DPNHRESULT(0x390) | 
 
 
 
 
 | 123 | #define DPNERR_INVALIDOBJECT            MAKE_DPNHRESULT(0x400) | 
 
 
 
 
 | 124 | #define DPNERR_INVALIDPASSWORD          MAKE_DPNHRESULT(0x410) | 
 
 
 
 
 | 125 | #define DPNERR_INVALIDPLAYER            MAKE_DPNHRESULT(0x420) | 
 
 
 
 
 | 126 | #define DPNERR_INVALIDPRIORITY          MAKE_DPNHRESULT(0x430) | 
 
 
 
 
 | 127 | #define DPNERR_INVALIDSTRING            MAKE_DPNHRESULT(0x440) | 
 
 
 
 
 | 128 | #define DPNERR_INVALIDURL               MAKE_DPNHRESULT(0x450) | 
 
 
 
 
 | 129 | #define DPNERR_INVALIDVERSION           MAKE_DPNHRESULT(0x460) | 
 
 
 
 
 | 130 | #define DPNERR_NOCAPS                   MAKE_DPNHRESULT(0x470) | 
 
 
 
 
 | 131 | #define DPNERR_NOCONNECTION             MAKE_DPNHRESULT(0x480) | 
 
 
 
 
 | 132 | #define DPNERR_NOHOSTPLAYER             MAKE_DPNHRESULT(0x490) | 
 
 
 
 
 | 133 | #define DPNERR_NOMOREADDRESSCOMPONENTS  MAKE_DPNHRESULT(0x500) | 
 
 
 
 
 | 134 | #define DPNERR_NORESPONSE               MAKE_DPNHRESULT(0x510) | 
 
 
 
 
 | 135 | #define DPNERR_NOTALLOWED               MAKE_DPNHRESULT(0x520) | 
 
 
 
 
 | 136 | #define DPNERR_NOTHOST                  MAKE_DPNHRESULT(0x530) | 
 
 
 
 
 | 137 | #define DPNERR_NOTREADY                 MAKE_DPNHRESULT(0x540) | 
 
 
 
 
 | 138 | #define DPNERR_NOTREGISTERED            MAKE_DPNHRESULT(0x550) | 
 
 
 
 
 | 139 | #define DPNERR_PLAYERALREADYINGROUP     MAKE_DPNHRESULT(0x560) | 
 
 
 
 
 | 140 | #define DPNERR_PLAYERLOST               MAKE_DPNHRESULT(0x570) | 
 
 
 
 
 | 141 | #define DPNERR_PLAYERNOTINGROUP         MAKE_DPNHRESULT(0x580) | 
 
 
 
 
 | 142 | #define DPNERR_PLAYERNOTREACHABLE       MAKE_DPNHRESULT(0x590) | 
 
 
 
 
 | 143 | #define DPNERR_SENDTOOLARGE             MAKE_DPNHRESULT(0x600) | 
 
 
 
 
 | 144 | #define DPNERR_SESSIONFULL              MAKE_DPNHRESULT(0x610) | 
 
 
 
 
 | 145 | #define DPNERR_TABLEFULL                MAKE_DPNHRESULT(0x620) | 
 
 
 
 
 | 146 | #define DPNERR_TIMEDOUT                 MAKE_DPNHRESULT(0x630) | 
 
 
 
 
 | 147 | #define DPNERR_UNINITIALIZED            MAKE_DPNHRESULT(0x640) | 
 
 
 
 
 | 148 | #define DPNERR_USERCANCEL               MAKE_DPNHRESULT(0x650) | 
 
 
 
 
 | 149 |  | 
 
 
 
 
 | 150 | /***************************************************************************** | 
 
 
 
 
 | 151 | * DirectPlay8 defines | 
 
 
 
 
 | 152 | */ | 
 
 
 
 
 | 153 | #define DPNID_ALL_PLAYERS_GROUP                              0 | 
 
 
 
 
 | 154 | #define DPNDESTROYGROUPREASON_NORMAL                    0x0001 | 
 
 
 
 
 | 155 | #define DPNDESTROYGROUPREASON_AUTODESTRUCTED            0x0002 | 
 
 
 
 
 | 156 | #define DPNDESTROYGROUPREASON_SESSIONTERMINATED         0x0003 | 
 
 
 
 
 | 157 | #define DPNDESTROYPLAYERREASON_NORMAL                   0x0001 | 
 
 
 
 
 | 158 | #define DPNDESTROYPLAYERREASON_CONNECTIONLOST           0x0002 | 
 
 
 
 
 | 159 | #define DPNDESTROYPLAYERREASON_SESSIONTERMINATED        0x0003 | 
 
 
 
 
 | 160 | #define DPNDESTROYPLAYERREASON_HOSTDESTROYEDPLAYER      0x0004 | 
 
 
 
 
 | 161 | #define DPN_MAX_APPDESC_RESERVEDDATA_SIZE                   64 | 
 
 
 
 
 | 162 |  | 
 
 
 
 
 | 163 | #define DPNOP_SYNC                                  0x80000000 | 
 
 
 
 
 | 164 | #define DPNADDPLAYERTOGROUP_SYNC                    DPNOP_SYNC | 
 
 
 
 
 | 165 | #define DPNCANCEL_CONNECT                               0x0001 | 
 
 
 
 
 | 166 | #define DPNCANCEL_ENUM                                  0x0002 | 
 
 
 
 
 | 167 | #define DPNCANCEL_SEND                                  0x0004 | 
 
 
 
 
 | 168 | #define DPNCANCEL_ALL_OPERATIONS                        0x8000 | 
 
 
 
 
 | 169 | #define DPNCANCEL_PLAYER_SENDS                      0x80000000 | 
 
 
 
 
 | 170 | #define DPNCANCEL_PLAYER_SENDS_PRIORITY_HIGH        (DPNCANCEL_PLAYER_SENDS | 0x00010000) | 
 
 
 
 
 | 171 | #define DPNCANCEL_PLAYER_SENDS_PRIORITY_NORMAL      (DPNCANCEL_PLAYER_SENDS | 0x00020000) | 
 
 
 
 
 | 172 | #define DPNCANCEL_PLAYER_SENDS_PRIORITY_LOW         (DPNCANCEL_PLAYER_SENDS | 0x00040000) | 
 
 
 
 
 | 173 | #define DPNCLOSE_IMMEDIATE                          0x00000001 | 
 
 
 
 
 | 174 | #define DPNCONNECT_SYNC                             DPNOP_SYNC | 
 
 
 
 
 | 175 | #define DPNCONNECT_OKTOQUERYFORADDRESSING               0x0001 | 
 
 
 
 
 | 176 | #define DPNCREATEGROUP_SYNC                         DPNOP_SYNC | 
 
 
 
 
 | 177 | #define DPNDESTROYGROUP_SYNC                        DPNOP_SYNC | 
 
 
 
 
 | 178 | #define DPNENUM_PLAYERS                                 0x0001 | 
 
 
 
 
 | 179 | #define DPNENUM_GROUPS                                  0x0010 | 
 
 
 
 
 | 180 | #define DPNENUMHOSTS_SYNC                           DPNOP_SYNC | 
 
 
 
 
 | 181 | #define DPNENUMHOSTS_OKTOQUERYFORADDRESSING             0x0001 | 
 
 
 
 
 | 182 | #define DPNENUMHOSTS_NOBROADCASTFALLBACK                0x0002 | 
 
 
 
 
 | 183 | #define DPNENUMSERVICEPROVIDERS_ALL                     0x0001 | 
 
 
 
 
 | 184 | #define DPNGETLOCALHOSTADDRESSES_COMBINED               0x0001 | 
 
 
 
 
 | 185 | #define DPNGETSENDQUEUEINFO_PRIORITY_NORMAL             0x0001 | 
 
 
 
 
 | 186 | #define DPNGETSENDQUEUEINFO_PRIORITY_HIGH               0x0002 | 
 
 
 
 
 | 187 | #define DPNGETSENDQUEUEINFO_PRIORITY_LOW                0x0004 | 
 
 
 
 
 | 188 | #define DPNGROUP_AUTODESTRUCT                           0x0001 | 
 
 
 
 
 | 189 | #define DPNHOST_OKTOQUERYFORADDRESSING                  0x0001 | 
 
 
 
 
 | 190 | #define DPNINFO_NAME                                    0x0001 | 
 
 
 
 
 | 191 | #define DPNINFO_DATA                                    0x0002 | 
 
 
 
 
 | 192 | #define DPNINITIALIZE_DISABLEPARAMVAL                   0x0001 | 
 
 
 
 
 | 193 | #define DPNINITIALIZE_HINT_LANSESSION                   0x0002 | 
 
 
 
 
 | 194 | #define DPNINITIALIZE_DISABLELINKTUNING                 0x0004 | 
 
 
 
 
 | 195 | #define DPNLOBBY_REGISTER                               0x0001 | 
 
 
 
 
 | 196 | #define DPNLOBBY_UNREGISTER                             0x0002 | 
 
 
 
 
 | 197 | #define DPNPLAYER_LOCAL                                 0x0002 | 
 
 
 
 
 | 198 | #define DPNPLAYER_HOST                                  0x0004 | 
 
 
 
 
 | 199 | #define DPNRECEIVE_GUARANTEED                           0x0001 | 
 
 
 
 
 | 200 | #define DPNRECEIVE_COALESCED                            0x0002 | 
 
 
 
 
 | 201 | #define DPNREMOVEPLAYERFROMGROUP_SYNC               DPNOP_SYNC | 
 
 
 
 
 | 202 | #define DPNSEND_SYNC                                DPNOP_SYNC | 
 
 
 
 
 | 203 | #define DPNSEND_NOCOPY                                  0x0001 | 
 
 
 
 
 | 204 | #define DPNSEND_NOCOMPLETE                              0x0002 | 
 
 
 
 
 | 205 | #define DPNSEND_COMPLETEONPROCESS                       0x0004 | 
 
 
 
 
 | 206 | #define DPNSEND_GUARANTEED                              0x0008 | 
 
 
 
 
 | 207 | #define DPNSEND_NONSEQUENTIAL                           0x0010 | 
 
 
 
 
 | 208 | #define DPNSEND_NOLOOPBACK                              0x0020 | 
 
 
 
 
 | 209 | #define DPNSEND_PRIORITY_LOW                            0x0040 | 
 
 
 
 
 | 210 | #define DPNSEND_PRIORITY_HIGH                           0x0080 | 
 
 
 
 
 | 211 | #define DPNSEND_COALESCE                                0x0100 | 
 
 
 
 
 | 212 | #define DPNSENDCOMPLETE_GUARANTEED                      0x0001 | 
 
 
 
 
 | 213 | #define DPNSENDCOMPLETE_COALESCED                       0x0002 | 
 
 
 
 
 | 214 | #define DPNSESSION_CLIENT_SERVER                        0x0001 | 
 
 
 
 
 | 215 | #define DPNSESSION_MIGRATE_HOST                         0x0004 | 
 
 
 
 
 | 216 | #define DPNSESSION_NODPNSVR                             0x0040 | 
 
 
 
 
 | 217 | #define DPNSESSION_REQUIREPASSWORD                      0x0080 | 
 
 
 
 
 | 218 | #define DPNSESSION_NOENUMS                              0x0100 | 
 
 
 
 
 | 219 | #define DPNSESSION_FAST_SIGNED                          0x0200 | 
 
 
 
 
 | 220 | #define DPNSESSION_FULL_SIGNED                          0x0400 | 
 
 
 
 
 | 221 | #define DPNSETCLIENTINFO_SYNC                       DPNOP_SYNC | 
 
 
 
 
 | 222 | #define DPNSETGROUPINFO_SYNC                        DPNOP_SYNC | 
 
 
 
 
 | 223 | #define DPNSETPEERINFO_SYNC                         DPNOP_SYNC | 
 
 
 
 
 | 224 | #define DPNSETSERVERINFO_SYNC                       DPNOP_SYNC | 
 
 
 
 
 | 225 | #define DPNSPCAPS_SUPPORTSDPNSRV                        0x0001 | 
 
 
 
 
 | 226 | #define DPNSPCAPS_SUPPORTSBROADCAST                     0x0002 | 
 
 
 
 
 | 227 | #define DPNSPCAPS_SUPPORTSALLADAPTERS                   0x0004 | 
 
 
 
 
 | 228 | #define DPNSPCAPS_SUPPORTSTHREADPOOL                    0x0008 | 
 
 
 
 
 | 229 | #define DPNSPCAPS_NETWORKSIMULATOR                      0x0010 | 
 
 
 
 
 | 230 | #define DPNSPINFO_NETWORKSIMULATORDEVICE                0x0001 | 
 
 
 
 
 | 231 |  | 
 
 
 
 
 | 232 |  | 
 
 
 
 
 | 233 | /***************************************************************************** | 
 
 
 
 
 | 234 | * DirectPlay8 structures Typedefs | 
 
 
 
 
 | 235 | */ | 
 
 
 
 
 | 236 | typedef struct _DPN_APPLICATION_DESC { | 
 
 
 
 
 | 237 | DWORD   dwSize; | 
 
 
 
 
 | 238 | DWORD   dwFlags; | 
 
 
 
 
 | 239 | GUID    guidInstance; | 
 
 
 
 
 | 240 | GUID    guidApplication; | 
 
 
 
 
 | 241 | DWORD   dwMaxPlayers; | 
 
 
 
 
 | 242 | DWORD   dwCurrentPlayers; | 
 
 
 
 
 | 243 | WCHAR*  pwszSessionName; | 
 
 
 
 
 | 244 | WCHAR*  pwszPassword; | 
 
 
 
 
 | 245 | PVOID   pvReservedData; | 
 
 
 
 
 | 246 | DWORD   dwReservedDataSize; | 
 
 
 
 
 | 247 | PVOID   pvApplicationReservedData; | 
 
 
 
 
 | 248 | DWORD   dwApplicationReservedDataSize; | 
 
 
 
 
 | 249 | } DPN_APPLICATION_DESC, *PDPN_APPLICATION_DESC; | 
 
 
 
 
 | 250 |  | 
 
 
 
 
 | 251 | typedef struct _BUFFERDESC { | 
 
 
 
 
 | 252 | DWORD   dwBufferSize; | 
 
 
 
 
 | 253 | BYTE*   pBufferData; | 
 
 
 
 
 | 254 | } BUFFERDESC, DPN_BUFFER_DESC, *PDPN_BUFFER_DESC, *PBUFFERDESC; | 
 
 
 
 
 | 255 |  | 
 
 
 
 
 | 256 | typedef struct _DPN_CAPS { | 
 
 
 
 
 | 257 | DWORD   dwSize; | 
 
 
 
 
 | 258 | DWORD   dwFlags; | 
 
 
 
 
 | 259 | DWORD   dwConnectTimeout; | 
 
 
 
 
 | 260 | DWORD   dwConnectRetries; | 
 
 
 
 
 | 261 | DWORD   dwTimeoutUntilKeepAlive; | 
 
 
 
 
 | 262 | } DPN_CAPS, *PDPN_CAPS; | 
 
 
 
 
 | 263 |  | 
 
 
 
 
 | 264 | typedef struct  _DPN_CAPS_EX { | 
 
 
 
 
 | 265 | DWORD   dwSize; | 
 
 
 
 
 | 266 | DWORD   dwFlags; | 
 
 
 
 
 | 267 | DWORD   dwConnectTimeout; | 
 
 
 
 
 | 268 | DWORD   dwConnectRetries; | 
 
 
 
 
 | 269 | DWORD   dwTimeoutUntilKeepAlive; | 
 
 
 
 
 | 270 | DWORD   dwMaxRecvMsgSize; | 
 
 
 
 
 | 271 | DWORD   dwNumSendRetries; | 
 
 
 
 
 | 272 | DWORD   dwMaxSendRetryInterval; | 
 
 
 
 
 | 273 | DWORD   dwDropThresholdRate; | 
 
 
 
 
 | 274 | DWORD   dwThrottleRate; | 
 
 
 
 
 | 275 | DWORD   dwNumHardDisconnectSends; | 
 
 
 
 
 | 276 | DWORD   dwMaxHardDisconnectPeriod; | 
 
 
 
 
 | 277 | } DPN_CAPS_EX, *PDPN_CAPS_EX; | 
 
 
 
 
 | 278 |  | 
 
 
 
 
 | 279 | typedef struct _DPN_CONNECTION_INFO { | 
 
 
 
 
 | 280 | DWORD   dwSize; | 
 
 
 
 
 | 281 | DWORD   dwRoundTripLatencyMS; | 
 
 
 
 
 | 282 | DWORD   dwThroughputBPS; | 
 
 
 
 
 | 283 | DWORD   dwPeakThroughputBPS; | 
 
 
 
 
 | 284 | DWORD   dwBytesSentGuaranteed; | 
 
 
 
 
 | 285 | DWORD   dwPacketsSentGuaranteed; | 
 
 
 
 
 | 286 | DWORD   dwBytesSentNonGuaranteed; | 
 
 
 
 
 | 287 | DWORD   dwPacketsSentNonGuaranteed; | 
 
 
 
 
 | 288 | DWORD   dwBytesRetried; | 
 
 
 
 
 | 289 | DWORD   dwPacketsRetried; | 
 
 
 
 
 | 290 | DWORD   dwBytesDropped; | 
 
 
 
 
 | 291 | DWORD   dwPacketsDropped; | 
 
 
 
 
 | 292 | DWORD   dwMessagesTransmittedHighPriority; | 
 
 
 
 
 | 293 | DWORD   dwMessagesTimedOutHighPriority; | 
 
 
 
 
 | 294 | DWORD   dwMessagesTransmittedNormalPriority; | 
 
 
 
 
 | 295 | DWORD   dwMessagesTimedOutNormalPriority; | 
 
 
 
 
 | 296 | DWORD   dwMessagesTransmittedLowPriority; | 
 
 
 
 
 | 297 | DWORD   dwMessagesTimedOutLowPriority; | 
 
 
 
 
 | 298 | DWORD   dwBytesReceivedGuaranteed; | 
 
 
 
 
 | 299 | DWORD   dwPacketsReceivedGuaranteed; | 
 
 
 
 
 | 300 | DWORD   dwBytesReceivedNonGuaranteed; | 
 
 
 
 
 | 301 | DWORD   dwPacketsReceivedNonGuaranteed; | 
 
 
 
 
 | 302 | DWORD   dwMessagesReceived; | 
 
 
 
 
 | 303 | } DPN_CONNECTION_INFO, *PDPN_CONNECTION_INFO; | 
 
 
 
 
 | 304 |  | 
 
 
 
 
 | 305 | typedef struct _DPN_GROUP_INFO { | 
 
 
 
 
 | 306 | DWORD   dwSize; | 
 
 
 
 
 | 307 | DWORD   dwInfoFlags; | 
 
 
 
 
 | 308 | PWSTR   pwszName; | 
 
 
 
 
 | 309 | PVOID   pvData; | 
 
 
 
 
 | 310 | DWORD   dwDataSize; | 
 
 
 
 
 | 311 | DWORD   dwGroupFlags; | 
 
 
 
 
 | 312 | } DPN_GROUP_INFO, *PDPN_GROUP_INFO; | 
 
 
 
 
 | 313 |  | 
 
 
 
 
 | 314 | typedef struct _DPN_PLAYER_INFO { | 
 
 
 
 
 | 315 | DWORD   dwSize; | 
 
 
 
 
 | 316 | DWORD   dwInfoFlags; | 
 
 
 
 
 | 317 | PWSTR   pwszName; | 
 
 
 
 
 | 318 | PVOID   pvData; | 
 
 
 
 
 | 319 | DWORD   dwDataSize; | 
 
 
 
 
 | 320 | DWORD   dwPlayerFlags; | 
 
 
 
 
 | 321 | } DPN_PLAYER_INFO, *PDPN_PLAYER_INFO; | 
 
 
 
 
 | 322 |  | 
 
 
 
 
 | 323 | typedef struct _DPN_SERVICE_PROVIDER_INFO { | 
 
 
 
 
 | 324 | DWORD   dwFlags; | 
 
 
 
 
 | 325 | GUID    guid; | 
 
 
 
 
 | 326 | WCHAR*  pwszName; | 
 
 
 
 
 | 327 | PVOID   pvReserved; | 
 
 
 
 
 | 328 | DWORD   dwReserved; | 
 
 
 
 
 | 329 | } DPN_SERVICE_PROVIDER_INFO, *PDPN_SERVICE_PROVIDER_INFO; | 
 
 
 
 
 | 330 |  | 
 
 
 
 
 | 331 | typedef struct _DPN_SP_CAPS { | 
 
 
 
 
 | 332 | DWORD   dwSize; | 
 
 
 
 
 | 333 | DWORD   dwFlags; | 
 
 
 
 
 | 334 | DWORD   dwNumThreads; | 
 
 
 
 
 | 335 | DWORD   dwDefaultEnumCount; | 
 
 
 
 
 | 336 | DWORD   dwDefaultEnumRetryInterval; | 
 
 
 
 
 | 337 | DWORD   dwDefaultEnumTimeout; | 
 
 
 
 
 | 338 | DWORD   dwMaxEnumPayloadSize; | 
 
 
 
 
 | 339 | DWORD   dwBuffersPerThread; | 
 
 
 
 
 | 340 | DWORD   dwSystemBufferSize; | 
 
 
 
 
 | 341 | } DPN_SP_CAPS, *PDPN_SP_CAPS; | 
 
 
 
 
 | 342 |  | 
 
 
 
 
 | 343 | typedef struct _DPN_SECURITY_CREDENTIALS  DPN_SECURITY_CREDENTIALS, *PDPN_SECURITY_CREDENTIALS; | 
 
 
 
 
 | 344 | typedef struct _DPN_SECURITY_DESC         DPN_SECURITY_DESC, *PDPN_SECURITY_DESC; | 
 
 
 
 
 | 345 |  | 
 
 
 
 
 | 346 | typedef struct _DPNMSG_ADD_PLAYER_TO_GROUP { | 
 
 
 
 
 | 347 | DWORD   dwSize; | 
 
 
 
 
 | 348 | DPNID   dpnidGroup; | 
 
 
 
 
 | 349 | PVOID   pvGroupContext; | 
 
 
 
 
 | 350 | DPNID   dpnidPlayer; | 
 
 
 
 
 | 351 | PVOID   pvPlayerContext; | 
 
 
 
 
 | 352 | } DPNMSG_ADD_PLAYER_TO_GROUP, *PDPNMSG_ADD_PLAYER_TO_GROUP; | 
 
 
 
 
 | 353 |  | 
 
 
 
 
 | 354 | typedef struct _DPNMSG_ASYNC_OP_COMPLETE { | 
 
 
 
 
 | 355 | DWORD      dwSize; | 
 
 
 
 
 | 356 | DPNHANDLE  hAsyncOp; | 
 
 
 
 
 | 357 | PVOID      pvUserContext; | 
 
 
 
 
 | 358 | HRESULT    hResultCode; | 
 
 
 
 
 | 359 | } DPNMSG_ASYNC_OP_COMPLETE, *PDPNMSG_ASYNC_OP_COMPLETE; | 
 
 
 
 
 | 360 |  | 
 
 
 
 
 | 361 | typedef struct _DPNMSG_CLIENT_INFO { | 
 
 
 
 
 | 362 | DWORD   dwSize; | 
 
 
 
 
 | 363 | DPNID   dpnidClient; | 
 
 
 
 
 | 364 | PVOID   pvPlayerContext; | 
 
 
 
 
 | 365 | } DPNMSG_CLIENT_INFO, *PDPNMSG_CLIENT_INFO; | 
 
 
 
 
 | 366 |  | 
 
 
 
 
 | 367 | typedef struct _DPNMSG_CONNECT_COMPLETE { | 
 
 
 
 
 | 368 | DWORD      dwSize; | 
 
 
 
 
 | 369 | DPNHANDLE  hAsyncOp; | 
 
 
 
 
 | 370 | PVOID      pvUserContext; | 
 
 
 
 
 | 371 | HRESULT    hResultCode; | 
 
 
 
 
 | 372 | PVOID      pvApplicationReplyData; | 
 
 
 
 
 | 373 | DWORD      dwApplicationReplyDataSize; | 
 
 
 
 
 | 374 | /** DirectX 9 */ | 
 
 
 
 
 | 375 | DPNID      dpnidLocal; | 
 
 
 
 
 | 376 | } DPNMSG_CONNECT_COMPLETE, *PDPNMSG_CONNECT_COMPLETE; | 
 
 
 
 
 | 377 |  | 
 
 
 
 
 | 378 | typedef struct _DPNMSG_CREATE_GROUP { | 
 
 
 
 
 | 379 | DWORD   dwSize; | 
 
 
 
 
 | 380 | DPNID   dpnidGroup; | 
 
 
 
 
 | 381 | DPNID   dpnidOwner; | 
 
 
 
 
 | 382 | PVOID   pvGroupContext; | 
 
 
 
 
 | 383 | /** DirectX 9 */ | 
 
 
 
 
 | 384 | PVOID   pvOwnerContext; | 
 
 
 
 
 | 385 | } DPNMSG_CREATE_GROUP, *PDPNMSG_CREATE_GROUP; | 
 
 
 
 
 | 386 |  | 
 
 
 
 
 | 387 | typedef struct _DPNMSG_CREATE_PLAYER { | 
 
 
 
 
 | 388 | DWORD   dwSize; | 
 
 
 
 
 | 389 | DPNID   dpnidPlayer; | 
 
 
 
 
 | 390 | PVOID   pvPlayerContext; | 
 
 
 
 
 | 391 | } DPNMSG_CREATE_PLAYER, *PDPNMSG_CREATE_PLAYER; | 
 
 
 
 
 | 392 |  | 
 
 
 
 
 | 393 | typedef struct _DPNMSG_DESTROY_GROUP { | 
 
 
 
 
 | 394 | DWORD   dwSize; | 
 
 
 
 
 | 395 | DPNID   dpnidGroup; | 
 
 
 
 
 | 396 | PVOID   pvGroupContext; | 
 
 
 
 
 | 397 | DWORD   dwReason; | 
 
 
 
 
 | 398 | } DPNMSG_DESTROY_GROUP, *PDPNMSG_DESTROY_GROUP; | 
 
 
 
 
 | 399 |  | 
 
 
 
 
 | 400 | typedef struct _DPNMSG_DESTROY_PLAYER { | 
 
 
 
 
 | 401 | DWORD  dwSize; | 
 
 
 
 
 | 402 | DPNID  dpnidPlayer; | 
 
 
 
 
 | 403 | PVOID  pvPlayerContext; | 
 
 
 
 
 | 404 | DWORD  dwReason; | 
 
 
 
 
 | 405 | } DPNMSG_DESTROY_PLAYER, *PDPNMSG_DESTROY_PLAYER; | 
 
 
 
 
 | 406 |  | 
 
 
 
 
 | 407 | typedef struct _DPNMSG_ENUM_HOSTS_QUERY { | 
 
 
 
 
 | 408 | DWORD                 dwSize; | 
 
 
 
 
 | 409 | IDirectPlay8Address*  pAddressSender; | 
 
 
 
 
 | 410 | IDirectPlay8Address*  pAddressDevice; | 
 
 
 
 
 | 411 | PVOID                 pvReceivedData; | 
 
 
 
 
 | 412 | DWORD                 dwReceivedDataSize; | 
 
 
 
 
 | 413 | DWORD                 dwMaxResponseDataSize; | 
 
 
 
 
 | 414 | PVOID                 pvResponseData; | 
 
 
 
 
 | 415 | DWORD                 dwResponseDataSize; | 
 
 
 
 
 | 416 | PVOID                 pvResponseContext; | 
 
 
 
 
 | 417 | } DPNMSG_ENUM_HOSTS_QUERY, *PDPNMSG_ENUM_HOSTS_QUERY; | 
 
 
 
 
 | 418 |  | 
 
 
 
 
 | 419 | typedef struct _DPNMSG_ENUM_HOSTS_RESPONSE { | 
 
 
 
 
 | 420 | DWORD                        dwSize; | 
 
 
 
 
 | 421 | IDirectPlay8Address*         pAddressSender; | 
 
 
 
 
 | 422 | IDirectPlay8Address*         pAddressDevice; | 
 
 
 
 
 | 423 | const DPN_APPLICATION_DESC*  pApplicationDescription; | 
 
 
 
 
 | 424 | PVOID                        pvResponseData; | 
 
 
 
 
 | 425 | DWORD                        dwResponseDataSize; | 
 
 
 
 
 | 426 | PVOID                        pvUserContext; | 
 
 
 
 
 | 427 | DWORD                        dwRoundTripLatencyMS; | 
 
 
 
 
 | 428 | } DPNMSG_ENUM_HOSTS_RESPONSE, *PDPNMSG_ENUM_HOSTS_RESPONSE; | 
 
 
 
 
 | 429 |  | 
 
 
 
 
 | 430 | typedef struct _DPNMSG_GROUP_INFO { | 
 
 
 
 
 | 431 | DWORD   dwSize; | 
 
 
 
 
 | 432 | DPNID   dpnidGroup; | 
 
 
 
 
 | 433 | PVOID   pvGroupContext; | 
 
 
 
 
 | 434 | } DPNMSG_GROUP_INFO, *PDPNMSG_GROUP_INFO; | 
 
 
 
 
 | 435 |  | 
 
 
 
 
 | 436 | typedef struct _DPNMSG_HOST_MIGRATE { | 
 
 
 
 
 | 437 | DWORD   dwSize; | 
 
 
 
 
 | 438 | DPNID   dpnidNewHost; | 
 
 
 
 
 | 439 | PVOID   pvPlayerContext; | 
 
 
 
 
 | 440 | } DPNMSG_HOST_MIGRATE, *PDPNMSG_HOST_MIGRATE; | 
 
 
 
 
 | 441 |  | 
 
 
 
 
 | 442 | typedef struct _DPNMSG_INDICATE_CONNECT { | 
 
 
 
 
 | 443 | DWORD                 dwSize; | 
 
 
 
 
 | 444 | PVOID                 pvUserConnectData; | 
 
 
 
 
 | 445 | DWORD                 dwUserConnectDataSize; | 
 
 
 
 
 | 446 | PVOID                 pvReplyData; | 
 
 
 
 
 | 447 | DWORD                 dwReplyDataSize; | 
 
 
 
 
 | 448 | PVOID                 pvReplyContext; | 
 
 
 
 
 | 449 | PVOID                 pvPlayerContext; | 
 
 
 
 
 | 450 | IDirectPlay8Address*  pAddressPlayer; | 
 
 
 
 
 | 451 | IDirectPlay8Address*  pAddressDevice; | 
 
 
 
 
 | 452 | } DPNMSG_INDICATE_CONNECT, *PDPNMSG_INDICATE_CONNECT; | 
 
 
 
 
 | 453 |  | 
 
 
 
 
 | 454 | typedef struct _DPNMSG_INDICATED_CONNECT_ABORTED { | 
 
 
 
 
 | 455 | DWORD   dwSize; | 
 
 
 
 
 | 456 | PVOID   pvPlayerContext; | 
 
 
 
 
 | 457 | } DPNMSG_INDICATED_CONNECT_ABORTED, *PDPNMSG_INDICATED_CONNECT_ABORTED; | 
 
 
 
 
 | 458 |  | 
 
 
 
 
 | 459 | typedef struct _DPNMSG_PEER_INFO { | 
 
 
 
 
 | 460 | DWORD   dwSize; | 
 
 
 
 
 | 461 | DPNID   dpnidPeer; | 
 
 
 
 
 | 462 | PVOID   pvPlayerContext; | 
 
 
 
 
 | 463 | } DPNMSG_PEER_INFO, *PDPNMSG_PEER_INFO; | 
 
 
 
 
 | 464 |  | 
 
 
 
 
 | 465 | typedef struct _DPNMSG_RECEIVE { | 
 
 
 
 
 | 466 | DWORD      dwSize; | 
 
 
 
 
 | 467 | DPNID      dpnidSender; | 
 
 
 
 
 | 468 | PVOID      pvPlayerContext; | 
 
 
 
 
 | 469 | PBYTE      pReceiveData; | 
 
 
 
 
 | 470 | DWORD      dwReceiveDataSize; | 
 
 
 
 
 | 471 | DPNHANDLE  hBufferHandle; | 
 
 
 
 
 | 472 | /** DirectX 9 */ | 
 
 
 
 
 | 473 | DWORD      dwReceiveFlags; | 
 
 
 
 
 | 474 | } DPNMSG_RECEIVE, *PDPNMSG_RECEIVE; | 
 
 
 
 
 | 475 |  | 
 
 
 
 
 | 476 | typedef struct _DPNMSG_REMOVE_PLAYER_FROM_GROUP { | 
 
 
 
 
 | 477 | DWORD   dwSize; | 
 
 
 
 
 | 478 | DPNID   dpnidGroup; | 
 
 
 
 
 | 479 | PVOID   pvGroupContext; | 
 
 
 
 
 | 480 | DPNID   dpnidPlayer; | 
 
 
 
 
 | 481 | PVOID   pvPlayerContext; | 
 
 
 
 
 | 482 | } DPNMSG_REMOVE_PLAYER_FROM_GROUP, *PDPNMSG_REMOVE_PLAYER_FROM_GROUP; | 
 
 
 
 
 | 483 |  | 
 
 
 
 
 | 484 | typedef struct _DPNMSG_RETURN_BUFFER { | 
 
 
 
 
 | 485 | DWORD     dwSize; | 
 
 
 
 
 | 486 | HRESULT   hResultCode; | 
 
 
 
 
 | 487 | PVOID     pvBuffer; | 
 
 
 
 
 | 488 | PVOID     pvUserContext; | 
 
 
 
 
 | 489 | } DPNMSG_RETURN_BUFFER, *PDPNMSG_RETURN_BUFFER; | 
 
 
 
 
 | 490 |  | 
 
 
 
 
 | 491 | typedef struct _DPNMSG_SEND_COMPLETE { | 
 
 
 
 
 | 492 | DWORD       dwSize; | 
 
 
 
 
 | 493 | DPNHANDLE   hAsyncOp; | 
 
 
 
 
 | 494 | PVOID       pvUserContext; | 
 
 
 
 
 | 495 | HRESULT     hResultCode; | 
 
 
 
 
 | 496 | DWORD       dwSendTime; | 
 
 
 
 
 | 497 | /** DirectX 9 */ | 
 
 
 
 
 | 498 | DWORD            dwFirstFrameRTT; | 
 
 
 
 
 | 499 | DWORD            dwFirstFrameRetryCount; | 
 
 
 
 
 | 500 | DWORD            dwSendCompleteFlags; | 
 
 
 
 
 | 501 | DPN_BUFFER_DESC* pBuffers; | 
 
 
 
 
 | 502 | DWORD            dwNumBuffers; | 
 
 
 
 
 | 503 | } DPNMSG_SEND_COMPLETE, *PDPNMSG_SEND_COMPLETE; | 
 
 
 
 
 | 504 |  | 
 
 
 
 
 | 505 | typedef struct _DPNMSG_SERVER_INFO { | 
 
 
 
 
 | 506 | DWORD   dwSize; | 
 
 
 
 
 | 507 | DPNID   dpnidServer; | 
 
 
 
 
 | 508 | PVOID   pvPlayerContext; | 
 
 
 
 
 | 509 | } DPNMSG_SERVER_INFO, *PDPNMSG_SERVER_INFO; | 
 
 
 
 
 | 510 |  | 
 
 
 
 
 | 511 | typedef struct _DPNMSG_TERMINATE_SESSION { | 
 
 
 
 
 | 512 | DWORD    dwSize; | 
 
 
 
 
 | 513 | HRESULT  hResultCode; | 
 
 
 
 
 | 514 | PVOID    pvTerminateData; | 
 
 
 
 
 | 515 | DWORD    dwTerminateDataSize; | 
 
 
 
 
 | 516 | } DPNMSG_TERMINATE_SESSION, *PDPNMSG_TERMINATE_SESSION; | 
 
 
 
 
 | 517 |  | 
 
 
 
 
 | 518 | typedef struct _DPNMSG_CREATE_THREAD { | 
 
 
 
 
 | 519 | DWORD    dwSize; | 
 
 
 
 
 | 520 | DWORD    dwFlags; | 
 
 
 
 
 | 521 | DWORD    dwProcessorNum; | 
 
 
 
 
 | 522 | PVOID    pvUserContext; | 
 
 
 
 
 | 523 | } DPNMSG_CREATE_THREAD, *PDPNMSG_CREATE_THREAD; | 
 
 
 
 
 | 524 |  | 
 
 
 
 
 | 525 | typedef struct _DPNMSG_DESTROY_THREAD { | 
 
 
 
 
 | 526 | DWORD    dwSize; | 
 
 
 
 
 | 527 | DWORD    dwProcessorNum; | 
 
 
 
 
 | 528 | PVOID    pvUserContext; | 
 
 
 
 
 | 529 | } DPNMSG_DESTROY_THREAD, *PDPNMSG_DESTROY_THREAD; | 
 
 
 
 
 | 530 |  | 
 
 
 
 
 | 531 | typedef struct _DPNMSG_NAT_RESOLVER_QUERY { | 
 
 
 
 
 | 532 | DWORD    dwSize; | 
 
 
 
 
 | 533 | IDirectPlay8Address* pAddressSender; | 
 
 
 
 
 | 534 | IDirectPlay8Address* pAddressDevice; | 
 
 
 
 
 | 535 | WCHAR*   pwszUserString; | 
 
 
 
 
 | 536 | } DPNMSG_NAT_RESOLVER_QUERY, *PDPNMSG_NAT_RESOLVER_QUERY; | 
 
 
 
 
 | 537 |  | 
 
 
 
 
 | 538 | /***************************************************************************** | 
 
 
 
 
 | 539 | * Predeclare the interfaces | 
 
 
 
 
 | 540 | */ | 
 
 
 
 
 | 541 | DEFINE_GUID(CLSID_DirectPlay8Peer,        0x286f484d,0x375e,0x4458,0xa2,0x72,0xb1,0x38,0xe2,0xf8,0x0a,0x6a); | 
 
 
 
 
 | 542 | DEFINE_GUID(CLSID_DirectPlay8Client,      0x743f1dc6,0x5aba,0x429f,0x8b,0xdf,0xc5,0x4d,0x03,0x25,0x3d,0xc2); | 
 
 
 
 
 | 543 | DEFINE_GUID(CLSID_DirectPlay8Server,      0xda825e1b,0x6830,0x43d7,0x83,0x5d,0x0b,0x5a,0xd8,0x29,0x56,0xa2); | 
 
 
 
 
 | 544 | /** DirectX 9 */ | 
 
 
 
 
 | 545 | DEFINE_GUID(CLSID_DirectPlay8ThreadPool,  0xfc47060e,0x6153,0x4b34,0xb9,0x75,0x8e,0x41,0x21,0xeb,0x7f,0x3c); | 
 
 
 
 
 | 546 | DEFINE_GUID(CLSID_DirectPlay8NATResolver, 0xe4c1d9a2,0xcbf7,0x48bd,0x9a,0x69,0x34,0xa5,0x5e,0x0d,0x89,0x41); | 
 
 
 
 
 | 547 |  | 
 
 
 
 
 | 548 | DEFINE_GUID(IID_IDirectPlay8Peer,         0x5102dacf,0x241b,0x11d3,0xae,0xa7,0x0,0x60,0x97,0xb0,0x14,0x11); | 
 
 
 
 
 | 549 | typedef struct IDirectPlay8Peer *PDIRECTPLAY8PEER; | 
 
 
 
 
 | 550 | DEFINE_GUID(IID_IDirectPlay8Client,       0x5102dacd,0x241b,0x11d3,0xae,0xa7,0x0,0x60,0x97,0xb0,0x14,0x11); | 
 
 
 
 
 | 551 | typedef struct IDirectPlay8Client *PDIRECTPLAY8CLIENT; | 
 
 
 
 
 | 552 | DEFINE_GUID(IID_IDirectPlay8Server,       0x5102dace,0x241b,0x11d3,0xae,0xa7,0x0,0x60,0x97,0xb0,0x14,0x11); | 
 
 
 
 
 | 553 | typedef struct IDirectPlay8Server *PDIRECTPLAY8SERVER; | 
 
 
 
 
 | 554 | /** DirectX 9 */ | 
 
 
 
 
 | 555 | DEFINE_GUID(IID_IDirectPlay8ThreadPool,   0x0d22ee73,0x4a46,0x4a0d,0x89,0xb2,0x04,0x5b,0x4d,0x66,0x64,0x25); | 
 
 
 
 
 | 556 | typedef struct IDirectPlay8ThreadPool *PDIRECTPLAY8THREADPOOL; | 
 
 
 
 
 | 557 | DEFINE_GUID(IID_IDirectPlay8NATResolver,  0xa9e213f2,0x9a60,0x486f,0xbf,0x3b,0x53,0x40,0x8b,0x6d,0x1c,0xbb); | 
 
 
 
 
 | 558 | typedef struct IDirectPlay8NATResolver *PDIRECTPLAY8NATRESOLVER; | 
 
 
 
 
 | 559 |  | 
 
 
 
 
 | 560 | DEFINE_GUID(CLSID_DP8SP_IPX,               0x53934290,0x628d,0x11d2,0xae,0x0f,0x0,0x60,0x97,0xb0,0x14,0x11); | 
 
 
 
 
 | 561 | DEFINE_GUID(CLSID_DP8SP_TCPIP,             0xebfe7ba0,0x628d,0x11d2,0xae,0x0f,0x0,0x60,0x97,0xb0,0x14,0x11); | 
 
 
 
 
 | 562 | DEFINE_GUID(CLSID_DP8SP_SERIAL,            0x743b5d60,0x628d,0x11d2,0xae,0x0f,0x0,0x60,0x97,0xb0,0x14,0x11); | 
 
 
 
 
 | 563 | DEFINE_GUID(CLSID_DP8SP_MODEM,             0x6d4a3650,0x628d,0x11d2,0xae,0x0f,0x0,0x60,0x97,0xb0,0x14,0x11); | 
 
 
 
 
 | 564 | /** DirectX 9 */ | 
 
 
 
 
 | 565 | DEFINE_GUID(CLSID_DP8SP_BLUETOOTH,         0x995513af,0x3027,0x4b9a,0x95,0x6e,0xc7,0x72,0xb3,0xf7,0x80,0x06); | 
 
 
 
 
 | 566 |  | 
 
 
 
 
 | 567 | typedef struct IDirectPlay8LobbiedApplication   *PIDirectPlay8LobbiedApplication, DNLOBBIEDAPPLICATION; | 
 
 
 
 
 | 568 |  | 
 
 
 
 
 | 569 |  | 
 
 
 
 
 | 570 | /***************************************************************************** | 
 
 
 
 
 | 571 | * IDirectPlay8Client interface | 
 
 
 
 
 | 572 | */ | 
 
 
 
 
 | 573 | #define INTERFACE IDirectPlay8Client | 
 
 
 
 
 | 574 | DECLARE_INTERFACE_(IDirectPlay8Client,IUnknown) | 
 
 
 
 
 | 575 | { | 
 
 
 
 
 | 576 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 577 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; | 
 
 
 
 
 | 578 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; | 
 
 
 
 
 | 579 | STDMETHOD_(ULONG,Release)(THIS) PURE; | 
 
 
 
 
 | 580 | /*** IDirectPlay8Client methods ***/ | 
 
 
 
 
 | 581 | STDMETHOD(Initialize)(THIS_ PVOID pvUserContext, PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags) PURE; | 
 
 
 
 
 | 582 | STDMETHOD(EnumServiceProviders)(THIS_ const GUID *pguidServiceProvider, const GUID *pguidApplication, DPN_SERVICE_PROVIDER_INFO *pSPInfoBuffer, PDWORD pcbEnumData, PDWORD pcReturned, DWORD dwFlags) PURE; | 
 
 
 
 
 | 583 | STDMETHOD(EnumHosts)(THIS_ PDPN_APPLICATION_DESC pApplicationDesc,IDirectPlay8Address *pAddrHost,IDirectPlay8Address *pDeviceInfo, PVOID pUserEnumData, DWORD dwUserEnumDataSize, DWORD dwEnumCount, DWORD dwRetryInterval, DWORD dwTimeOut, PVOID pvUserContext, DPNHANDLE *pAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 584 | STDMETHOD(CancelAsyncOperation)(THIS_ DPNHANDLE hAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 585 | STDMETHOD(Connect)(THIS_ const DPN_APPLICATION_DESC *pdnAppDesc,IDirectPlay8Address *pHostAddr,IDirectPlay8Address *pDeviceInfo, const DPN_SECURITY_DESC *pdnSecurity, const DPN_SECURITY_CREDENTIALS *pdnCredentials, const void *pvUserConnectData, DWORD dwUserConnectDataSize,void *pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 586 | STDMETHOD(Send)(THIS_ const DPN_BUFFER_DESC *prgBufferDesc, DWORD cBufferDesc, DWORD dwTimeOut, void *pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 587 | STDMETHOD(GetSendQueueInfo)(THIS_ DWORD *pdwNumMsgs, DWORD *pdwNumBytes, DWORD dwFlags) PURE; | 
 
 
 
 
 | 588 | STDMETHOD(GetApplicationDesc)(THIS_ DPN_APPLICATION_DESC *pAppDescBuffer, DWORD *pcbDataSize, DWORD dwFlags) PURE; | 
 
 
 
 
 | 589 | STDMETHOD(SetClientInfo)(THIS_ const DPN_PLAYER_INFO *pdpnPlayerInfo, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 590 | STDMETHOD(GetServerInfo)(THIS_ DPN_PLAYER_INFO *pdpnPlayerInfo, DWORD *pdwSize, DWORD dwFlags) PURE; | 
 
 
 
 
 | 591 | STDMETHOD(GetServerAddress)(THIS_ IDirectPlay8Address ** pAddress, DWORD dwFlags) PURE; | 
 
 
 
 
 | 592 | STDMETHOD(Close)(THIS_ DWORD dwFlags) PURE; | 
 
 
 
 
 | 593 | STDMETHOD(ReturnBuffer)(THIS_ DPNHANDLE hBufferHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 594 | STDMETHOD(GetCaps)(THIS_ DPN_CAPS *pdpCaps, DWORD dwFlags) PURE; | 
 
 
 
 
 | 595 | STDMETHOD(SetCaps)(THIS_ const DPN_CAPS *pdpCaps, DWORD dwFlags) PURE; | 
 
 
 
 
 | 596 | STDMETHOD(SetSPCaps)(THIS_ const GUID *pguidSP, const DPN_SP_CAPS *pdpspCaps, DWORD dwFlags ) PURE; | 
 
 
 
 
 | 597 | STDMETHOD(GetSPCaps)(THIS_ const GUID *pguidSP, DPN_SP_CAPS *pdpspCaps, DWORD dwFlags) PURE; | 
 
 
 
 
 | 598 | STDMETHOD(GetConnectionInfo)(THIS_ DPN_CONNECTION_INFO *pdpConnectionInfo, DWORD dwFlags) PURE; | 
 
 
 
 
 | 599 | STDMETHOD(RegisterLobby)(THIS_ DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication *pIDP8LobbiedApplication, DWORD dwFlags) PURE; | 
 
 
 
 
 | 600 | }; | 
 
 
 
 
 | 601 | #undef INTERFACE | 
 
 
 
 
 | 602 |  | 
 
 
 
 
 | 603 | #if !defined(__cplusplus) || defined(CINTERFACE) | 
 
 
 
 
 | 604 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 605 | #define IDirectPlay8Client_QueryInterface(p,a,b)                (p)->lpVtbl->QueryInterface(p,a,b) | 
 
 
 
 
 | 606 | #define IDirectPlay8Client_AddRef(p)                            (p)->lpVtbl->AddRef(p) | 
 
 
 
 
 | 607 | #define IDirectPlay8Client_Release(p)                           (p)->lpVtbl->Release(p) | 
 
 
 
 
 | 608 | /*** IDirectPlay8Client methods ***/ | 
 
 
 
 
 | 609 | #define IDirectPlay8Client_Initialize(p,a,b,c)                  (p)->lpVtbl->Initialize(p,a,b,c) | 
 
 
 
 
 | 610 | #define IDirectPlay8Client_EnumServiceProviders(p,a,b,c,d,e,f)  (p)->lpVtbl->EnumServiceProviders(p,a,b,c,d,e,f) | 
 
 
 
 
 | 611 | #define IDirectPlay8Client_EnumHosts(p,a,b,c,d,e,f,g,h,i,j,k)   (p)->lpVtbl->EnumHosts(p,a,b,c,d,e,f,g,h,i,j,k) | 
 
 
 
 
 | 612 | #define IDirectPlay8Client_CancelAsyncOperation(p,a,b)          (p)->lpVtbl->CancelAsyncOperation(p,a,b) | 
 
 
 
 
 | 613 | #define IDirectPlay8Client_Connect(p,a,b,c,d,e,f,g,h,i,j)       (p)->lpVtbl->Connect(p,a,b,c,d,e,f,g,h,i,j) | 
 
 
 
 
 | 614 | #define IDirectPlay8Client_Send(p,a,b,c,d,e,f)                  (p)->lpVtbl->Send(p,a,b,c,d,e,f) | 
 
 
 
 
 | 615 | #define IDirectPlay8Client_GetSendQueueInfo(p,a,b,c)            (p)->lpVtbl->GetSendQueueInfo(p,a,b,c) | 
 
 
 
 
 | 616 | #define IDirectPlay8Client_GetApplicationDesc(p,a,b,c)          (p)->lpVtbl->GetApplicationDesc(p,a,b,c) | 
 
 
 
 
 | 617 | #define IDirectPlay8Client_SetClientInfo(p,a,b,c,d)             (p)->lpVtbl->SetClientInfo(p,a,b,c,d) | 
 
 
 
 
 | 618 | #define IDirectPlay8Client_GetServerInfo(p,a,b,c)               (p)->lpVtbl->GetServerInfo(p,a,b,c) | 
 
 
 
 
 | 619 | #define IDirectPlay8Client_GetServerAddress(p,a,b)              (p)->lpVtbl->GetServerAddress(p,a,b) | 
 
 
 
 
 | 620 | #define IDirectPlay8Client_Close(p,a)                           (p)->lpVtbl->Close(p,a) | 
 
 
 
 
 | 621 | #define IDirectPlay8Client_ReturnBuffer(p,a,b)                  (p)->lpVtbl->ReturnBuffer(p,a,b) | 
 
 
 
 
 | 622 | #define IDirectPlay8Client_GetCaps(p,a,b)                       (p)->lpVtbl->GetCaps(p,a,b) | 
 
 
 
 
 | 623 | #define IDirectPlay8Client_SetCaps(p,a,b)                       (p)->lpVtbl->SetCaps(p,a,b) | 
 
 
 
 
 | 624 | #define IDirectPlay8Client_SetSPCaps(p,a,b,c)                   (p)->lpVtbl->SetSPCaps(p,a,b,c) | 
 
 
 
 
 | 625 | #define IDirectPlay8Client_GetSPCaps(p,a,b,c)                   (p)->lpVtbl->GetSPCaps(p,a,b,c) | 
 
 
 
 
 | 626 | #define IDirectPlay8Client_GetConnectionInfo(p,a,b)             (p)->lpVtbl->GetConnectionInfo(p,a,b) | 
 
 
 
 
 | 627 | #define IDirectPlay8Client_RegisterLobby(p,a,b,c)               (p)->lpVtbl->RegisterLobby(p,a,b,c) | 
 
 
 
 
 | 628 | #else | 
 
 
 
 
 | 629 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 630 | #define IDirectPlay8Client_QueryInterface(p,a,b)                (p)->QueryInterface(a,b) | 
 
 
 
 
 | 631 | #define IDirectPlay8Client_AddRef(p)                            (p)->AddRef() | 
 
 
 
 
 | 632 | #define IDirectPlay8Client_Release(p)                           (p)->Release() | 
 
 
 
 
 | 633 | /*** IDirectPlay8Client methods ***/ | 
 
 
 
 
 | 634 | #define IDirectPlay8Client_Initialize(p,a,b,c)                  (p)->Initialize(a,b,c) | 
 
 
 
 
 | 635 | #define IDirectPlay8Client_EnumServiceProviders(p,a,b,c,d,e,f)  (p)->EnumServiceProviders(a,b,c,d,e,f) | 
 
 
 
 
 | 636 | #define IDirectPlay8Client_EnumHosts(p,a,b,c,d,e,f,g,h,i,j,k)   (p)->EnumHosts(a,b,c,d,e,f,g,h,i,j,k) | 
 
 
 
 
 | 637 | #define IDirectPlay8Client_CancelAsyncOperation(p,a,b)          (p)->CancelAsyncOperation(a,b) | 
 
 
 
 
 | 638 | #define IDirectPlay8Client_Connect(p,a,b,c,d,e,f,g,h,i,j)       (p)->Connect(a,b,c,d,e,f,g,h,i,j) | 
 
 
 
 
 | 639 | #define IDirectPlay8Client_Send(p,a,b,c,d,e,f)                  (p)->Send(a,b,c,d,e,f) | 
 
 
 
 
 | 640 | #define IDirectPlay8Client_GetSendQueueInfo(p,a,b,c)            (p)->GetSendQueueInfo(a,b,c) | 
 
 
 
 
 | 641 | #define IDirectPlay8Client_GetApplicationDesc(p,a,b,c)          (p)->GetApplicationDesc(a,b,c) | 
 
 
 
 
 | 642 | #define IDirectPlay8Client_SetClientInfo(p,a,b,c,d)             (p)->SetClientInfo(a,b,c,d) | 
 
 
 
 
 | 643 | #define IDirectPlay8Client_GetServerInfo(p,a,b,c)               (p)->GetServerInfo(a,b,c) | 
 
 
 
 
 | 644 | #define IDirectPlay8Client_GetServerAddress(p,a,b)              (p)->GetServerAddress(a,b) | 
 
 
 
 
 | 645 | #define IDirectPlay8Client_Close(p,a)                           (p)->Close(a) | 
 
 
 
 
 | 646 | #define IDirectPlay8Client_ReturnBuffer(p,a,b)                  (p)->ReturnBuffer(a,b) | 
 
 
 
 
 | 647 | #define IDirectPlay8Client_GetCaps(p,a,b)                       (p)->GetCaps(a,b) | 
 
 
 
 
 | 648 | #define IDirectPlay8Client_SetCaps(p,a,b)                       (p)->SetCaps(a,b) | 
 
 
 
 
 | 649 | #define IDirectPlay8Client_SetSPCaps(p,a,b,c)                   (p)->SetSPCaps(a,b,c) | 
 
 
 
 
 | 650 | #define IDirectPlay8Client_GetSPCaps(p,a,b,c)                   (p)->GetSPCaps(a,b,c) | 
 
 
 
 
 | 651 | #define IDirectPlay8Client_GetConnectionInfo(p,a,b)             (p)->GetConnectionInfo(a,b) | 
 
 
 
 
 | 652 | #define IDirectPlay8Client_RegisterLobby(p,a,b,c)               (p)->RegisterLobby(a,b,c) | 
 
 
 
 
 | 653 | #endif | 
 
 
 
 
 | 654 |  | 
 
 
 
 
 | 655 | /***************************************************************************** | 
 
 
 
 
 | 656 | * IDirectPlay8Server interface | 
 
 
 
 
 | 657 | */ | 
 
 
 
 
 | 658 | #define INTERFACE IDirectPlay8Server | 
 
 
 
 
 | 659 | DECLARE_INTERFACE_(IDirectPlay8Server,IUnknown) | 
 
 
 
 
 | 660 | { | 
 
 
 
 
 | 661 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 662 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; | 
 
 
 
 
 | 663 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; | 
 
 
 
 
 | 664 | STDMETHOD_(ULONG,Release)(THIS) PURE; | 
 
 
 
 
 | 665 | /*** IDirectPlay8Server methods ***/ | 
 
 
 
 
 | 666 | STDMETHOD(Initialize)(THIS_ PVOID pvUserContext, PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags) PURE; | 
 
 
 
 
 | 667 | STDMETHOD(EnumServiceProviders)(THIS_ const GUID *pguidServiceProvider, const GUID *pguidApplication, DPN_SERVICE_PROVIDER_INFO *pSPInfoBuffer, PDWORD pcbEnumData, PDWORD pcReturned, DWORD dwFlags) PURE; | 
 
 
 
 
 | 668 | STDMETHOD(CancelAsyncOperation)(THIS_ DPNHANDLE hAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 669 | STDMETHOD(GetSendQueueInfo)(THIS_ DPNID dpnid, DWORD *pdwNumMsgs, DWORD *pdwNumBytes, DWORD dwFlags) PURE; | 
 
 
 
 
 | 670 | STDMETHOD(GetApplicationDesc)(THIS_ DPN_APPLICATION_DESC *pAppDescBuffer, DWORD *pcbDataSize, DWORD dwFlags) PURE; | 
 
 
 
 
 | 671 | STDMETHOD(SetServerInfo)(THIS_ const DPN_PLAYER_INFO *pdpnPlayerInfo, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 672 | STDMETHOD(GetClientInfo)(THIS_ DPNID dpnid, DPN_PLAYER_INFO *pdpnPlayerInfo, DWORD *pdwSize, DWORD dwFlags) PURE; | 
 
 
 
 
 | 673 | STDMETHOD(GetClientAddress)(THIS_ DPNID dpnid, IDirectPlay8Address ** pAddress, DWORD dwFlags) PURE; | 
 
 
 
 
 | 674 | STDMETHOD(GetLocalHostAddresses)(THIS_ IDirectPlay8Address ** prgpAddress, DWORD *pcAddress, DWORD dwFlags) PURE; | 
 
 
 
 
 | 675 | STDMETHOD(SetApplicationDesc)(THIS_ const DPN_APPLICATION_DESC *pad, DWORD dwFlags) PURE; | 
 
 
 
 
 | 676 | STDMETHOD(Host)(THIS_ const DPN_APPLICATION_DESC *pdnAppDesc, IDirectPlay8Address ** prgpDeviceInfo, DWORD cDeviceInfo, const DPN_SECURITY_DESC *pdnSecurity, const DPN_SECURITY_CREDENTIALS *pdnCredentials, void *pvPlayerContext, DWORD dwFlags) PURE; | 
 
 
 
 
 | 677 | STDMETHOD(SendTo)(THIS_ DPNID dpnid, const DPN_BUFFER_DESC *prgBufferDesc, DWORD cBufferDesc, DWORD dwTimeOut, void *pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 678 | STDMETHOD(CreateGroup)(THIS_ const DPN_GROUP_INFO *pdpnGroupInfo, void *pvGroupContext, void *pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 679 | STDMETHOD(DestroyGroup)(THIS_ DPNID idGroup, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 680 | STDMETHOD(AddPlayerToGroup)(THIS_ DPNID idGroup, DPNID idClient, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 681 | STDMETHOD(RemovePlayerFromGroup)(THIS_ DPNID idGroup, DPNID idClient, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 682 | STDMETHOD(SetGroupInfo)(THIS_ DPNID dpnid, DPN_GROUP_INFO *pdpnGroupInfo, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 683 | STDMETHOD(GetGroupInfo)(THIS_ DPNID dpnid, DPN_GROUP_INFO *pdpnGroupInfo, DWORD *pdwSize, DWORD dwFlags) PURE; | 
 
 
 
 
 | 684 | STDMETHOD(EnumPlayersAndGroups)(THIS_ DPNID *prgdpnid, DWORD *pcdpnid, DWORD dwFlags) PURE; | 
 
 
 
 
 | 685 | STDMETHOD(EnumGroupMembers)(THIS_ DPNID dpnid, DPNID *prgdpnid, DWORD *pcdpnid, DWORD dwFlags) PURE; | 
 
 
 
 
 | 686 | STDMETHOD(Close)(THIS_ DWORD dwFlags) PURE; | 
 
 
 
 
 | 687 | STDMETHOD(DestroyClient)(THIS_ DPNID dpnidClient, const void *pvDestroyData, DWORD dwDestroyDataSize, DWORD dwFlags) PURE; | 
 
 
 
 
 | 688 | STDMETHOD(ReturnBuffer)(THIS_ DPNHANDLE hBufferHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 689 | STDMETHOD(GetPlayerContext)(THIS_ DPNID dpnid, PVOID *ppvPlayerContext, DWORD dwFlags) PURE; | 
 
 
 
 
 | 690 | STDMETHOD(GetGroupContext)(THIS_ DPNID dpnid, PVOID *ppvGroupContext, DWORD dwFlags) PURE; | 
 
 
 
 
 | 691 | STDMETHOD(GetCaps)(THIS_ DPN_CAPS *pdpCaps, DWORD dwFlags) PURE; | 
 
 
 
 
 | 692 | STDMETHOD(SetCaps)(THIS_ const DPN_CAPS *pdpCaps, DWORD dwFlags) PURE; | 
 
 
 
 
 | 693 | STDMETHOD(SetSPCaps)(THIS_ const GUID *pguidSP, const DPN_SP_CAPS *pdpspCaps, DWORD dwFlags ) PURE; | 
 
 
 
 
 | 694 | STDMETHOD(GetSPCaps)(THIS_ const GUID *pguidSP, DPN_SP_CAPS *pdpspCaps, DWORD dwFlags) PURE; | 
 
 
 
 
 | 695 | STDMETHOD(GetConnectionInfo)(THIS_ DPNID dpnid, DPN_CONNECTION_INFO *pdpConnectionInfo, DWORD dwFlags) PURE; | 
 
 
 
 
 | 696 | STDMETHOD(RegisterLobby)(THIS_ DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication *pIDP8LobbiedApplication, DWORD dwFlags) PURE; | 
 
 
 
 
 | 697 | }; | 
 
 
 
 
 | 698 | #undef INTERFACE | 
 
 
 
 
 | 699 |  | 
 
 
 
 
 | 700 | #if !defined(__cplusplus) || defined(CINTERFACE) | 
 
 
 
 
 | 701 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 702 | #define IDirectPlay8Server_QueryInterface(p,a,b)                (p)->lpVtbl->QueryInterface(p,a,b) | 
 
 
 
 
 | 703 | #define IDirectPlay8Server_AddRef(p)                            (p)->lpVtbl->AddRef(p) | 
 
 
 
 
 | 704 | #define IDirectPlay8Server_Release(p)                           (p)->lpVtbl->Release(p) | 
 
 
 
 
 | 705 | /*** IDirectPlay8Server methods ***/ | 
 
 
 
 
 | 706 | #define IDirectPlay8Server_Initialize(p,a,b,c)                  (p)->lpVtbl->Initialize(p,a,b,c) | 
 
 
 
 
 | 707 | #define IDirectPlay8Server_EnumServiceProviders(p,a,b,c,d,e,f)  (p)->lpVtbl->EnumServiceProviders(p,a,b,c,d,e,f) | 
 
 
 
 
 | 708 | #define IDirectPlay8Server_CancelAsyncOperation(p,a,b)          (p)->lpVtbl->CancelAsyncOperation(p,a,b) | 
 
 
 
 
 | 709 | #define IDirectPlay8Server_GetSendQueueInfo(p,a,b,c,d)          (p)->lpVtbl->GetSendQueueInfo(p,a,b,c,d) | 
 
 
 
 
 | 710 | #define IDirectPlay8Server_GetApplicationDesc(p,a,b,c)          (p)->lpVtbl->GetApplicationDesc(p,a,b,c) | 
 
 
 
 
 | 711 | #define IDirectPlay8Server_SetServerInfo(p,a,b,c,d)             (p)->lpVtbl->SetServerInfo(p,a,b,c,d) | 
 
 
 
 
 | 712 | #define IDirectPlay8Server_GetClientInfo(p,a,b,c,d)             (p)->lpVtbl->GetClientInfo(p,a,b,c,d) | 
 
 
 
 
 | 713 | #define IDirectPlay8Server_GetClientAddress(p,a,b,c)            (p)->lpVtbl->GetClientAddress(p,a,b,c) | 
 
 
 
 
 | 714 | #define IDirectPlay8Server_GetLocalHostAddresses(p,a,b,c)       (p)->lpVtbl->GetLocalHostAddresses(p,a,b,c) | 
 
 
 
 
 | 715 | #define IDirectPlay8Server_SetApplicationDesc(p,a,b)            (p)->lpVtbl->SetApplicationDesc(p,a,b) | 
 
 
 
 
 | 716 | #define IDirectPlay8Server_Host(p,a,b,c,d,e,f,g)                (p)->lpVtbl->Host(p,a,b,c,d,e,f,g) | 
 
 
 
 
 | 717 | #define IDirectPlay8Server_SendTo(p,a,b,c,d,e,f,g)              (p)->lpVtbl->SendTo(p,a,b,c,d,e,f,g) | 
 
 
 
 
 | 718 | #define IDirectPlay8Server_CreateGroup(p,a,b,c,d,e)             (p)->lpVtbl->CreateGroup(p,a,b,c,d,e) | 
 
 
 
 
 | 719 | #define IDirectPlay8Server_DestroyGroup(p,a,b,c,d)              (p)->lpVtbl->DestroyGroup(p,a,b,c,d) | 
 
 
 
 
 | 720 | #define IDirectPlay8Server_AddPlayerToGroup(p,a,b,c,d,e)        (p)->lpVtbl->AddPlayerToGroup(p,a,b,c,d,e) | 
 
 
 
 
 | 721 | #define IDirectPlay8Server_RemovePlayerFromGroup(p,a,b,c,d,e)   (p)->lpVtbl->RemovePlayerFromGroup(p,a,b,c,d,e) | 
 
 
 
 
 | 722 | #define IDirectPlay8Server_SetGroupInfo(p,a,b,c,d,e)            (p)->lpVtbl->SetGroupInfo(p,a,b,c,d,e) | 
 
 
 
 
 | 723 | #define IDirectPlay8Server_GetGroupInfo(p,a,b,c,d)              (p)->lpVtbl->GetGroupInfo(p,a,b,c,d) | 
 
 
 
 
 | 724 | #define IDirectPlay8Server_EnumPlayersAndGroups(p,a,b,c)        (p)->lpVtbl->EnumPlayersAndGroups(p,a,b,c) | 
 
 
 
 
 | 725 | #define IDirectPlay8Server_EnumGroupMembers(p,a,b,c,d)          (p)->lpVtbl->EnumGroupMembers(p,a,b,c,d) | 
 
 
 
 
 | 726 | #define IDirectPlay8Server_Close(p,a)                           (p)->lpVtbl->Close(p,a) | 
 
 
 
 
 | 727 | #define IDirectPlay8Server_DestroyClient(p,a,b,c,d)             (p)->lpVtbl->DestroyClient(p,a,b,c,d) | 
 
 
 
 
 | 728 | #define IDirectPlay8Server_ReturnBuffer(p,a,b)                  (p)->lpVtbl->ReturnBuffer(p,a,b) | 
 
 
 
 
 | 729 | #define IDirectPlay8Server_GetPlayerContext(p,a,b,c)            (p)->lpVtbl->GetPlayerContext(p,a,b,c) | 
 
 
 
 
 | 730 | #define IDirectPlay8Server_GetGroupContext(p,a,b,c)             (p)->lpVtbl->GetGroupContext(p,a,b,c) | 
 
 
 
 
 | 731 | #define IDirectPlay8Server_GetCaps(p,a,b)                       (p)->lpVtbl->GetCaps(p,a,b) | 
 
 
 
 
 | 732 | #define IDirectPlay8Server_SetCaps(p,a,b)                       (p)->lpVtbl->SetCaps(p,a,b) | 
 
 
 
 
 | 733 | #define IDirectPlay8Server_SetSPCaps(p,a,b,c)                   (p)->lpVtbl->SetSPCaps(p,a,b,c) | 
 
 
 
 
 | 734 | #define IDirectPlay8Server_GetSPCaps(p,a,b,c)                   (p)->lpVtbl->GetSPCaps(p,a,b,c) | 
 
 
 
 
 | 735 | #define IDirectPlay8Server_GetConnectionInfo(p,a,b,c)           (p)->lpVtbl->GetConnectionInfo(p,a,b,c) | 
 
 
 
 
 | 736 | #define IDirectPlay8Server_RegisterLobby(p,a,b,c)               (p)->lpVtbl->RegisterLobby(p,a,b,c) | 
 
 
 
 
 | 737 | #else | 
 
 
 
 
 | 738 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 739 | #define IDirectPlay8Server_QueryInterface(p,a,b)                (p)->QueryInterface(a,b) | 
 
 
 
 
 | 740 | #define IDirectPlay8Server_AddRef(p)                            (p)->AddRef() | 
 
 
 
 
 | 741 | #define IDirectPlay8Server_Release(p)                           (p)->Release() | 
 
 
 
 
 | 742 | /*** IDirectPlay8Server methods ***/ | 
 
 
 
 
 | 743 | #define IDirectPlay8Server_Initialize(p,a,b,c)                  (p)->Initialize(a,b,c) | 
 
 
 
 
 | 744 | #define IDirectPlay8Server_EnumServiceProviders(p,a,b,c,d,e,f)  (p)->EnumServiceProviders(a,b,c,d,e,f) | 
 
 
 
 
 | 745 | #define IDirectPlay8Server_CancelAsyncOperation(p,a,b)          (p)->CancelAsyncOperation(a,b) | 
 
 
 
 
 | 746 | #define IDirectPlay8Server_GetSendQueueInfo(p,a,b,c,d)          (p)->GetSendQueueInfo(a,b,c,d) | 
 
 
 
 
 | 747 | #define IDirectPlay8Server_GetApplicationDesc(p,a,b,c)          (p)->GetApplicationDesc(a,b,c) | 
 
 
 
 
 | 748 | #define IDirectPlay8Server_SetServerInfo(p,a,b,c,d)             (p)->SetServerInfo(a,b,c,d) | 
 
 
 
 
 | 749 | #define IDirectPlay8Server_GetClientInfo(p,a,b,c,d)             (p)->GetClientInfo(a,b,c,d) | 
 
 
 
 
 | 750 | #define IDirectPlay8Server_GetClientAddress(p,a,b,c)            (p)->GetClientAddress(a,b,c) | 
 
 
 
 
 | 751 | #define IDirectPlay8Server_GetLocalHostAddresses(p,a,b,c)       (p)->GetLocalHostAddresses(a,b,c) | 
 
 
 
 
 | 752 | #define IDirectPlay8Server_SetApplicationDesc(p,a,b)            (p)->SetApplicationDesc(a,b) | 
 
 
 
 
 | 753 | #define IDirectPlay8Server_Host(p,a,b,c,d,e,f,g)                (p)->Host(a,b,c,d,e,f,g) | 
 
 
 
 
 | 754 | #define IDirectPlay8Server_SendTo(p,a,b,c,d,e,f,g)              (p)->SendTo(a,b,c,d,e,f,g) | 
 
 
 
 
 | 755 | #define IDirectPlay8Server_CreateGroup(p,a,b,c,d,e)             (p)->CreateGroup(a,b,c,d,e) | 
 
 
 
 
 | 756 | #define IDirectPlay8Server_DestroyGroup(p,a,b,c,d)              (p)->DestroyGroup(a,b,c,d) | 
 
 
 
 
 | 757 | #define IDirectPlay8Server_AddPlayerToGroup(p,a,b,c,d,e)        (p)->AddPlayerToGroup(a,b,c,d,e) | 
 
 
 
 
 | 758 | #define IDirectPlay8Server_RemovePlayerFromGroup(p,a,b,c,d,e)   (p)->RemovePlayerFromGroup(a,b,c,d,e) | 
 
 
 
 
 | 759 | #define IDirectPlay8Server_SetGroupInfo(p,a,b,c,d,e)            (p)->SetGroupInfo(a,b,c,d,e) | 
 
 
 
 
 | 760 | #define IDirectPlay8Server_GetGroupInfo(p,a,b,c,d)              (p)->GetGroupInfo(a,b,c,d) | 
 
 
 
 
 | 761 | #define IDirectPlay8Server_EnumPlayersAndGroups(p,a,b,c)        (p)->EnumPlayersAndGroups(a,b,c) | 
 
 
 
 
 | 762 | #define IDirectPlay8Server_EnumGroupMembers(p,a,b,c,d)          (p)->EnumGroupMembers(a,b,c,d) | 
 
 
 
 
 | 763 | #define IDirectPlay8Server_Close(p,a)                           (p)->Close(a) | 
 
 
 
 
 | 764 | #define IDirectPlay8Server_DestroyClient(p,a,b,c,d)             (p)->DestroyClient(a,b,c,d) | 
 
 
 
 
 | 765 | #define IDirectPlay8Server_ReturnBuffer(p,a,b)                  (p)->ReturnBuffer(a,b) | 
 
 
 
 
 | 766 | #define IDirectPlay8Server_GetPlayerContext(p,a,b,c)            (p)->GetPlayerContext(a,b,c) | 
 
 
 
 
 | 767 | #define IDirectPlay8Server_GetGroupContext(p,a,b,c)             (p)->GetGroupContext(a,b,c) | 
 
 
 
 
 | 768 | #define IDirectPlay8Server_GetCaps(p,a,b)                       (p)->GetCaps(a,b) | 
 
 
 
 
 | 769 | #define IDirectPlay8Server_SetCaps(p,a,b)                       (p)->SetCaps(a,b) | 
 
 
 
 
 | 770 | #define IDirectPlay8Server_SetSPCaps(p,a,b,c)                   (p)->SetSPCaps(a,b,c) | 
 
 
 
 
 | 771 | #define IDirectPlay8Server_GetSPCaps(p,a,b,c)                   (p)->GetSPCaps(a,b,c) | 
 
 
 
 
 | 772 | #define IDirectPlay8Server_GetConnectionInfo(p,a,b,c)           (p)->GetConnectionInfo(a,b,c) | 
 
 
 
 
 | 773 | #define IDirectPlay8Server_RegisterLobby(p,a,b,c)               (p)->RegisterLobby(a,b,c) | 
 
 
 
 
 | 774 | #endif | 
 
 
 
 
 | 775 |  | 
 
 
 
 
 | 776 | /***************************************************************************** | 
 
 
 
 
 | 777 | * IDirectPlay8Peer interface | 
 
 
 
 
 | 778 | */ | 
 
 
 
 
 | 779 | #define INTERFACE IDirectPlay8Peer | 
 
 
 
 
 | 780 | DECLARE_INTERFACE_(IDirectPlay8Peer,IUnknown) | 
 
 
 
 
 | 781 | { | 
 
 
 
 
 | 782 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 783 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; | 
 
 
 
 
 | 784 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; | 
 
 
 
 
 | 785 | STDMETHOD_(ULONG,Release)(THIS) PURE; | 
 
 
 
 
 | 786 | /*** IDirectPlay8Peer methods ***/ | 
 
 
 
 
 | 787 | STDMETHOD(Initialize)(THIS_ PVOID pvUserContext, PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags) PURE; | 
 
 
 
 
 | 788 | STDMETHOD(EnumServiceProviders)(THIS_ const GUID* pguidServiceProvider, const GUID* pguidApplication, DPN_SERVICE_PROVIDER_INFO* pSPInfoBuffer, DWORD* pcbEnumData, DWORD* pcReturned, DWORD dwFlags) PURE; | 
 
 
 
 
 | 789 | STDMETHOD(CancelAsyncOperation)(THIS_ DPNHANDLE hAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 790 | STDMETHOD(Connect)(THIS_ const DPN_APPLICATION_DESC* pdnAppDesc, IDirectPlay8Address* pHostAddr, IDirectPlay8Address* pDeviceInfo, const DPN_SECURITY_DESC* pdnSecurity, const DPN_SECURITY_CREDENTIALS* pdnCredentials, const void* pvUserConnectData, DWORD dwUserConnectDataSize, void* pvPlayerContext, void* pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 791 | STDMETHOD(SendTo)(THIS_ DPNID dpnid, const DPN_BUFFER_DESC* prgBufferDesc, DWORD cBufferDesc, DWORD dwTimeOut, void* pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 792 | STDMETHOD(GetSendQueueInfo)(THIS_ DPNID dpnid, DWORD* pdwNumMsgs, DWORD* pdwNumBytes, DWORD dwFlags) PURE; | 
 
 
 
 
 | 793 | STDMETHOD(Host)(THIS_ const DPN_APPLICATION_DESC* pdnAppDesc, IDirectPlay8Address **prgpDeviceInfo, DWORD cDeviceInfo, const DPN_SECURITY_DESC* pdnSecurity, const DPN_SECURITY_CREDENTIALS* pdnCredentials, void* pvPlayerContext, DWORD dwFlags) PURE; | 
 
 
 
 
 | 794 | STDMETHOD(GetApplicationDesc)(THIS_ DPN_APPLICATION_DESC* pAppDescBuffer, DWORD* pcbDataSize, DWORD dwFlags) PURE; | 
 
 
 
 
 | 795 | STDMETHOD(SetApplicationDesc)(THIS_ const DPN_APPLICATION_DESC* pad, DWORD dwFlags) PURE; | 
 
 
 
 
 | 796 | STDMETHOD(CreateGroup)(THIS_ const DPN_GROUP_INFO* pdpnGroupInfo, void* pvGroupContext, void* pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 797 | STDMETHOD(DestroyGroup)(THIS_ DPNID idGroup, PVOID pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 798 | STDMETHOD(AddPlayerToGroup)(THIS_ DPNID idGroup, DPNID idClient, PVOID pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 799 | STDMETHOD(RemovePlayerFromGroup)(THIS_ DPNID idGroup, DPNID idClient, PVOID pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 800 | STDMETHOD(SetGroupInfo)(THIS_ DPNID dpnid, DPN_GROUP_INFO* pdpnGroupInfo,PVOID pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 801 | STDMETHOD(GetGroupInfo)(THIS_ DPNID dpnid, DPN_GROUP_INFO* pdpnGroupInfo, DWORD* pdwSize, DWORD dwFlags) PURE; | 
 
 
 
 
 | 802 | STDMETHOD(EnumPlayersAndGroups)(THIS_ DPNID* prgdpnid, DWORD* pcdpnid, DWORD dwFlags) PURE; | 
 
 
 
 
 | 803 | STDMETHOD(EnumGroupMembers)(THIS_ DPNID dpnid, DPNID* prgdpnid, DWORD* pcdpnid, DWORD dwFlags) PURE; | 
 
 
 
 
 | 804 | STDMETHOD(SetPeerInfo)(THIS_ const DPN_PLAYER_INFO* pdpnPlayerInfo,PVOID pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 805 | STDMETHOD(GetPeerInfo)(THIS_ DPNID dpnid, DPN_PLAYER_INFO* pdpnPlayerInfo, DWORD* pdwSize, DWORD dwFlags) PURE; | 
 
 
 
 
 | 806 | STDMETHOD(GetPeerAddress)(THIS_ DPNID dpnid, IDirectPlay8Address** pAddress, DWORD dwFlags) PURE; | 
 
 
 
 
 | 807 | STDMETHOD(GetLocalHostAddresses)(THIS_ IDirectPlay8Address** prgpAddress, DWORD* pcAddress, DWORD dwFlags) PURE; | 
 
 
 
 
 | 808 | STDMETHOD(Close)(THIS_ DWORD dwFlags) PURE; | 
 
 
 
 
 | 809 | STDMETHOD(EnumHosts)(THIS_ PDPN_APPLICATION_DESC pApplicationDesc, IDirectPlay8Address* pAddrHost, IDirectPlay8Address* pDeviceInfo,PVOID pUserEnumData, DWORD dwUserEnumDataSize, DWORD dwEnumCount, DWORD dwRetryInterval, DWORD dwTimeOut,PVOID pvUserContext, DPNHANDLE* pAsyncHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 810 | STDMETHOD(DestroyPeer)(THIS_ DPNID dpnidClient, const void* pvDestroyData, DWORD dwDestroyDataSize, DWORD dwFlags) PURE; | 
 
 
 
 
 | 811 | STDMETHOD(ReturnBuffer)(THIS_ DPNHANDLE hBufferHandle, DWORD dwFlags) PURE; | 
 
 
 
 
 | 812 | STDMETHOD(GetPlayerContext)(THIS_ DPNID dpnid,PVOID* ppvPlayerContext, DWORD dwFlags) PURE; | 
 
 
 
 
 | 813 | STDMETHOD(GetGroupContext)(THIS_ DPNID dpnid,PVOID* ppvGroupContext, DWORD dwFlags) PURE; | 
 
 
 
 
 | 814 | STDMETHOD(GetCaps)(THIS_ DPN_CAPS* pdpCaps, DWORD dwFlags) PURE; | 
 
 
 
 
 | 815 | STDMETHOD(SetCaps)(THIS_ const DPN_CAPS* pdpCaps, DWORD dwFlags) PURE; | 
 
 
 
 
 | 816 | STDMETHOD(SetSPCaps)(THIS_ const GUID* pguidSP, const DPN_SP_CAPS* pdpspCaps, DWORD dwFlags ) PURE; | 
 
 
 
 
 | 817 | STDMETHOD(GetSPCaps)(THIS_ const GUID* pguidSP, DPN_SP_CAPS* pdpspCaps, DWORD dwFlags) PURE; | 
 
 
 
 
 | 818 | STDMETHOD(GetConnectionInfo)(THIS_ DPNID dpnid, DPN_CONNECTION_INFO* pdpConnectionInfo, DWORD dwFlags) PURE; | 
 
 
 
 
 | 819 | STDMETHOD(RegisterLobby)(THIS_ DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication* pIDP8LobbiedApplication, DWORD dwFlags) PURE; | 
 
 
 
 
 | 820 | STDMETHOD(TerminateSession)(THIS_ void* pvTerminateData, DWORD dwTerminateDataSize, DWORD dwFlags) PURE; | 
 
 
 
 
 | 821 | }; | 
 
 
 
 
 | 822 | #undef INTERFACE | 
 
 
 
 
 | 823 |  | 
 
 
 
 
 | 824 | #if !defined(__cplusplus) || defined(CINTERFACE) | 
 
 
 
 
 | 825 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 826 | #define IDirectPlay8Peer_QueryInterface(p,a,b)                  (p)->lpVtbl->QueryInterface(p,a,b) | 
 
 
 
 
 | 827 | #define IDirectPlay8Peer_AddRef(p)                              (p)->lpVtbl->AddRef(p) | 
 
 
 
 
 | 828 | #define IDirectPlay8Peer_Release(p)                             (p)->lpVtbl->Release(p) | 
 
 
 
 
 | 829 | /*** IDirectPlay8Peer methods ***/ | 
 
 
 
 
 | 830 | #define IDirectPlay8Peer_Initialize(p,a,b,c)                    (p)->lpVtbl->Initialize(p,a,b,c) | 
 
 
 
 
 | 831 | #define IDirectPlay8Peer_EnumServiceProviders(p,a,b,c,d,e,f)    (p)->lpVtbl->EnumServiceProviders(p,a,b,c,d,e,f) | 
 
 
 
 
 | 832 | #define IDirectPlay8Peer_EnumHosts(p,a,b,c,d,e,f,g,h,i,j,k)     (p)->lpVtbl->EnumHosts(p,a,b,c,d,e,f,g,h,i,j,k) | 
 
 
 
 
 | 833 | #define IDirectPlay8Peer_CancelAsyncOperation(p,a,b)            (p)->lpVtbl->CancelAsyncOperation(p,a,b) | 
 
 
 
 
 | 834 | #define IDirectPlay8Peer_Connect(p,a,b,c,d,e,f,g,h,i,j,k)       (p)->lpVtbl->Connect(p,a,b,c,d,e,f,g,h,i,j,k) | 
 
 
 
 
 | 835 | #define IDirectPlay8Peer_SendTo(p,a,b,c,d,e,f,g)                (p)->lpVtbl->SendTo(p,a,b,c,d,e,f,g) | 
 
 
 
 
 | 836 | #define IDirectPlay8Peer_GetSendQueueInfo(p,a,b,c,d)            (p)->lpVtbl->GetSendQueueInfo(p,a,b,c,d) | 
 
 
 
 
 | 837 | #define IDirectPlay8Peer_Host(p,a,b,c,d,e,f,g)                  (p)->lpVtbl->Host(p,a,b,c,d,e,f,g) | 
 
 
 
 
 | 838 | #define IDirectPlay8Peer_GetApplicationDesc(p,a,b,c)            (p)->lpVtbl->GetApplicationDesc(p,a,b,c) | 
 
 
 
 
 | 839 | #define IDirectPlay8Peer_SetApplicationDesc(p,a,b)              (p)->lpVtbl->SetApplicationDesc(p,a,b) | 
 
 
 
 
 | 840 | #define IDirectPlay8Peer_CreateGroup(p,a,b,c,d,e)               (p)->lpVtbl->CreateGroup(p,a,b,c,d,e) | 
 
 
 
 
 | 841 | #define IDirectPlay8Peer_DestroyGroup(p,a,b,c,d)                (p)->lpVtbl->DestroyGroup(p,a,b,c,d) | 
 
 
 
 
 | 842 | #define IDirectPlay8Peer_AddPlayerToGroup(p,a,b,c,d,e)          (p)->lpVtbl->AddPlayerToGroup(p,a,b,c,d,e) | 
 
 
 
 
 | 843 | #define IDirectPlay8Peer_RemovePlayerFromGroup(p,a,b,c,d,e)     (p)->lpVtbl->RemovePlayerFromGroup(p,a,b,c,d,e) | 
 
 
 
 
 | 844 | #define IDirectPlay8Peer_SetGroupInfo(p,a,b,c,d,e)              (p)->lpVtbl->SetGroupInfo(p,a,b,c,d,e) | 
 
 
 
 
 | 845 | #define IDirectPlay8Peer_GetGroupInfo(p,a,b,c,d)                (p)->lpVtbl->GetGroupInfo(p,a,b,c,d) | 
 
 
 
 
 | 846 | #define IDirectPlay8Peer_EnumPlayersAndGroups(p,a,b,c)          (p)->lpVtbl->EnumPlayersAndGroups(p,a,b,c) | 
 
 
 
 
 | 847 | #define IDirectPlay8Peer_EnumGroupMembers(p,a,b,c,d)            (p)->lpVtbl->EnumGroupMembers(p,a,b,c,d) | 
 
 
 
 
 | 848 | #define IDirectPlay8Peer_SetPeerInfo(p,a,b,c,d)                 (p)->lpVtbl->SetPeerInfo(p,a,b,c,d) | 
 
 
 
 
 | 849 | #define IDirectPlay8Peer_GetPeerInfo(p,a,b,c,d)                 (p)->lpVtbl->GetPeerInfo(p,a,b,c,d) | 
 
 
 
 
 | 850 | #define IDirectPlay8Peer_GetPeerAddress(p,a,b,c)                (p)->lpVtbl->GetPeerAddress(p,a,b,c) | 
 
 
 
 
 | 851 | #define IDirectPlay8Peer_GetLocalHostAddresses(p,a,b,c)         (p)->lpVtbl->GetLocalHostAddresses(p,a,b,c) | 
 
 
 
 
 | 852 | #define IDirectPlay8Peer_Close(p,a)                             (p)->lpVtbl->Close(p,a) | 
 
 
 
 
 | 853 | #define IDirectPlay8Peer_EnumHosts(p,a,b,c,d,e,f,g,h,i,j,k)     (p)->lpVtbl->EnumHosts(p,a,b,c,d,e,f,g,h,i,j,k) | 
 
 
 
 
 | 854 | #define IDirectPlay8Peer_DestroyPeer(p,a,b,c,d)                 (p)->lpVtbl->DestroyPeer(p,a,b,c,d) | 
 
 
 
 
 | 855 | #define IDirectPlay8Peer_ReturnBuffer(p,a,b)                    (p)->lpVtbl->ReturnBuffer(p,a,b) | 
 
 
 
 
 | 856 | #define IDirectPlay8Peer_GetPlayerContext(p,a,b,c)              (p)->lpVtbl->GetPlayerContext(p,a,b,c) | 
 
 
 
 
 | 857 | #define IDirectPlay8Peer_GetGroupContext(p,a,b,c)               (p)->lpVtbl->GetGroupContext(p,a,b,c) | 
 
 
 
 
 | 858 | #define IDirectPlay8Peer_GetCaps(p,a,b)                         (p)->lpVtbl->GetCaps(p,a,b) | 
 
 
 
 
 | 859 | #define IDirectPlay8Peer_SetCaps(p,a,b)                         (p)->lpVtbl->SetCaps(p,a,b) | 
 
 
 
 
 | 860 | #define IDirectPlay8Peer_SetSPCaps(p,a,b,c)                     (p)->lpVtbl->SetSPCaps(p,a,b,c) | 
 
 
 
 
 | 861 | #define IDirectPlay8Peer_GetSPCaps(p,a,b,c)                     (p)->lpVtbl->GetSPCaps(p,a,b,c) | 
 
 
 
 
 | 862 | #define IDirectPlay8Peer_GetConnectionInfo(p,a,b,c)             (p)->lpVtbl->GetConnectionInfo(p,a,b,c) | 
 
 
 
 
 | 863 | #define IDirectPlay8Peer_RegisterLobby(p,a,b,c)                 (p)->lpVtbl->RegisterLobby(p,a,b,c) | 
 
 
 
 
 | 864 | #define IDirectPlay8Peer_TerminateSession(p,a,b,c)              (p)->lpVtbl->TerminateSession(p,a,b,c) | 
 
 
 
 
 | 865 | #else | 
 
 
 
 
 | 866 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 867 | #define IDirectPlay8Peer_QueryInterface(p,a,b)                  (p)->QueryInterface(a,b) | 
 
 
 
 
 | 868 | #define IDirectPlay8Peer_AddRef(p)                              (p)->AddRef() | 
 
 
 
 
 | 869 | #define IDirectPlay8Peer_Release(p)                             (p)->Release() | 
 
 
 
 
 | 870 | /*** IDirectPlay8Peer methods ***/ | 
 
 
 
 
 | 871 | #define IDirectPlay8Peer_Initialize(p,a,b,c)                    (p)->Initialize(a,b,c) | 
 
 
 
 
 | 872 | #define IDirectPlay8Peer_EnumServiceProviders(p,a,b,c,d,e,f)    (p)->EnumServiceProviders(a,b,c,d,e,f) | 
 
 
 
 
 | 873 | #define IDirectPlay8Peer_EnumHosts(p,a,b,c,d,e,f,g,h,i,j,k)     (p)->EnumHosts(a,b,c,d,e,f,g,h,i,j,k) | 
 
 
 
 
 | 874 | #define IDirectPlay8Peer_CancelAsyncOperation(p,a,b)            (p)->CancelAsyncOperation(a,b) | 
 
 
 
 
 | 875 | #define IDirectPlay8Peer_Connect(p,a,b,c,d,e,f,g,h,i,j,k)       (p)->Connect(a,b,c,d,e,f,g,h,i,j,k) | 
 
 
 
 
 | 876 | #define IDirectPlay8Peer_SendTo(p,a,b,c,d,e,f,g)                (p)->SendTo(a,b,c,d,e,f,g) | 
 
 
 
 
 | 877 | #define IDirectPlay8Peer_GetSendQueueInfo(p,a,b,c,d)            (p)->GetSendQueueInfo(a,b,c,d) | 
 
 
 
 
 | 878 | #define IDirectPlay8Peer_Host(p,a,b,c,d,e,f,g)                  (p)->Host(a,b,c,d,e,f,g) | 
 
 
 
 
 | 879 | #define IDirectPlay8Peer_GetApplicationDesc(p,a,b,c)            (p)->GetApplicationDesc(a,b,c) | 
 
 
 
 
 | 880 | #define IDirectPlay8Peer_SetApplicationDesc(p,a,b)              (p)->SetApplicationDesc(a,b) | 
 
 
 
 
 | 881 | #define IDirectPlay8Peer_CreateGroup(p,a,b,c,d,e)               (p)->CreateGroup(a,b,c,d,e) | 
 
 
 
 
 | 882 | #define IDirectPlay8Peer_DestroyGroup(p,a,b,c,d)                (p)->DestroyGroup(a,b,c,d) | 
 
 
 
 
 | 883 | #define IDirectPlay8Peer_AddPlayerToGroup(p,a,b,c,d,e)          (p)->AddPlayerToGroup(a,b,c,d,e) | 
 
 
 
 
 | 884 | #define IDirectPlay8Peer_RemovePlayerFromGroup(p,a,b,c,d,e)     (p)->RemovePlayerFromGroup(a,b,c,d,e) | 
 
 
 
 
 | 885 | #define IDirectPlay8Peer_SetGroupInfo(p,a,b,c,d,e)              (p)->SetGroupInfo(a,b,c,d,e) | 
 
 
 
 
 | 886 | #define IDirectPlay8Peer_GetGroupInfo(p,a,b,c,d)                (p)->GetGroupInfo(a,b,c,d) | 
 
 
 
 
 | 887 | #define IDirectPlay8Peer_EnumPlayersAndGroups(p,a,b,c)          (p)->EnumPlayersAndGroups(a,b,c) | 
 
 
 
 
 | 888 | #define IDirectPlay8Peer_EnumGroupMembers(p,a,b,c,d)            (p)->EnumGroupMembers(a,b,c,d) | 
 
 
 
 
 | 889 | #define IDirectPlay8Peer_SetPeerInfo(p,a,b,c,d)                 (p)->SetPeerInfo(a,b,c,d) | 
 
 
 
 
 | 890 | #define IDirectPlay8Peer_GetPeerInfo(p,a,b,c,d)                 (p)->GetPeerInfo(a,b,c,d) | 
 
 
 
 
 | 891 | #define IDirectPlay8Peer_GetPeerAddress(p,a,b,c)                (p)->GetPeerAddress(a,b,c) | 
 
 
 
 
 | 892 | #define IDirectPlay8Peer_GetLocalHostAddresses(p,a,b,c)         (p)->GetLocalHostAddresses(a,b,c) | 
 
 
 
 
 | 893 | #define IDirectPlay8Peer_Close(p,a)                             (p)->Close(a) | 
 
 
 
 
 | 894 | #define IDirectPlay8Peer_EnumHosts(p,a,b,c,d,e,f,g,h,i,j,k)     (p)->EnumHosts(a,b,c,d,e,f,g,h,i,j,k) | 
 
 
 
 
 | 895 | #define IDirectPlay8Peer_DestroyPeer(p,a,b,c,d)                 (p)->DestroyPeer(a,b,c,d) | 
 
 
 
 
 | 896 | #define IDirectPlay8Peer_ReturnBuffer(p,a,b)                    (p)->ReturnBuffer(a,b) | 
 
 
 
 
 | 897 | #define IDirectPlay8Peer_GetPlayerContext(p,a,b,c)              (p)->GetPlayerContext(a,b,c) | 
 
 
 
 
 | 898 | #define IDirectPlay8Peer_GetGroupContext(p,a,b,c)               (p)->GetGroupContext(a,b,c) | 
 
 
 
 
 | 899 | #define IDirectPlay8Peer_GetCaps(p,a,b)                         (p)->GetCaps(a,b) | 
 
 
 
 
 | 900 | #define IDirectPlay8Peer_SetCaps(p,a,b)                         (p)->SetCaps(a,b) | 
 
 
 
 
 | 901 | #define IDirectPlay8Peer_SetSPCaps(p,a,b,c)                     (p)->SetSPCaps(a,b,c) | 
 
 
 
 
 | 902 | #define IDirectPlay8Peer_GetSPCaps(p,a,b,c)                     (p)->GetSPCaps(a,b,c) | 
 
 
 
 
 | 903 | #define IDirectPlay8Peer_GetConnectionInfo(p,a,b,c)             (p)->GetConnectionInfo(a,b,c) | 
 
 
 
 
 | 904 | #define IDirectPlay8Peer_RegisterLobby(p,a,b,c)                 (p)->RegisterLobby(a,b,c) | 
 
 
 
 
 | 905 | #define IDirectPlay8Peer_TerminateSession(p,a,b,c)              (p)->TerminateSession(a,b,c) | 
 
 
 
 
 | 906 | #endif | 
 
 
 
 
 | 907 |  | 
 
 
 
 
 | 908 | /***************************************************************************** | 
 
 
 
 
 | 909 | * IDirectPlay8ThreadPool interface | 
 
 
 
 
 | 910 | */ | 
 
 
 
 
 | 911 | #define INTERFACE IDirectPlay8ThreadPool | 
 
 
 
 
 | 912 | DECLARE_INTERFACE_(IDirectPlay8ThreadPool,IUnknown) | 
 
 
 
 
 | 913 | { | 
 
 
 
 
 | 914 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 915 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; | 
 
 
 
 
 | 916 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; | 
 
 
 
 
 | 917 | STDMETHOD_(ULONG,Release)(THIS) PURE; | 
 
 
 
 
 | 918 | /*** IDirectPlay8ThreadPool methods ***/ | 
 
 
 
 
 | 919 | STDMETHOD(Initialize)(THIS_ PVOID pvUserContext, PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags) PURE; | 
 
 
 
 
 | 920 | STDMETHOD(Close)(THIS_ DWORD dwFlags) PURE; | 
 
 
 
 
 | 921 | STDMETHOD(GetThreadCount)(THIS_ DWORD dwProcessorNum, DWORD* pdwNumThreads, DWORD dwFlags) PURE; | 
 
 
 
 
 | 922 | STDMETHOD(SetThreadCount)(THIS_ DWORD dwProcessorNum, DWORD dwNumThreads, DWORD dwFlags) PURE; | 
 
 
 
 
 | 923 | STDMETHOD(DoWork)(THIS_ DWORD dwAllowedTimeSlice, DWORD dwFlags) PURE; | 
 
 
 
 
 | 924 | }; | 
 
 
 
 
 | 925 | #undef INTERFACE | 
 
 
 
 
 | 926 |  | 
 
 
 
 
 | 927 | #if !defined(__cplusplus) || defined(CINTERFACE) | 
 
 
 
 
 | 928 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 929 | #define IDirectPlay8ThreadPool_QueryInterface(p,a,b)                  (p)->lpVtbl->QueryInterface(p,a,b) | 
 
 
 
 
 | 930 | #define IDirectPlay8ThreadPool_AddRef(p)                              (p)->lpVtbl->AddRef(p) | 
 
 
 
 
 | 931 | #define IDirectPlay8ThreadPool_Release(p)                             (p)->lpVtbl->Release(p) | 
 
 
 
 
 | 932 | /*** IDirectPlay8ThreadPool methods ***/ | 
 
 
 
 
 | 933 | #define IDirectPlay8ThreadPool_Initialize(p,a,b,c)                    (p)->lpVtbl->Initialize(p,a,b,c) | 
 
 
 
 
 | 934 | #define IDirectPlay8ThreadPool_Close(p,a)                             (p)->lpVtbl->Close(p,a) | 
 
 
 
 
 | 935 | #define IDirectPlay8ThreadPool_GetThreadCount(p,a,b,c)                (p)->lpVtbl->GetThreadCount(p,a,b,c) | 
 
 
 
 
 | 936 | #define IDirectPlay8ThreadPool_SetThreadCount(p,a,b,c)                (p)->lpVtbl->SetThreadCount(p,a,b,c) | 
 
 
 
 
 | 937 | #define IDirectPlay8ThreadPool_DoWork(p,a,b)                          (p)->lpVtbl->DoWork(p,a,b) | 
 
 
 
 
 | 938 | #else | 
 
 
 
 
 | 939 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 940 | #define IDirectPlay8ThreadPool_QueryInterface(p,a,b)                  (p)->QueryInterface(a,b) | 
 
 
 
 
 | 941 | #define IDirectPlay8ThreadPool_AddRef(p)                              (p)->AddRef() | 
 
 
 
 
 | 942 | #define IDirectPlay8ThreadPool_Release(p)                             (p)->Release() | 
 
 
 
 
 | 943 | /*** IDirectPlay8ThreadPool methods ***/ | 
 
 
 
 
 | 944 | #define IDirectPlay8ThreadPool_Initialize(p,a,b,c)                    (p)->Initialize(a,b,c) | 
 
 
 
 
 | 945 | #define IDirectPlay8ThreadPool_Close(p,a)                             (p)->Close(a) | 
 
 
 
 
 | 946 | #define IDirectPlay8ThreadPool_GetThreadCount(p,a,b,c)                (p)->GetThreadCount(a,b,c) | 
 
 
 
 
 | 947 | #define IDirectPlay8ThreadPool_SetThreadCount(p,a,b,c)                (p)->SetThreadCount(a,b,c) | 
 
 
 
 
 | 948 | #define IDirectPlay8ThreadPool_DoWork(p,a,b)                          (p)->DoWork(a,b) | 
 
 
 
 
 | 949 | #endif | 
 
 
 
 
 | 950 |  | 
 
 
 
 
 | 951 | /***************************************************************************** | 
 
 
 
 
 | 952 | * IDirectPlay8NATResolver interface | 
 
 
 
 
 | 953 | */ | 
 
 
 
 
 | 954 | #define INTERFACE IDirectPlay8NATResolver | 
 
 
 
 
 | 955 | DECLARE_INTERFACE_(IDirectPlay8NATResolver,IUnknown) | 
 
 
 
 
 | 956 | { | 
 
 
 
 
 | 957 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 958 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; | 
 
 
 
 
 | 959 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; | 
 
 
 
 
 | 960 | STDMETHOD_(ULONG,Release)(THIS) PURE; | 
 
 
 
 
 | 961 | /*** IDirectPlay8NATResolver methods ***/ | 
 
 
 
 
 | 962 | STDMETHOD(Initialize)(THIS_ PVOID pvUserContext, PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags) PURE; | 
 
 
 
 
 | 963 | STDMETHOD(Start)(THIS_ IDirectPlay8Address** ppDevices, DWORD dwNumDevices, DWORD dwFlags) PURE; | 
 
 
 
 
 | 964 | STDMETHOD(Close)(THIS_ DWORD dwFlags) PURE; | 
 
 
 
 
 | 965 | STDMETHOD(EnumDevices)(THIS_ DPN_SERVICE_PROVIDER_INFO* pSPInfoBuffer, PDWORD pdwBufferSize, PDWORD pdwNumDevices, DWORD dwFlags) PURE; | 
 
 
 
 
 | 966 | STDMETHOD(GetAddresses)(THIS_ IDirectPlay8Address** ppAddresses, DWORD* pdwNumAddresses, DWORD dwFlags) PURE; | 
 
 
 
 
 | 967 | }; | 
 
 
 
 
 | 968 | #undef INTERFACE | 
 
 
 
 
 | 969 |  | 
 
 
 
 
 | 970 | #if !defined(__cplusplus) || defined(CINTERFACE) | 
 
 
 
 
 | 971 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 972 | #define IDirectPlay8NATResolver_QueryInterface(p,a,b)                  (p)->lpVtbl->QueryInterface(p,a,b) | 
 
 
 
 
 | 973 | #define IDirectPlay8NATResolver_AddRef(p)                              (p)->lpVtbl->AddRef(p) | 
 
 
 
 
 | 974 | #define IDirectPlay8NATResolver_Release(p)                             (p)->lpVtbl->Release(p) | 
 
 
 
 
 | 975 | /*** IDirectPlay8NATResolver methods ***/ | 
 
 
 
 
 | 976 | #define IDirectPlay8NATResolver_Initialize(p,a,b,c)                    (p)->lpVtbl->Initialize(p,a,b,c) | 
 
 
 
 
 | 977 | #define IDirectPlay8NATResolver_Start(p,a,b,c)                         (p)->lpVtbl->Start(p,a,b,c) | 
 
 
 
 
 | 978 | #define IDirectPlay8NATResolver_Close(p,a)                             (p)->lpVtbl->Close(p,a) | 
 
 
 
 
 | 979 | #define IDirectPlay8NATResolver_EnumDevices(p,a,b,c,d)                 (p)->lpVtbl->EnumDevices(p,a,b,c,d) | 
 
 
 
 
 | 980 | #define IDirectPlay8NATResolver_GetAddresses(p,a,b,c)                  (p)->lpVtbl->GetAddresses(p,a,b,c) | 
 
 
 
 
 | 981 | #else | 
 
 
 
 
 | 982 | /*** IUnknown methods ***/ | 
 
 
 
 
 | 983 | #define IDirectPlay8NATResolver_QueryInterface(p,a,b)                  (p)->QueryInterface(a,b) | 
 
 
 
 
 | 984 | #define IDirectPlay8NATResolver_AddRef(p)                              (p)->AddRef() | 
 
 
 
 
 | 985 | #define IDirectPlay8NATResolver_Release(p)                             (p)->Release() | 
 
 
 
 
 | 986 | /*** IDirectPlay8NATResolver methods ***/ | 
 
 
 
 
 | 987 | #define IDirectPlay8NATResolver_Initialize(p,a,b,c)                    (p)->Initialize(a,b,c) | 
 
 
 
 
 | 988 | #define IDirectPlay8NATResolver_Start(p,a,b,c)                         (p)->Start(a,b,c) | 
 
 
 
 
 | 989 | #define IDirectPlay8NATResolver_Close(p,a)                             (p)->Close(a) | 
 
 
 
 
 | 990 | #define IDirectPlay8NATResolver_EnumDevices(p,a,b,c,d)                 (p)->EnumDevices(a,b,c,d) | 
 
 
 
 
 | 991 | #define IDirectPlay8NATResolver_GetAddresses(p,a,b,c)                  (p)->GetAddresses(a,b,c) | 
 
 
 
 
 | 992 | #endif | 
 
 
 
 
 | 993 |  | 
 
 
 
 
 | 994 | /* Export functions */ | 
 
 
 
 
 | 995 |  | 
 
 
 
 
 | 996 | HRESULT WINAPI DirectPlay8Create(const CLSID* pcIID, LPVOID* ppvInterface, IUnknown* pUnknown); | 
 
 
 
 
 | 997 |  | 
 
 
 
 
 | 998 | #ifdef __cplusplus | 
 
 
 
 
 | 999 | } | 
 
 
 
 
 | 1000 | #endif | 
 
 
 
 
 | 1001 |  | 
 
 
 
 
 | 1002 | #endif |