mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
3.3 KiB
86 lines
3.3 KiB
//+--------------------------------------------------------------------------
|
|
//
|
|
// 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_
|