Bellhop: DirectPlay Gaming Lobby Client Sample

Click to open or copy the files for the Bellhop sample.

Bellhop is a DirectPlay sample that demonstrates how to write a lobby client application using the DirectPlay API. You can use Bellhop to find other people with whom to play games. By launching Bellhop and connecting to the lobby server, you can navigate through the "rooms" (represented by a door icon) on the lobby server to find other people with whom you can chat. You can create or join "staging areas" (represented by the triangle icon) to launch DirectPlay lobby-aware games.

To use the Bellhop application, a DirectPlay lobby server must be running on a computer on the network.

Visual C++ may include older versions of the DirectX header files and libraries. This sample requires DirectX 5. In order to avoid compile errors, make sure the path to the DirectX 5 header files and libraries is listed BEFORE the Visual C++ header files and libraries on the Directories menu, found under Options on the Tools menu.

Building SDK Samples

This sample uses the following keywords:

_strlwr; addgrouptogroup; addplayertogroup; begindeferwindowpos; beginlabeledit; callwindowproc; cgrouptree; checkaccessrights; closehandle; cocreateguid; cocreateinstance; coinitialize; combobox_addstring; combobox_getcount; combobox_getitemdata; combobox_setcursel; combobox_setitemdata; comparefunc; connect; connectionsettingsdialogproc; connectusingdialog; connectusinglobby; connectwndproc; couninitialize; createdirectplayinterface; createdirectplaylobbyinterface; createevent; creategroup; creategroupingroup; createlobbygroup; createplayer; createthread; deferwindowpos; define_guid; deleteconnectionlist; deletegroupfromgroup; deleteplayerfromgroup; deletesessioninstancelist; destroydirectplayinterface; destroydirectplaylobbyinterface; destroygroup; destroymenu; destroyplayer; dialogboxparam; directplayenumconnectionscallback; docreateroom; docreatetable; dodeleteplayerfromgroup; dodeleteroom; dodeletetable; dogroupconnectionsettings; dolaunch; edit_gettext; editctrlsubproc; editlabel; enabledlgbutton; enablemenuitem; enablewindow; enddeferwindowpos; enddialog; endlabeledit; enumapp; enumgroupplayers; enumgroups; enumgroupsingroup; enumlocalapplications; enumsessions; enumsessionscallback; errorbox; exitthread; failed; finditem; getbranchstructofparent; getclientrect; getcomboboxguid; getcomputername; getconnection; getconnectionsettings; getconnectionspguid; getcursorpos; getdc; getdevicecaps; getdlgitem; getdlgitemint; getdlgitemtext; getdpidofcurrentselection; getdpidofcurrentselectionparent; geteffectiveclientrect; getgroupflags; getgroupname; getlocalappname; getlocalappnamecallback; getmodulehandle; getparent; getplayerflags; getplayername; getsessioninfo; getsubmenu; getsyscolor; getwindowlong; getwindowrect; globalallocptr; globalfreeptr; handleapplicationmessage; handlestartsession; handlesystemmessage; idirectplay2_queryinterface; idirectplay2_release; idirectplay3_close; idirectplay3_creategroup; idirectplay3_creategroupingroup; idirectplay3_createplayer; idirectplay3_deletegroupfromgroup; idirectplay3_deleteplayerfromgroup; idirectplay3_destroygroup; idirectplay3_destroyplayer; idirectplay3_enumconnections; idirectplay3_enumsessions; idirectplay3_getgroupconnectionsettings; idirectplay3_getgroupflags; idirectplay3_getgroupname; idirectplay3_getplayerflags; idirectplay3_getplayername; idirectplay3_initializeconnection; idirectplay3_open; idirectplay3_receive; idirectplay3_release; idirectplay3_secureopen; idirectplay3_sendchatmessage; idirectplay3_setgroupconnectionsettings; idirectplay3_startsession; idirectplaylobby_enumlocalapplications; idirectplaylobby_receivelobbymessage; idirectplaylobby_release; idirectplaylobby_runapplication; imagelist_addicon; imagelist_begindrag; imagelist_create; imagelist_destroy; imagelist_dragenter; imagelist_dragleave; imagelist_dragmove; imagelist_enddrag; imagelist_setbkcolor; initconnectionsettingsdialog; initializelobby; initializelobbygroupwindow; insert; invalidaterect; isequalguid; isiconic; joinsession; killtimer; loadicon; loadmenu; lobbygroupwndproc; lobbywndproc; localalloc; localfree; logstring; lstrcat; lstrcpy; lstrlen; makeintresource; memcpy; memset; messagebox; newchatstring; onbegindrag; ondblclk; onlbuttonup; onmousemove; onrbuttondown; onsize; onwm_notify; postmessage; receivemessage; receivethread; recursiverename; redraw; refresh; release; releasecapture; releasedc; securitycredentialswndproc; selectsessioninstance; sendchatmessage; senddlgitemmessage; setcapture; setconnectionsettings; setdlgitemint; setdlgitemtext; setevent; setgroupconnection; setgroupname; setplayername; settimer; setupconnection; setwindowlong; setwindowtext; showcursor; shutdownconnection; strcmp; succeeded; switch; trackpopupmenuex; treeview_createdragimage; treeview_deleteallitems; treeview_deleteitem; treeview_editlabel; treeview_expand; treeview_getchild; treeview_geteditcontrol; treeview_getindent; treeview_getitem; treeview_getitemrect; treeview_getnextsibling; treeview_getparent; treeview_getroot; treeview_getselection; treeview_hittest; treeview_insertitem; treeview_selectdroptarget; treeview_selectitem; treeview_setimagelist; treeview_setitem; treeview_sortchildrencb; tv_enumplayerscallback; update; updatebuttons; updatelobbydisplay; updatewindow; waitformultipleobjects; waitforrunmsg; waitforsingleobject; winmain; wsprintf; zeromemory