ReactOS 0.4.17-dev-934-g091855f
dpnet_main.c File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
#include "objbase.h"
#include "oleauto.h"
#include "oleidl.h"
#include "rpcproxy.h"
#include "wine/debug.h"
#include "initguid.h"
#include "dpnet_private.h"
Include dependency graph for dpnet_main.c:

Go to the source code of this file.

Classes

struct  IClassFactoryImpl
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (dpnet)
 
static BOOL WINAPI winsock_startup (INIT_ONCE *once, void *param, void **context)
 
void init_winsock (void)
 
BOOL WINAPI DllMain (HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved)
 
HRESULT WINAPI DirectPlay8Create (REFGUID lpGUID, LPVOID *ppvInt, LPUNKNOWN punkOuter)
 
static IClassFactoryImpl * impl_from_IClassFactory (IClassFactory *iface)
 
static HRESULT WINAPI DICF_QueryInterface (LPCLASSFACTORY iface, REFIID riid, LPVOID *ppobj)
 
static ULONG WINAPI DICF_AddRef (LPCLASSFACTORY iface)
 
static ULONG WINAPI DICF_Release (LPCLASSFACTORY iface)
 
static HRESULT WINAPI DICF_CreateInstance (LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
 
static HRESULT WINAPI DICF_LockServer (LPCLASSFACTORY iface, BOOL dolock)
 
HRESULT WINAPI DllGetClassObject (REFCLSID rclsid, REFIID riid, LPVOID *ppv)
 

Variables

static BOOL winsock_loaded = FALSE
 
static const IClassFactoryVtbl DICF_Vtbl
 
static IClassFactoryImpl DPNET_CFS []
 

Function Documentation

◆ DICF_AddRef()

static ULONG WINAPI DICF_AddRef ( LPCLASSFACTORY  iface)
static

Definition at line 118 of file dpnet_main.c.

118 {
120 return InterlockedIncrement(&This->ref);
121}
#define InterlockedIncrement
Definition: armddk.h:53
static IClassFactoryImpl * impl_from_IClassFactory(IClassFactory *iface)
Definition: dpnet_main.c:106

Referenced by DllGetClassObject().

◆ DICF_CreateInstance()

static HRESULT WINAPI DICF_CreateInstance ( LPCLASSFACTORY  iface,
LPUNKNOWN  pOuter,
REFIID  riid,
LPVOID *  ppobj 
)
static

Definition at line 129 of file dpnet_main.c.

129 {
131
132 TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,debugstr_guid(riid),ppobj);
133 return This->pfnCreateInstanceFactory(iface, pOuter, riid, ppobj);
134}
REFIID riid
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4

◆ DICF_LockServer()

static HRESULT WINAPI DICF_LockServer ( LPCLASSFACTORY  iface,
BOOL  dolock 
)
static

Definition at line 136 of file dpnet_main.c.

136 {
138 FIXME("(%p)->(%d),stub!\n",This,dolock);
139 return S_OK;
140}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define S_OK
Definition: intsafe.h:52

◆ DICF_QueryInterface()

static HRESULT WINAPI DICF_QueryInterface ( LPCLASSFACTORY  iface,
REFIID  riid,
LPVOID *  ppobj 
)
static

Definition at line 111 of file dpnet_main.c.

111 {
113
114 FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
115 return E_NOINTERFACE;
116}
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ DICF_Release()

static ULONG WINAPI DICF_Release ( LPCLASSFACTORY  iface)
static

Definition at line 123 of file dpnet_main.c.

123 {
125 /* static class, won't be freed */
126 return InterlockedDecrement(&This->ref);
127}
#define InterlockedDecrement
Definition: armddk.h:52

◆ DirectPlay8Create()

HRESULT WINAPI DirectPlay8Create ( REFGUID  lpGUID,
LPVOID *  ppvInt,
LPUNKNOWN  punkOuter 
)

Definition at line 87 of file dpnet_main.c.

