Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

139 lines
3.8 KiB

// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1995 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.
#include "stdafx.h"
HINSTANCE volatile _hOlePropLib = NULL;
HRESULT (STDAPICALLTYPE *_pfnOleCreatePropertyFrame)(HWND, UINT, UINT,
LPCOLESTR, ULONG, LPUNKNOWN*, ULONG, LPCLSID, LCID, DWORD, LPVOID) =
NULL;
HRESULT (STDAPICALLTYPE *_pfnOleCreatePropertyFrameIndirect)(LPOCPFIPARAMS) =
NULL;
HRESULT (STDAPICALLTYPE *_pfnOleTranslateColor)(OLE_COLOR, HPALETTE,
COLORREF*) = NULL;
HRESULT (STDAPICALLTYPE *_pfnOleCreateFontIndirect)(LPFONTDESC, REFIID,
LPVOID*) = NULL;
HRESULT (STDAPICALLTYPE *_pfnOleCreatePictureIndirect)(LPPICTDESC, REFIID,
BOOL, LPVOID*) = NULL;
HRESULT (STDAPICALLTYPE *_pfnOleLoadPicture)(LPSTREAM, LONG, BOOL, REFIID,
LPVOID*) = NULL;
FARPROC AFXAPI _GetOlePropLibFunc(LPCSTR pszFuncName)
{
if (_hOlePropLib == NULL)
{
AfxLockGlobals(CRIT_DYNDLLLOAD);
if (_hOlePropLib == NULL)
{
#ifndef _MAC
_hOlePropLib = LoadLibraryA("OLEPRO32.DLL");
#else
_hOlePropLib = LoadLibraryEx("OLEPRO32.DLL", NULL, LOAD_BY_FRAGMENT_NAME);
#endif
}
AfxUnlockGlobals(CRIT_DYNDLLLOAD);
}
FARPROC pfnProc = NULL;
if (_hOlePropLib != NULL)
pfnProc = GetProcAddress(_hOlePropLib, pszFuncName);
return pfnProc;
}
STDAPI OleCreatePropertyFrame(HWND hwndOwner, UINT x, UINT y,
LPCOLESTR lpszCaption, ULONG cObjects, LPUNKNOWN* ppUnk, ULONG cPages,
LPCLSID pPageClsID, LCID lcid, DWORD dwReserved, LPVOID pvReserved)
{
if (_pfnOleCreatePropertyFrame == NULL)
{
(FARPROC&)_pfnOleCreatePropertyFrame =
_GetOlePropLibFunc("OleCreatePropertyFrame");
if (_pfnOleCreatePropertyFrame == NULL)
return E_FAIL;
}
return (*_pfnOleCreatePropertyFrame)(hwndOwner, x, y, lpszCaption,
cObjects, ppUnk, cPages, pPageClsID, lcid, dwReserved, pvReserved);
}
STDAPI OleCreatePropertyFrameIndirect(LPOCPFIPARAMS lpParams)
{
if (_pfnOleCreatePropertyFrameIndirect == NULL)
{
(FARPROC&)_pfnOleCreatePropertyFrameIndirect =
_GetOlePropLibFunc("OleCreatePropertyFrameIndirect");
if (_pfnOleCreatePropertyFrameIndirect == NULL)
return E_FAIL;
}
return (*_pfnOleCreatePropertyFrameIndirect)(lpParams);
}
STDAPI OleTranslateColor(OLE_COLOR clr, HPALETTE hpal, COLORREF* lpcolorref)
{
if (_pfnOleTranslateColor == NULL)
{
(FARPROC&)_pfnOleTranslateColor =
_GetOlePropLibFunc("OleTranslateColor");
if (_pfnOleTranslateColor == NULL)
return E_FAIL;
}
return (*_pfnOleTranslateColor)(clr, hpal, lpcolorref);
}
STDAPI OleCreateFontIndirect(LPFONTDESC lpFontDesc, REFIID riid,
LPVOID* lplpvObj)
{
if (_pfnOleCreateFontIndirect == NULL)
{
(FARPROC&)_pfnOleCreateFontIndirect =
_GetOlePropLibFunc("OleCreateFontIndirect");
if (_pfnOleCreateFontIndirect == NULL)
return E_FAIL;
}
return (*_pfnOleCreateFontIndirect)(lpFontDesc, riid, lplpvObj);
}
STDAPI OleCreatePictureIndirect(LPPICTDESC lpPictDesc, REFIID riid, BOOL fOwn,
LPVOID* lplpvObj)
{
if (_pfnOleCreatePictureIndirect == NULL)
{
(FARPROC&)_pfnOleCreatePictureIndirect =
_GetOlePropLibFunc("OleCreatePictureIndirect");
if (_pfnOleCreatePictureIndirect == NULL)
return E_FAIL;
}
return (*_pfnOleCreatePictureIndirect)(lpPictDesc, riid, fOwn, lplpvObj);
}
STDAPI OleLoadPicture(LPSTREAM lpstream, LONG lSize, BOOL fRunmode,
REFIID riid, LPVOID* lplpvObj)
{
if (_pfnOleLoadPicture == NULL)
{
(FARPROC&)_pfnOleLoadPicture =
_GetOlePropLibFunc("OleLoadPicture");
if (_pfnOleLoadPicture == NULL)
return E_FAIL;
}
return (*_pfnOleLoadPicture)(lpstream, lSize, fRunmode, riid, lplpvObj);
}