diff options
Diffstat (limited to '')
-rw-r--r-- | public/sdk/inc/mfc30/ole2ansi.h | 86 |
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_ |