Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
199 lines
7.1 KiB
C++
199 lines
7.1 KiB
C++
#ifndef _WABAPI_H_
|
|
#define _WABAPI_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifdef WIN16
|
|
#ifdef GetLastError
|
|
#undef GetLastError
|
|
#endif // GetLastError
|
|
#endif // WIN16
|
|
|
|
/* IWABObject Interface ---------------------------------------------------- */
|
|
|
|
#define CBIWABOBJECT sizeof(IWABOBJECT)
|
|
|
|
|
|
#define WAB_IWABOBJECT_METHODS(IPURE) \
|
|
MAPIMETHOD(GetLastError) \
|
|
(THIS_ HRESULT hResult, \
|
|
ULONG ulFlags, \
|
|
LPMAPIERROR FAR * lppMAPIError) IPURE; \
|
|
MAPIMETHOD(AllocateBuffer) \
|
|
(THIS_ ULONG cbSize, \
|
|
LPVOID FAR * lppBuffer) IPURE; \
|
|
MAPIMETHOD(AllocateMore) \
|
|
(THIS_ ULONG cbSize, \
|
|
LPVOID lpObject, \
|
|
LPVOID FAR * lppBuffer) IPURE; \
|
|
MAPIMETHOD(FreeBuffer) \
|
|
(THIS_ LPVOID lpBuffer) IPURE; \
|
|
MAPIMETHOD(Backup) \
|
|
(THIS_ LPTSTR lpFileName) IPURE; \
|
|
MAPIMETHOD(Import) \
|
|
(THIS_ LPTSTR lpFileName) IPURE; \
|
|
MAPIMETHOD(Find) \
|
|
(THIS_ LPADRBOOK lpIAB, \
|
|
HWND hWnd) IPURE; \
|
|
MAPIMETHOD(VCardDisplay) \
|
|
(THIS_ LPADRBOOK lpIAB, \
|
|
HWND hWnd, \
|
|
LPTSTR lpszFileName) IPURE; \
|
|
MAPIMETHOD(LDAPUrl) \
|
|
(THIS_ LPADRBOOK lpIAB, \
|
|
HWND hWnd, \
|
|
ULONG ulFlags, \
|
|
LPTSTR lpszURL, \
|
|
LPMAILUSER *lppMailUser) IPURE; \
|
|
MAPIMETHOD(VCardCreate) \
|
|
(THIS_ LPADRBOOK lpIAB, \
|
|
ULONG ulFlags, \
|
|
LPTSTR lpszVCard, \
|
|
LPMAILUSER lpMailUser) IPURE; \
|
|
MAPIMETHOD(VCardRetrieve) \
|
|
(THIS_ LPADRBOOK lpIAB, \
|
|
ULONG ulFlags, \
|
|
LPTSTR lpszVCard, \
|
|
LPMAILUSER *lppMailUser) IPURE; \
|
|
MAPIMETHOD(GetMe) \
|
|
(THIS_ LPADRBOOK lpIAB, \
|
|
ULONG ulFlags, \
|
|
DWORD * lpdwAction, \
|
|
SBinary * lpsbEID, \
|
|
ULONG ulReserved) IPURE; \
|
|
MAPIMETHOD(SetMe) \
|
|
(THIS_ LPADRBOOK lpIAB, \
|
|
ULONG ulFlags, \
|
|
SBinary sbEID, \
|
|
ULONG ulReserved) IPURE; \
|
|
|
|
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IWABObject
|
|
DECLARE_MAPI_INTERFACE_(IWABObject, IUnknown)
|
|
{
|
|
BEGIN_INTERFACE
|
|
MAPI_IUNKNOWN_METHODS(PURE)
|
|
WAB_IWABOBJECT_METHODS(PURE)
|
|
};
|
|
|
|
DECLARE_MAPI_INTERFACE_PTR(IWABObject, LPWABOBJECT);
|
|
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE struct _IWABOBJECT
|
|
|
|
#undef METHOD_PREFIX
|
|
#define METHOD_PREFIX IWABOBJECT_
|
|
|
|
#undef LPVTBL_ELEM
|
|
#define LPVTBL_ELEM lpvtbl
|
|
|
|
#undef MAPIMETHOD_
|
|
#define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, IWABOBJECT_)
|
|
MAPI_IUNKNOWN_METHODS(IMPL)
|
|
WAB_IWABOBJECT_METHODS(IMPL)
|
|
#undef MAPIMETHOD_
|
|
#define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, IWABOBJECT_)
|
|
MAPI_IUNKNOWN_METHODS(IMPL)
|
|
WAB_IWABOBJECT_METHODS(IMPL)
|
|
#undef MAPIMETHOD_
|
|
#define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
|
|
|
|
DECLARE_MAPI_INTERFACE(IWABOBJECT_)
|
|
{
|
|
BEGIN_INTERFACE
|
|
MAPI_IUNKNOWN_METHODS(IMPL)
|
|
WAB_IWABOBJECT_METHODS(IMPL)
|
|
};
|
|
|
|
|
|
// WABObject_LDAPUrl flag
|
|
// If this flag is specified and the LDAPUrl returns a single
|
|
// query result, instructs the WAB to return the result in the
|
|
// form of a MailUser object instead of displaying Details on it
|
|
// If there are multiple results to the query, fail ..
|
|
#define WABOBJECT_LDAPURL_RETURN_MAILUSER 0x00000001
|
|
|
|
|
|
// WABObject_GetMe returned parameter
|
|
// If the GetMe call results in the creation of a new 'Me' contact,
|
|
// the lpdwAction returned parameter will contain this value
|
|
// indicating to the caller that the object is freshly created and
|
|
// does not have an properties in it
|
|
#define WABOBJECT_ME_NEW 0x00000001
|
|
|
|
|
|
// IWABObject_VCard Create/Retrieve
|
|
// Flags the WAB whether the lpszVCard parameter is a filename or if
|
|
// it is a NULL terminated string containing the compelte VCard contents
|
|
//
|
|
#define WAB_VCARD_FILE 0x00000000
|
|
#define WAB_VCARD_STREAM 0x00000001
|
|
|
|
#ifdef WIN16
|
|
BOOL WINAPI WABInitThread();
|
|
#endif
|
|
|
|
//
|
|
// Input information to pass to WABOpen
|
|
//
|
|
typedef struct _tagWAB_PARAM
|
|
{
|
|
ULONG cbSize; // sizeof(WAB_PARAM).
|
|
HWND hwnd; // hWnd of calling client Application. Can be NULL
|
|
LPTSTR szFileName; // WAB File name to open. if NULL, opens default.
|
|
ULONG ulFlags; // Currently no flags.
|
|
} WAB_PARAM, * LPWAB_PARAM;
|
|
|
|
//
|
|
// Root public entry points for WAB API
|
|
//
|
|
STDMETHODIMP WABOpen(LPADRBOOK FAR * lppAdrBook, LPWABOBJECT FAR * lppWABObject,
|
|
LPWAB_PARAM lpWP, DWORD Reserved2);
|
|
|
|
typedef HRESULT (STDMETHODCALLTYPE WABOPEN)(
|
|
LPADRBOOK FAR * lppAdrBook,
|
|
LPWABOBJECT FAR * lppWABObject,
|
|
LPWAB_PARAM lpWP,
|
|
DWORD Reserved2
|
|
);
|
|
typedef WABOPEN FAR * LPWABOPEN;
|
|
|
|
|
|
STDMETHODIMP WABOpenEx(LPADRBOOK FAR * lppAdrBook,
|
|
LPWABOBJECT FAR * lppWABObject,
|
|
LPWAB_PARAM lpWP,
|
|
DWORD Reserved,
|
|
ALLOCATEBUFFER * fnAllocateBuffer,
|
|
ALLOCATEMORE * fnAllocateMore,
|
|
FREEBUFFER * fnFreeBuffer);
|
|
|
|
typedef HRESULT (STDMETHODCALLTYPE WABOPENEX)(
|
|
LPADRBOOK FAR * lppAdrBook,
|
|
LPWABOBJECT FAR * lppWABObject,
|
|
LPWAB_PARAM lpWP,
|
|
DWORD Reserved,
|
|
ALLOCATEBUFFER * fnAllocateBuffer,
|
|
ALLOCATEMORE * fnAllocateMore,
|
|
FREEBUFFER * fnFreeBuffer
|
|
);
|
|
typedef WABOPENEX FAR * LPWABOPENEX;
|
|
|
|
#ifndef WIN16
|
|
#define WAB_DLL_NAME "WAB32.DLL"
|
|
#else
|
|
#define WAB_DLL_NAME "WAB16.DLL"
|
|
#endif
|
|
|
|
#define WAB_DLL_PATH_KEY TEXT("Software\\Microsoft\\WAB\\DLLPath")
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _WABAPI_H */
|