|
|
/****************************************************************************
Copyright (c) 1995-1999 Microsoft Corporation Module Name: private.h ****************************************************************************/
#pragma once
#include "tapsrv.h"
#ifdef __cplusplus
extern "C"{ #endif
//***************************************************************************
//***************************************************************************
//***************************************************************************
void AllocNewID( HKEY MainKey, LPDWORD lpdw ); void PASCAL WideStringToNotSoWideString( LPBYTE lpBase, LPDWORD lpdwThing ); PWSTR PASCAL MultiToWide( LPCSTR lpStr ); PWSTR PASCAL NotSoWideStringToWideString( LPCSTR lpStr, DWORD dwLength );
//***************************************************************************
//***************************************************************************
//***************************************************************************
typedef enum { Dword, lpDword, hXxxApp, hXxxApp_NULLOK, // lpsz,
lpszW, lpGet_SizeToFollow, lpSet_SizeToFollow, lpSet_Struct, lpGet_Struct, Size, Hwnd
} ARG_TYPE;
typedef struct _FUNC_ARGS { DWORD Flags;
ULONG_PTR Args[MAX_TAPI_FUNC_ARGS];
BYTE ArgTypes[MAX_TAPI_FUNC_ARGS];
} FUNC_ARGS, *PFUNC_ARGS;
typedef struct _UI_REQUEST_THREAD_PARAMS { BOOL bRequestCompleted;
PFUNC_ARGS pFuncArgs;
LONG lResult;
} UI_REQUEST_THREAD_PARAMS, *PUI_REQUEST_THREAD_PARAMS;
typedef struct _INIT_DATA { DWORD dwKey;
DWORD dwInitOptions;
union { HWND hwnd;
HANDLE hEvent;
HANDLE hCompletionPort; };
union { LINECALLBACK lpfnCallback;
DWORD dwCompletionKey; };
HLINEAPP hXxxApp;
BOOL bPendingAsyncEventMsg;
DWORD dwNumTotalEntries;
DWORD dwNumUsedEntries;
PASYNC_EVENT_PARAMS pEventBuffer;
PASYNC_EVENT_PARAMS pValidEntry;
PASYNC_EVENT_PARAMS pFreeEntry;
DWORD dwNumLines;
BOOL bLine;
DWORD dwThreadID;
DWORD hInitData;
} INIT_DATA, *PINIT_DATA;
//
// Private Error codes
//
#define TAPIERR_NOSERVICECONTROL 0xF100
#define TAPIERR_INVALRPCCONTEXT 0xF101
#if DBG
#define DBGOUT(arg) DbgPrt arg
VOID DbgPrt( IN DWORD dwDbgLevel, IN LPTSTR DbgMessage, IN ... );
extern DWORD gdwDebugLevel;
#define DOFUNC(arg1,arg2) DoFunc(arg1,arg2)
LONG WINAPI DoFunc( PFUNC_ARGS pFuncArgs, char *pszFuncName );
#else
#define DBGOUT(arg)
#define DOFUNC(arg1,arg2) DoFunc(arg1)
LONG WINAPI DoFunc( PFUNC_ARGS pFuncArgs );
#endif
BOOL WINAPI SetTlsPCtxHandle( PCONTEXT_HANDLE_TYPE phCtxHandle );
PCONTEXT_HANDLE_TYPE WINAPI GetTlsPCtxHandle( void );
#ifdef __cplusplus
} #endif
#if DBG
#define DWORD_CAST(v,f,l) (((v)>MAXDWORD)?(DbgPrt(0,L"DWORD_CAST: information will be lost during cast from %p in file %s, line %d",(v),(f),(l)), DebugBreak(),((DWORD)(v))):((DWORD)(v)))
#else
#define DWORD_CAST(v,f,l) (DWORD)(v)
#endif //DBG
|