89{
90 TRACE("(%s, %p, %p): stub\n", debugstr_guid(lpGUID), ppvInt, punkOuter);
91 return S_OK;
92}

◆ DllGetClassObject()

HRESULT WINAPI DllGetClassObject ( REFCLSID  rclsid,
REFIID  riid,
LPVOID *  ppv 
)

Definition at line 164 of file dpnet_main.c.

165{
166 int i = 0;
167
168 TRACE("(%s,%s,%p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
169 /*
170 if ( IsEqualCLSID( &IID_IClassFactory, riid ) ) {
171 *ppv = (LPVOID)&DPNET_CF;
172 IClassFactory_AddRef((IClassFactory*)*ppv);
173 return S_OK;
174 }
175 */
176 while (NULL != DPNET_CFS[i].rclsid) {
177 if (IsEqualGUID(rclsid, DPNET_CFS[i].rclsid)) {
178 DICF_AddRef(&DPNET_CFS[i].IClassFactory_iface);
179 *ppv = &DPNET_CFS[i];
180 return S_OK;
181 }
182 ++i;
183 }
184
185 FIXME("(%s,%s,%p): no interface found.\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
187}
#define NULL
Definition: types.h:112
static ULONG WINAPI DICF_AddRef(LPCLASSFACTORY iface)
Definition: dpnet_main.c:118
static IClassFactoryImpl DPNET_CFS[]
Definition: dpnet_main.c:150
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define CLASS_E_CLASSNOTAVAILABLE
Definition: winerror.h:3772

◆ DllMain()

BOOL WINAPI DllMain ( HINSTANCE  hInstDLL,
DWORD  fdwReason,
LPVOID  lpvReserved 
)

Definition at line 62 of file dpnet_main.c.

63{
64 TRACE("%p,%lx,%p\n", hInstDLL, fdwReason, lpvReserved);
65
66 switch(fdwReason)
67 {
70 break;
71
73 if (lpvReserved) break;
75 WSACleanup();
76 break;
77 }
78 return TRUE;
79}
static DWORD const fdwReason
#define TRUE
Definition: types.h:120
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
#define DLL_PROCESS_DETACH
Definition: compat.h:130
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition: loader.c:85
static BOOL winsock_loaded
Definition: dpnet_main.c:40
static IN DWORD IN LPVOID lpvReserved
int PASCAL FAR WSACleanup(void)
Definition: startup.c:60

◆ impl_from_IClassFactory()

static IClassFactoryImpl * impl_from_IClassFactory ( IClassFactory *  iface)
inlinestatic

Definition at line 106 of file dpnet_main.c.

107{
108 return CONTAINING_RECORD(iface, IClassFactoryImpl, IClassFactory_iface);
109}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by DICF_AddRef(), DICF_CreateInstance(), DICF_LockServer(), DICF_QueryInterface(), and DICF_Release().

◆ init_winsock()

void init_winsock ( void  )

Definition at line 55 of file dpnet_main.c.

56{
59}
BOOL WINAPI InitOnceExecuteOnce(_Inout_ PINIT_ONCE InitOnce, _In_ __callback PINIT_ONCE_FN InitFn, _Inout_opt_ PVOID Parameter, _Outptr_opt_result_maybenull_ LPVOID *Context)
Definition: InitOnce.c:12
static BOOL WINAPI winsock_startup(INIT_ONCE *once, void *param, void **context)
Definition: dpnet_main.c:42
static INIT_ONCE init_once
Definition: vfwcapture.c:981
RTL_RUN_ONCE INIT_ONCE
Definition: winbase.h:3654
#define INIT_ONCE_STATIC_INIT
Definition: winbase.h:591

Referenced by FTP_Connect(), FTP_InitListenSocket(), IDirectPlay8ClientImpl_Initialize(), IDirectPlay8LobbiedApplicationImpl_Initialize(), IDirectPlay8PeerImpl_Initialize(), IDirectPlay8ServerImpl_Initialize(), InternetCheckConnectionW(), InternetOpenW(), and lobbyclient_Initialize().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( dpnet  )

◆ winsock_startup()

static BOOL WINAPI winsock_startup ( INIT_ONCE *  once,
void *  param,
void **  context 
)
static

Definition at line 42 of file dpnet_main.c.

43{
44 WSADATA wsa_data;
45 DWORD res;
46
47 res = WSAStartup(MAKEWORD(1,1), &wsa_data);
48 if(res == ERROR_SUCCESS)
50 else
51 ERR("WSAStartup failed: %lu\n", res);
52 return TRUE;
53}
#define ERR(fmt,...)
Definition: precomp.h:57
#define ERROR_SUCCESS
Definition: deptool.c:10
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint res
Definition: glext.h:9613
#define MAKEWORD(a, b)
Definition: typedefs.h:248
INT WINAPI WSAStartup(IN WORD wVersionRequested, OUT LPWSADATA lpWSAData)
Definition: startup.c:113

Referenced by init_winsock().

Variable Documentation

◆ DICF_Vtbl

const IClassFactoryVtbl DICF_Vtbl
static
Initial value:
= {
}
static ULONG WINAPI DICF_Release(LPCLASSFACTORY iface)
Definition: dpnet_main.c:123
static HRESULT WINAPI DICF_LockServer(LPCLASSFACTORY iface, BOOL dolock)
Definition: dpnet_main.c:136
static HRESULT WINAPI DICF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
Definition: dpnet_main.c:129
static HRESULT WINAPI DICF_QueryInterface(LPCLASSFACTORY iface, REFIID riid, LPVOID *ppobj)
Definition: dpnet_main.c:111

Definition at line 142 of file dpnet_main.c.

◆ DPNET_CFS

IClassFactoryImpl DPNET_CFS[]
static
Initial value:
= {
{ { &DICF_Vtbl }, 1, &CLSID_DirectPlay8Client, DPNET_CreateDirectPlay8Client },
{ { &DICF_Vtbl }, 1, &CLSID_DirectPlay8Server, DPNET_CreateDirectPlay8Server },
{ { &DICF_Vtbl }, 1, &CLSID_DirectPlay8Peer, DPNET_CreateDirectPlay8Peer },
{ { &DICF_Vtbl }, 1, &CLSID_DirectPlay8Address, DPNET_CreateDirectPlay8Address },
{ { &DICF_Vtbl }, 1, &CLSID_DirectPlay8LobbiedApplication, DPNET_CreateDirectPlay8LobbiedApp },
{ { &DICF_Vtbl }, 1, &CLSID_DirectPlay8LobbyClient, DPNET_CreateDirectPlay8LobbyClient },
{ { &DICF_Vtbl }, 1, &CLSID_DirectPlay8ThreadPool, DPNET_CreateDirectPlay8ThreadPool},
{ { NULL }, 0, NULL, NULL }
}
HRESULT DPNET_CreateDirectPlay8Address(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, LPVOID *ppobj)
Definition: address.c:694
HRESULT DPNET_CreateDirectPlay8Client(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppv)
Definition: client.c:384
HRESULT DPNET_CreateDirectPlay8LobbyClient(IClassFactory *iface, IUnknown *outer, REFIID riid, void **obj)
Definition: client.c:560
static const IClassFactoryVtbl DICF_Vtbl
Definition: dpnet_main.c:142
HRESULT DPNET_CreateDirectPlay8LobbiedApp(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj)
Definition: lobbiedapp.c:188
HRESULT DPNET_CreateDirectPlay8Peer(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj)
HRESULT DPNET_CreateDirectPlay8ThreadPool(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj)
Definition: threadpool.c:157
HRESULT DPNET_CreateDirectPlay8Server(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj)

Definition at line 150 of file dpnet_main.c.

Referenced by DllGetClassObject().

◆ winsock_loaded

BOOL winsock_loaded = FALSE
static

Definition at line 40 of file dpnet_main.c.

Referenced by DllMain(), and winsock_startup().