admin
base
com
developer
drivers
ds
enduser
inetcore
inetsrv
loc
mergedcomponents
multimedia
danim
ddk
directx
applicationmanager
ddraw
ddrawex
deliveryimages
dinput
dmusic
dplay
bldcfg
dnet
common
core
daytona
win9x
appdesc.cpp
appdesc.h
async.cpp
async.h
asyncop.cpp
asyncop.h
callbackthread.h
cancel.cpp
cancel.h
caps.cpp
caps.h
classfac.h
client.cpp
client.h
common.cpp
common.h
comstuff.h
connect.h
connection.cpp
connection.h
coreclassfac.cpp
coreconnect.cpp
coredllmain.cpp
corehandletable.cpp
corepools.cpp
corereceive.cpp
corevoice.cpp
dirs
disconnect.cpp
dncore.h
dncorei.h
dnet.def
dnet.rc
dpprot.h
enum_sp.cpp
enum_sp.h
enumhosts.cpp
enumhosts.h
globals.cpp
groupcon.cpp
groupcon.h
groupmem.cpp
groupmem.h
handletable.h
memoryfpm.cpp
memoryfpm.h
message.cpp
message.h
migration.cpp
msghandler.cpp
nametable.cpp
nametable.h
ntentry.cpp
ntentry.h
ntop.h
ntoplist.cpp
ntoplist.h
paramval.cpp
paramval.h
peer.cpp
peer.h
pendingdel.h
pools.h
protocol.cpp
protocol.h
queuedmsg.cpp
queuedmsg.h
receive.h
request.cpp
request.h
server.cpp
server.h
servprov.cpp
servprov.h
sources.inc
spmessages.cpp
spmessages.h
syncevent.cpp
syncevent.h
user.cpp
user.h
verify.cpp
verify.h
voice.h
worker.cpp
worker.h
workerjob.h
dnaddress
dpnsvr
guids
inc
lobby
protocol
sp
dirs
dplay
dplobby
dpnathlp
dvoice
misc
oldbin
tools
dirs
dsound
dxcrt
dxdiag
dxg
dxvb
gamectrl
inc
loc
misc
dirs
project.mk
dshow
embedded
inc
lib
media
netshow
opengl
private
published
reality
resmgr
dirs
multimedia.mk
project.mk
net
printscan
public
published
sdktools
shell
termsrv
tools
windows
dirs
makefil0
105 lines
3.5 KiB
C
105 lines
3.5 KiB
C
/*==========================================================================
|
|
*
|
|
* Copyright (C) 2000 Microsoft Corporation. All Rights Reserved.
|
|
*
|
|
* File: ClassFac.h
|
|
* Content: DirectNet class factory header file
|
|
*@@BEGIN_MSINTERNAL
|
|
* History:
|
|
* Date By Reason
|
|
* ==== == ======
|
|
* 10/08/99 jtk Created
|
|
* 05/04/00 mjn Cleaned up functions
|
|
* 06/09/00 rmt Updates to split CLSID and allow whistler compat and support external create funcs
|
|
*@@END_MSINTERNAL
|
|
*
|
|
***************************************************************************/
|
|
|
|
#ifndef __CLASSFAC_H__
|
|
#define __CLASSFAC_H__
|
|
|
|
//**********************************************************************
|
|
// Constant definitions
|
|
//**********************************************************************
|
|
|
|
//**********************************************************************
|
|
// Macro definitions
|
|
//**********************************************************************
|
|
|
|
//**********************************************************************
|
|
// Structure definitions
|
|
//**********************************************************************
|
|
|
|
typedef struct _INTERFACE_LIST INTERFACE_LIST;
|
|
typedef struct _OBJECT_DATA OBJECT_DATA;
|
|
|
|
//
|
|
// COM interface for class factory
|
|
//
|
|
#undef INTERFACE // External COM Implementation
|
|
#define INTERFACE IDirectNetClassFact
|
|
DECLARE_INTERFACE_(IDirectNetClassFact,IUnknown)
|
|
{
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
STDMETHOD(CreateInstance) (THIS_ LPUNKNOWN lpUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
|
|
STDMETHOD(LockServer) (THIS_ BOOL bLock) PURE;
|
|
};
|
|
|
|
|
|
typedef struct _IDirectNetClassFact { // Internal Implementation (overlay's external imp.)
|
|
IDirectNetClassFactVtbl *lpVtbl; // lpVtbl Must be first element (to match external imp.)
|
|
DWORD dwRefCount;
|
|
DWORD dwLocks;
|
|
GUID clsid;
|
|
} _IDirectNetClassFact, *_LPIDirectNetClassFact;
|
|
|
|
//**********************************************************************
|
|
// Variable definitions
|
|
//**********************************************************************
|
|
|
|
//
|
|
// VTable for class factory
|
|
//
|
|
extern IDirectNetClassFactVtbl DNCF_Vtbl;
|
|
|
|
//**********************************************************************
|
|
// Function prototypes
|
|
//**********************************************************************
|
|
|
|
//
|
|
// DirectNet - IUnknown
|
|
//
|
|
STDMETHODIMP DN_QueryInterface(void *pInterface,
|
|
REFIID riid,
|
|
void **ppv);
|
|
|
|
STDMETHODIMP_(ULONG) DN_AddRef(void *pInterface);
|
|
|
|
STDMETHODIMP_(ULONG) DN_Release(void *pInterface);
|
|
|
|
//
|
|
// Class Factory
|
|
//
|
|
STDMETHODIMP DNCF_QueryInterface(IDirectNetClassFact *pInterface,REFIID riid,LPVOID *ppvObj);
|
|
STDMETHODIMP_(ULONG) DNCF_AddRef(IDirectNetClassFact *pInterface);
|
|
STDMETHODIMP_(ULONG) DNCF_Release(IDirectNetClassFact *pInterface);
|
|
STDMETHODIMP DNCF_CreateInstance(IDirectNetClassFact *pInterface,LPUNKNOWN lpUnkOuter,REFIID riid,LPVOID *ppv);
|
|
STDMETHODIMP DNCF_LockServer(IDirectNetClassFact *pInterface,BOOL bLock);
|
|
|
|
// Class Factory - supporting
|
|
|
|
HRESULT DNCF_CreateObject(LPVOID *lplpv,REFIID riid);
|
|
HRESULT DNCF_FreeObject(LPVOID lpv);
|
|
|
|
static HRESULT DN_CreateInterface(OBJECT_DATA *pObject,
|
|
REFIID riid,
|
|
INTERFACE_LIST **const ppv);
|
|
|
|
INTERFACE_LIST *DN_FindInterface(void *pInterface,
|
|
REFIID riid);
|
|
|
|
|
|
#endif // __CLASSFAC_H__
|