ReactOS 0.4.17-dev-934-g091855f
main.c File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "objbase.h"
#include "rpcproxy.h"
#include "wine/debug.h"
#include "initguid.h"
#include "dvoice.h"
#include "dvoice_private.h"
Include dependency graph for main.c:

Go to the source code of this file.

Classes

struct  IClassFactoryImpl
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (dpvoice)
 
static IClassFactoryImpl * impl_from_IClassFactory (IClassFactory *iface)
 
static HRESULT WINAPI DICF_QueryInterface (LPCLASSFACTORY iface, REFIID riid, void **ppobj)
 
static ULONG WINAPI DICF_AddRef (LPCLASSFACTORY iface)
 
static ULONG WINAPI DICF_Release (LPCLASSFACTORY iface)
 
static HRESULT WINAPI DICF_CreateInstance (IClassFactory *iface, IUnknown *pOuter, REFIID riid, void **ppobj)
 
static HRESULT WINAPI DICF_LockServer (IClassFactory *iface, BOOL dolock)
 
HRESULT WINAPI DirectPlayVoiceCreate (LPCGUID pIID, void **ppvInterface)
 
HRESULT WINAPI DllGetClassObject (REFCLSID rclsid, REFIID riid, void **ppv)
 

Variables

static const IClassFactoryVtbl DICF_Vtbl
 
static IClassFactoryImpl DPVOICE_CFS []
 

Function Documentation

◆ DICF_AddRef()

static ULONG WINAPI DICF_AddRef ( LPCLASSFACTORY  iface)
static

Definition at line 56 of file main.c.

57{
59 return InterlockedIncrement(&This->ref);
60}
#define InterlockedIncrement
Definition: armddk.h:53
static IClassFactoryImpl * impl_from_IClassFactory(IClassFactory *iface)
Definition: main.c:49

Referenced by DllGetClassObject().

◆ DICF_CreateInstance()

static HRESULT WINAPI DICF_CreateInstance ( IClassFactory *  iface,
IUnknown *  pOuter,
REFIID  riid,
void **  ppobj 
)
static

Definition at line 69 of file main.c.

70{
72
73 TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,debugstr_guid(riid),ppobj);
74 return This->pfnCreateInstanceFactory(iface, pOuter, riid, ppobj);
75}
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 ( IClassFactory *  iface,
BOOL  dolock 
)
static

Definition at line 77 of file main.c.

78{
80 FIXME("(%p)->(%d),stub!\n",This,dolock);
81 return S_OK;
82}
#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,
void **  ppobj 
)
static

Definition at line 48 of file main.c.

49{
51
52 FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
53 return E_NOINTERFACE;
54}
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ DICF_Release()

static ULONG WINAPI DICF_Release ( LPCLASSFACTORY  iface)
static

Definition at line 62 of file main.c.

63{
65 /* static class, won't be freed */
66 return InterlockedDecrement(&This->ref);
67}
#define InterlockedDecrement
Definition: armddk.h:52

◆ DirectPlayVoiceCreate()

HRESULT WINAPI DirectPlayVoiceCreate ( LPCGUID  pIID,
void **  ppvInterface 
)

Definition at line 100 of file main.c.

101{
102 FIXME("(%s, %p) stub\n", debugstr_guid(pIID), ppvInterface);
103 return E_NOTIMPL;
104}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ DllGetClassObject()

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

Definition at line 106 of file main.c.

107{
108 int i = 0;
109
110 TRACE("(%s,%s,%p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
111
112 while (NULL != DPVOICE_CFS[i].rclsid)
113 {
114 if (IsEqualGUID(rclsid, DPVOICE_CFS[i].rclsid))
115 {
116 DICF_AddRef(&DPVOICE_CFS[i].IClassFactory_iface);
117 *ppv = &DPVOICE_CFS[i];
118 return S_OK;
119 }
120 ++i;
121 }
122
123 FIXME("(%s,%s,%p): no interface found.\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
125}
#define NULL
Definition: types.h:112
static ULONG WINAPI DICF_AddRef(LPCLASSFACTORY iface)
Definition: main.c:56
static IClassFactoryImpl DPVOICE_CFS[]
Definition: main.c:92
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

◆ impl_from_IClassFactory()

static IClassFactoryImpl * impl_from_IClassFactory ( IClassFactory *  iface)
inlinestatic

Definition at line 43 of file main.c.

44{
45 return CONTAINING_RECORD(iface, IClassFactoryImpl, IClassFactory_iface);
46}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( dpvoice  )

Variable Documentation

◆ DICF_Vtbl

const IClassFactoryVtbl DICF_Vtbl
static
Initial value:
= {
}
static ULONG WINAPI DICF_Release(LPCLASSFACTORY iface)
Definition: main.c:62
static HRESULT WINAPI DICF_LockServer(IClassFactory *iface, BOOL dolock)
Definition: main.c:77
static HRESULT WINAPI DICF_QueryInterface(LPCLASSFACTORY iface, REFIID riid, void **ppobj)
Definition: main.c:48
static HRESULT WINAPI DICF_CreateInstance(IClassFactory *iface, IUnknown *pOuter, REFIID riid, void **ppobj)
Definition: main.c:69

Definition at line 84 of file main.c.

◆ DPVOICE_CFS

IClassFactoryImpl DPVOICE_CFS[]
static
Initial value:
=
{
{ { &DICF_Vtbl }, 1, &CLSID_DirectPlayVoiceClient, DPVOICE_CreateDirectPlayVoiceClient },
{ { &DICF_Vtbl }, 1, &CLSID_DirectPlayVoiceServer, DPVOICE_CreateDirectPlayVoiceServer },
{ { &DICF_Vtbl }, 1, &CLSID_DirectPlayVoiceTest, DPVOICE_CreateDirectPlayVoiceTest },
{ { NULL }, 0, NULL, NULL }
}
HRESULT DPVOICE_CreateDirectPlayVoiceTest(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppobj)
Definition: client.c:300
HRESULT DPVOICE_CreateDirectPlayVoiceClient(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppobj)
Definition: client.c:224
static const IClassFactoryVtbl DICF_Vtbl
Definition: main.c:84
HRESULT DPVOICE_CreateDirectPlayVoiceServer(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppobj)
Definition: server.c:213

Definition at line 92 of file main.c.

Referenced by DllGetClassObject().