summaryrefslogtreecommitdiffstats
path: root/private/oleauto/tests/sdisptst/sdisptst.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/oleauto/tests/sdisptst/sdisptst.h')
-rw-r--r--private/oleauto/tests/sdisptst/sdisptst.h120
1 files changed, 120 insertions, 0 deletions
diff --git a/private/oleauto/tests/sdisptst/sdisptst.h b/private/oleauto/tests/sdisptst/sdisptst.h
new file mode 100644
index 000000000..b02b89dce
--- /dev/null
+++ b/private/oleauto/tests/sdisptst/sdisptst.h
@@ -0,0 +1,120 @@
+/***
+*sdisptst.h
+*
+* Copyright (C) 1992, Microsoft Corporation. All Rights Reserved.
+* Information Contained Herein Is Proprietary and Confidential.
+*
+*Purpose:
+* Master/Global include for the IDispatch test server.
+*
+*Revision History:
+*
+* [00] 29-Oct-92 bradlo: Created (added this nice header).
+*
+*Implementation Notes:
+*
+*****************************************************************************/
+
+#ifndef _SDISPTST_H_ /* { */
+#define _SDISPTST_H_
+
+#include "common.h"
+#include "clsid.h"
+#include "testhelp.h"
+#include "resource.h"
+
+// REVIEW: not sure what the following should be for win32
+#ifndef EXPORT
+#define EXPORT __export
+#endif
+
+// calling convention madness -
+//
+// For both win16 and win32, Ole2 specifies a "standard" method
+// calling convention. On both platforms the c/c++ compiler has
+// at least one other major calling convention that we support
+// in the TypeInfo driven implementation of Invoke, so we have added
+// the notion of an "alternate" calling convention - as defined below.
+//
+
+
+#if OE_WIN32
+# define CC_STDMETH CC_STDCALL
+# define CC_ALTMETH CC_CDECL
+# define ALTMETHODCALLTYPE __cdecl
+#elif OE_MAC68K
+# if HC_MPW
+# define CC_STDMETH CC_MPWCDECL
+# define CC_ALTMETH CC_MPWPASCAL
+# define ALTMETHODCALLTYPE pascal
+# else
+# define CC_STDMETH CC_CDECL
+# define CC_ALTMETH CC_MACPASCAL
+# define ALTMETHODCALLTYPE __pascal
+# endif
+#elif OE_MACPPC
+# define CC_STDMETH CC_CDECL
+# define CC_ALTMETH CC_STDCALL
+# define ALTMETHODCALLTYPE __stdcall
+#else /* OE_WIN16 */
+# define CC_STDMETH CC_CDECL
+# define CC_ALTMETH CC_PASCAL
+# define ALTMETHODCALLTYPE __pascal
+#endif
+
+#define ALTMETHOD_(TYPE, METHOD) virtual TYPE ALTMETHODCALLTYPE EXPORT METHOD
+#define ALTMETHOD(METHOD) ALTMETHOD_(HRESULT, METHOD)
+
+#define ALTMETHODIMP_(TYPE) TYPE ALTMETHODCALLTYPE EXPORT
+#define ALTMETHODIMP ALTMETHODIMP_(HRESULT)
+
+extern unsigned int g_fVerbose;
+
+extern unsigned int IncObjectCount(void);
+extern unsigned int DecObjectCount(void);
+
+EXTERN_C void DoPrintf(char *sz, ...);
+
+STDAPI InitOle(void);
+STDAPI UninitOle(void);
+
+
+
+// the following probably belongs elsewhere, but...
+#ifdef __cplusplus /* { */
+
+// A generic class factory implementation shared by all objects
+// exposed by Sdisptst.
+//
+class CClassFactory : public IClassFactory
+{
+public:
+ static HRESULT Create(
+ HRESULT (*pfnCreate)(IUnknown FAR* punkOuter, IUnknown FAR* FAR* ppunk),
+ IClassFactory FAR* FAR* ppcf);
+
+ // IUnknown methods
+ //
+ STDMETHOD(QueryInterface)(REFIID iid, void FAR* FAR* ppv);
+ STDMETHOD_(unsigned long, AddRef)(void);
+ STDMETHOD_(unsigned long, Release)(void);
+
+ STDMETHOD(CreateInstance)(
+ IUnknown FAR* punkOuter, REFIID riid, void FAR* FAR* ppv);
+#if OE_MAC
+ STDMETHOD(LockServer)(unsigned long fLock);
+#else
+ STDMETHOD(LockServer)(BOOL fLock);
+#endif
+
+protected:
+ CClassFactory();
+
+private:
+ unsigned long m_refs;
+ HRESULT (*m_pfnCreate)(IUnknown FAR* punkOuter, IUnknown FAR* FAR* ppunk);
+};
+
+#endif /* } */
+
+#endif /* } */