summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/mfc30/ole2ansi.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--public/sdk/inc/mfc30/ole2ansi.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/public/sdk/inc/mfc30/ole2ansi.h b/public/sdk/inc/mfc30/ole2ansi.h
new file mode 100644
index 000000000..03907993b
--- /dev/null
+++ b/public/sdk/inc/mfc30/ole2ansi.h
@@ -0,0 +1,86 @@
+//+--------------------------------------------------------------------------
+//
+// Copyright (C) 1994, Microsoft Corporation. All Rights Reserved.
+//
+// File: ole2ansi.h
+//
+// Contents: API include file for MFCANS32.DLL users.
+// Provides direct access to the wrapper APIs.
+//
+// History: 25-Oct-94 deanm Created.
+//
+//---------------------------------------------------------------------------
+
+#ifndef _OLE2ANSI_H_
+#define _OLE2ANSI_H_
+
+//
+// Ole2AnsiSetFlags
+//
+// This function affects per-task options for MFCANS32.DLL. It should
+// be called at initialization before any OLE calls are made(if at all).
+// The default flags are zero, and are that way for backward compatibility
+// to previous versions of the DLL.
+//
+// OLE2ANSI_WRAPCUSTOM - Use if you wish custom interfaces to be wrapped.
+// (Note: when a custom interface is wrapped its vtable must contain
+// 128 or less vtable entries)
+// By default this option is not on to avoid breaking applications
+// that rely on the original non-wrapping of custom interfaces.
+//
+// OLE2ANSI_AGGREGATION - Use if you use aggregation in your application.
+// Using this option "turns off" a couple of bugs in the original
+// implementation where aggregation was not handled correctly. By default
+// the library operates in a mode where this bug is not fixed, since
+// applications may have worked around the bug in such a way that fixing
+// it in the library itself breaks those applications.
+
+STDAPI Ole2AnsiSetFlags(DWORD dwFlags, DWORD* pdwOldFlags);
+STDAPI_(DWORD) Ole2AnsiGetFlags(void);
+
+// Ole2AnsiSetFlags option flags
+#define OLE2ANSI_WRAPCUSTOM 0x00000001L
+#define OLE2ANSI_AGGREGATION 0x00000002L
+
+//
+// Ole2AnsiSetHashSizes
+//
+// The MFCANS32.DLL uses a number of different hash tables to manage
+// object and interface identity. The default size should handle most
+// applications and should keep object searches down to a minumum.
+// If your application creates a large number of objects managed by
+// the MFCANS32.DLL, you might want to bump these values up.
+//
+// nHashSize - Determines the size of the hash tables used to map
+// wrappers to native objects and native objects to wrappers.
+// The default is 1021.
+//
+// nGuidSize - Determines the size of the hash table used to manage
+// sets of custom GUIDs. This table is only used if you use
+// automation dual interfaces or custom interfaces. The default
+// is 71.
+//
+// It is best to use a prime number for both values.
+
+STDAPI Ole2AnsiSetHashSizes(int nHashSize, int nGuidSize);
+
+//
+// Ole2AnsiAFromW
+// Ole2AnsiWFromA
+//
+// These functions return either wide or ansi wrappers for a given
+// interface. For any given interface, only one wrapper will ever
+// be returned (ie. it is reference counted). In addition, a
+// wrapper will never be "wrapped again", at least not in the same
+// address space.
+//
+// Usually direct calls to these APIs are not necessary since the
+// MFCANS32.DLL provides "thunking" entry-points for all the OLE
+// APIs. Use these functions when you obtain interface pointers outside
+// the documented OLE APIs. Commonly these functions are used in an
+// ANSI inproc server in its DllGetClassObject.
+
+STDAPI Ole2AnsiAFromW(REFIID riid, LPUNKNOWN pWrappee, LPUNKNOWN * ppWrapper);
+STDAPI Ole2AnsiWFromA(REFIID riid, LPUNKNOWN pWrappee, LPUNKNOWN * ppWrapper);
+
+#endif //_OLE2ANSI_H_