diff options
Diffstat (limited to 'public/sdk/inc/mfc30/afxdll_.h')
-rw-r--r-- | public/sdk/inc/mfc30/afxdll_.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/public/sdk/inc/mfc30/afxdll_.h b/public/sdk/inc/mfc30/afxdll_.h new file mode 100644 index 000000000..f1734498d --- /dev/null +++ b/public/sdk/inc/mfc30/afxdll_.h @@ -0,0 +1,90 @@ +// Microsoft Foundation Classes C++ library. +// Copyright (C) 1992 Microsoft Corporation, +// All rights reserved. + +// This source code is only intended as a supplement to the +// Microsoft Foundation Classes Reference and Microsoft +// QuickHelp and/or WinHelp documentation provided with the library. +// See these sources for detailed information regarding the +// Microsoft Foundation Classes product. + +// afxdll_.h - extensions to AFXWIN.H used for the 'AFXDLL' version +// This file contains MFC library implementation details as well +// as APIs for writing MFC Extension DLLs. +// Please refer to Technical Note 033 (TN033) for more details. + +///////////////////////////////////////////////////////////////////////////// + +#ifndef _AFXDLL + #error file must be compiled with _AFXDLL +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +///////////////////////////////////////////////////////////////////////////// + +// AFX_EXTENSION_MODULE - special struct used during DLL initialization + +struct AFX_EXTENSION_MODULE +{ + BOOL bInitialized; + HMODULE hModule; + HMODULE hResource; + CRuntimeClass* pFirstSharedClass; + COleObjectFactory* pFirstSharedFactory; +}; + +///////////////////////////////////////////////////////////////////////////// +// CDynLinkLibrary - for implementation of MFC Extension DLLs + +class COleObjectFactory; + +class CDynLinkLibrary : public CCmdTarget +{ + DECLARE_DYNAMIC(CDynLinkLibrary) +public: + +// Constructor + CDynLinkLibrary(AFX_EXTENSION_MODULE& state); + +// Attributes + HMODULE m_hModule; + HMODULE m_hResource; // for shared resources + CRuntimeClass* m_pFirstSharedClass; + COleObjectFactory* m_pFirstSharedFactory; + BOOL m_bSystem; // TRUE only for MFC DLLs + +// Implementation +public: + CDynLinkLibrary* m_pNextDLL; // simple singly linked list + virtual ~CDynLinkLibrary(); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif //_DEBUG +}; + +// get best fitting resource +HINSTANCE AFXAPI AfxFindResourceHandle(LPCTSTR lpszName, LPCTSTR lpszType); + +// Call in DLL's LibMain +BOOL AFXAPI AfxInitExtensionModule(AFX_EXTENSION_MODULE& state, HMODULE hMod); + +// Optional: call on final process detach in your DLL +// (not necessary unless clients can dynamically load/unload your DLL) +void AFXAPI AfxTermExtensionModule(AFX_EXTENSION_MODULE& state); + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +///////////////////////////////////////////////////////////////////////////// |