diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /public/sdk/inc/mfc42 | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to 'public/sdk/inc/mfc42')
149 files changed, 47748 insertions, 0 deletions
diff --git a/public/sdk/inc/mfc42/afx.h b/public/sdk/inc/mfc42/afx.h new file mode 100644 index 000000000..bcbf102f1 --- /dev/null +++ b/public/sdk/inc/mfc42/afx.h @@ -0,0 +1,1916 @@ +// 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. + +#ifndef __AFX_H__ +#define __AFX_H__ + +#ifndef __cplusplus + #error MFC requires C++ compilation (use a .cpp suffix) +#endif + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#include <afxver_.h> // Target version control + +#ifndef _AFX_NOFORCE_LIBS +#ifndef _MAC + +///////////////////////////////////////////////////////////////////////////// +// Win32 libraries + +#ifndef _AFXDLL + #ifndef _UNICODE + #ifdef _DEBUG + #pragma comment(lib, "nafxcwd.lib") + #else + #pragma comment(lib, "nafxcw.lib") + #endif + #else + #ifdef _DEBUG + #pragma comment(lib, "uafxcwd.lib") + #else + #pragma comment(lib, "uafxcw.lib") + #endif + #endif +#else + #ifndef _UNICODE + #ifdef _DEBUG + #pragma comment(lib, "mfc42d.lib") + #pragma comment(lib, "mfcs42d.lib") + #else + #pragma comment(lib, "mfc42.lib") + #pragma comment(lib, "mfcs42.lib") + #endif + #else + #ifdef _DEBUG + #pragma comment(lib, "mfc42ud.lib") + #pragma comment(lib, "mfcs42ud.lib") + #else + #pragma comment(lib, "mfc42u.lib") + #pragma comment(lib, "mfcs42u.lib") + #endif + #endif +#endif + +#ifdef _DLL + #if !defined(_AFX_NO_DEBUG_CRT) && defined(_DEBUG) + #pragma comment(lib, "msvcrtd.lib") + #else + #pragma comment(lib, "msvcrt.lib") + #endif +#else +#ifdef _MT + #if !defined(_AFX_NO_DEBUG_CRT) && defined(_DEBUG) + #pragma comment(lib, "libcmtd.lib") + #else + #pragma comment(lib, "libcmt.lib") + #endif +#else + #if !defined(_AFX_NO_DEBUG_CRT) && defined(_DEBUG) + #pragma comment(lib, "libcd.lib") + #else + #pragma comment(lib, "libc.lib") + #endif +#endif +#endif + +#pragma comment(lib, "kernel32.lib") +#pragma comment(lib, "user32.lib") +#pragma comment(lib, "gdi32.lib") +#pragma comment(lib, "comdlg32.lib") +#pragma comment(lib, "winspool.lib") +#pragma comment(lib, "advapi32.lib") +#pragma comment(lib, "shell32.lib") +#pragma comment(lib, "comctl32.lib") + +#else //!_MAC + +////////////////////////////////////////////////////////////////////////////// +// Macintosh libraries + +#ifndef _AFXDLL + #ifdef _DEBUG + #ifdef _68K_ + #pragma comment(lib, "nafxcmd.lib") + #else + #pragma comment(lib, "nafxcpd.lib") + #endif + #else + #ifdef _68K_ + #pragma comment(lib, "nafxcm.lib") + #else + #pragma comment(lib, "nafxcp.lib") + #endif + #endif +#else + #ifdef _DEBUG + #ifdef _68K_ + #error _AFXDLL is not supported for 68K Macintosh + #else + #pragma comment(lib, "mfc42pd.lib") + #pragma comment(lib, "mfcs42pd.lib") + #endif + #else + #ifdef _68K_ + #error _AFXDLL is not supported for 68K Macintosh + #else + #pragma comment(lib, "mfc42p.lib") + #pragma comment(lib, "mfcs42p.lib") + #endif + #endif +#endif + +#if !defined(_AFXDLL) && !defined(_USRDLL) + #ifdef _DEBUG + #pragma comment(lib, "wlmd.lib") + #pragma comment(lib, "comctld.lib") + #else + #pragma comment(lib, "wlm.lib") + #pragma comment(lib, "comctl.lib") + #endif + #pragma comment(linker, "/macres:wlm.rsc /macres:commdlg.rsc") + #pragma comment(linker, "/macres:comctl.rsc") + #ifdef _MPPC_ + #pragma comment(lib, "privint.lib") + #pragma comment(lib, "threads.lib") + #pragma comment(lib, "math.lib") + #endif +#else + #ifdef _DEBUG + #pragma comment(lib, "msvcwlmd.lib") + #pragma comment(lib, "msvcctld.lib") + #else + #pragma comment(lib, "msvcwlm.lib") + #pragma comment(lib, "msvcctl.lib") + #endif +#endif + +#ifdef _68K_ + #ifdef _DEBUG + #pragma comment(lib, "swapd.lib") + #else + #pragma comment(lib, "swap.lib") + #endif + #pragma comment(lib, "lsanes.lib") + #pragma comment(lib, "llibcs.lib") + #pragma comment(lib, "osl.lib") +#endif + +#ifdef _MPPC_ + #ifdef _DLL + #if !defined(_AFX_NO_DEBUG_CRT) && defined(_DEBUG) + #pragma comment(lib, "msvcrtd.lib") + #else + #pragma comment(lib, "msvcrt.lib") + #endif + #else + #if !defined(_AFX_NO_DEBUG_CRT) && defined(_DEBUG) + #pragma comment(lib, "libcd.lib") + #else + #pragma comment(lib, "libc.lib") + #endif + #endif +#endif + +#endif //_MAC + +// force inclusion of NOLIB.OBJ for /disallowlib directives +#pragma comment(linker, "/include:__afxForceEXCLUDE") + +// force inclusion of DLLMODUL.OBJ for _USRDLL +#ifdef _USRDLL +#pragma comment(linker, "/include:__afxForceUSRDLL") +#endif + +// force inclusion of STDAFX.OBJ for precompiled types +#ifdef _AFXDLL +#pragma comment(linker, "/include:__afxForceSTDAFX") +#endif + +#endif //!_AFX_NOFORCE_LIBS + +///////////////////////////////////////////////////////////////////////////// +// Classes declared in this file +// in addition to standard primitive data types and various helper macros + +struct CRuntimeClass; // object type information + +class CObject; // the root of all objects classes + + class CException; // the root of all exceptions + class CArchiveException; // archive exception + class CFileException; // file exception + class CSimpleException; + class CMemoryException; // out-of-memory exception + class CNotSupportedException; // feature not supported exception + + class CFile; // raw binary file + class CStdioFile; // buffered stdio text/binary file + class CMemFile; // memory based file + +// Non CObject classes +class CString; // growable string type +class CTimeSpan; // time/date difference +class CTime; // absolute time/date +struct CFileStatus; // file status information +struct CMemoryState; // diagnostic memory support + +class CArchive; // object persistence tool +class CDumpContext; // object diagnostic dumping + +///////////////////////////////////////////////////////////////////////////// +// Other includes from standard "C" runtimes + +#ifndef _INC_STRING + #include <string.h> +#endif +#ifndef _INC_STDIO + #include <stdio.h> +#endif +#ifndef _INC_STDLIB + #include <stdlib.h> +#endif +#ifndef _INC_TIME + #include <time.h> +#endif +#ifndef _INC_LIMITS + #include <limits.h> +#endif +#ifndef _INC_STDDEF + #include <stddef.h> +#endif +#ifndef _INC_STDARG + #include <stdarg.h> +#endif + +#ifndef _AFX_NO_DEBUG_CRT +#ifndef _INC_CRTDBG + #include <crtdbg.h> +#endif +#endif // _AFX_NO_DEBUG_CRT + +#ifdef _AFX_OLD_EXCEPTIONS +// use setjmp and helper functions instead of C++ keywords +#ifndef _INC_SETJMP + #pragma warning(disable: 4611) + #include <setjmp.h> +#endif +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// Basic types + +// abstract iteration position +struct __POSITION { }; +typedef __POSITION* POSITION; + +struct _AFX_DOUBLE { BYTE doubleBits[sizeof(double)]; }; +struct _AFX_FLOAT { BYTE floatBits[sizeof(float)]; }; + +// Standard constants +#undef FALSE +#undef TRUE +#undef NULL + +#define FALSE 0 +#define TRUE 1 +#define NULL 0 + +///////////////////////////////////////////////////////////////////////////// +// Diagnostic support + +#ifdef _DEBUG + +BOOL AFXAPI AfxAssertFailedLine(LPCSTR lpszFileName, int nLine); + +void AFX_CDECL AfxTrace(LPCTSTR lpszFormat, ...); +// Note: file names are still ANSI strings (filenames rarely need UNICODE) +void AFXAPI AfxAssertValidObject(const CObject* pOb, + LPCSTR lpszFileName, int nLine); +void AFXAPI AfxDump(const CObject* pOb); // Dump an object from CodeView + +#define TRACE ::AfxTrace +#define THIS_FILE __FILE__ +#define ASSERT(f) \ + do \ + { \ + if (!(f) && AfxAssertFailedLine(THIS_FILE, __LINE__)) \ + AfxDebugBreak(); \ + } while (0) \ + +#define VERIFY(f) ASSERT(f) +#define ASSERT_VALID(pOb) (::AfxAssertValidObject(pOb, THIS_FILE, __LINE__)) +#define DEBUG_ONLY(f) (f) + +// The following trace macros are provided for backward compatiblity +// (they also take a fixed number of parameters which provides +// some amount of extra error checking) +#define TRACE0(sz) ::AfxTrace(_T("%s"), _T(sz)) +#define TRACE1(sz, p1) ::AfxTrace(_T(sz), p1) +#define TRACE2(sz, p1, p2) ::AfxTrace(_T(sz), p1, p2) +#define TRACE3(sz, p1, p2, p3) ::AfxTrace(_T(sz), p1, p2, p3) + +// These AFX_DUMP macros also provided for backward compatibility +#define AFX_DUMP0(dc, sz) dc << _T(sz) +#define AFX_DUMP1(dc, sz, p1) dc << _T(sz) << p1 + +#else // _DEBUG + +#define ASSERT(f) ((void)0) +#define VERIFY(f) ((void)(f)) +#define ASSERT_VALID(pOb) ((void)0) +#define DEBUG_ONLY(f) ((void)0) +inline void AFX_CDECL AfxTrace(LPCTSTR, ...) { } +#define TRACE 1 ? (void)0 : ::AfxTrace +#define TRACE0(sz) +#define TRACE1(sz, p1) +#define TRACE2(sz, p1, p2) +#define TRACE3(sz, p1, p2, p3) + +#endif // !_DEBUG + +#define ASSERT_POINTER(p, type) \ + ASSERT(((p) != NULL) && AfxIsValidAddress((p), sizeof(type), FALSE)) + +#define ASSERT_NULL_OR_POINTER(p, type) \ + ASSERT(((p) == NULL) || AfxIsValidAddress((p), sizeof(type), FALSE)) + +///////////////////////////////////////////////////////////////////////////// +// Turn off warnings for /W4 +// To resume any of these warning: #pragma warning(default: 4xxx) +// which should be placed after the AFX include files +#ifndef ALL_WARNINGS +// warnings generated with common MFC/Windows code +#pragma warning(disable: 4127) // constant expression for TRACE/ASSERT +#pragma warning(disable: 4134) // message map member fxn casts +#pragma warning(disable: 4201) // nameless unions are part of C++ +#pragma warning(disable: 4511) // private copy constructors are good to have +#pragma warning(disable: 4512) // private operator= are good to have +#pragma warning(disable: 4514) // unreferenced inlines are common +#pragma warning(disable: 4710) // private constructors are disallowed +#pragma warning(disable: 4705) // statement has no effect in optimized code +// warnings caused by normal optimizations +#ifndef _DEBUG +#pragma warning(disable: 4701) // local variable *may* be used without init +#pragma warning(disable: 4702) // unreachable code caused by optimizations +#pragma warning(disable: 4791) // loss of debugging info in release version +#endif +// warnings specific to _AFXDLL version +#ifdef _AFXDLL +#pragma warning(disable: 4204) // non-constant aggregate initializer +#endif +#ifdef _AFXDLL +#pragma warning(disable: 4275) // deriving exported class from non-exported +#pragma warning(disable: 4251) // using non-exported as public in exported +#endif +#endif //!ALL_WARNINGS + +#ifdef _DEBUG +#define UNUSED(x) +#else +#define UNUSED(x) x +#endif +#define UNUSED_ALWAYS(x) x + +///////////////////////////////////////////////////////////////////////////// +// Other implementation helpers + +#define BEFORE_START_POSITION ((POSITION)-1L) + +///////////////////////////////////////////////////////////////////////////// +// explicit initialization for general purpose classes + +BOOL AFXAPI AfxInitialize(BOOL bDLL = FALSE, DWORD dwVersion = _MFC_VER); + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +///////////////////////////////////////////////////////////////////////////// +// Basic object model + +struct CRuntimeClass +{ +// Attributes + LPCSTR m_lpszClassName; + int m_nObjectSize; + UINT m_wSchema; // schema number of the loaded class + CObject* (PASCAL* m_pfnCreateObject)(); // NULL => abstract class +#ifdef _AFXDLL + CRuntimeClass* (PASCAL* m_pfnGetBaseClass)(); +#else + CRuntimeClass* m_pBaseClass; +#endif + +// Operations + CObject* CreateObject(); + BOOL IsDerivedFrom(const CRuntimeClass* pBaseClass) const; + +// Implementation + void Store(CArchive& ar) const; + static CRuntimeClass* PASCAL Load(CArchive& ar, UINT* pwSchemaNum); + + // CRuntimeClass objects linked together in simple list + CRuntimeClass* m_pNextClass; // linked list of registered classes +}; + +///////////////////////////////////////////////////////////////////////////// +// Strings + +#ifndef _OLEAUTO_H_ +#ifdef OLE2ANSI + typedef LPSTR BSTR; +#else + typedef LPWSTR BSTR;// must (semantically) match typedef in oleauto.h +#endif +#endif + +struct CStringData +{ + long nRefs; // reference count + int nDataLength; + int nAllocLength; + // TCHAR data[nAllocLength] + + TCHAR* data() + { return (TCHAR*)(this+1); } +}; + +class CString +{ +public: +// Constructors + CString(); + CString(const CString& stringSrc); + CString(TCHAR ch, int nRepeat = 1); + CString(LPCSTR lpsz); + CString(LPCWSTR lpsz); + CString(LPCTSTR lpch, int nLength); + CString(const unsigned char* psz); + +// Attributes & Operations + // as an array of characters + int GetLength() const; + BOOL IsEmpty() const; + void Empty(); // free up the data + + TCHAR GetAt(int nIndex) const; // 0 based + TCHAR operator[](int nIndex) const; // same as GetAt + void SetAt(int nIndex, TCHAR ch); + operator LPCTSTR() const; // as a C string + + // overloaded assignment + const CString& operator=(const CString& stringSrc); + const CString& operator=(TCHAR ch); +#ifdef _UNICODE + const CString& operator=(char ch); +#endif + const CString& operator=(LPCSTR lpsz); + const CString& operator=(LPCWSTR lpsz); + const CString& operator=(const unsigned char* psz); + + // string concatenation + const CString& operator+=(const CString& string); + const CString& operator+=(TCHAR ch); +#ifdef _UNICODE + const CString& operator+=(char ch); +#endif + const CString& operator+=(LPCTSTR lpsz); + + friend CString AFXAPI operator+(const CString& string1, + const CString& string2); + friend CString AFXAPI operator+(const CString& string, TCHAR ch); + friend CString AFXAPI operator+(TCHAR ch, const CString& string); +#ifdef _UNICODE + friend CString AFXAPI operator+(const CString& string, char ch); + friend CString AFXAPI operator+(char ch, const CString& string); +#endif + friend CString AFXAPI operator+(const CString& string, LPCTSTR lpsz); + friend CString AFXAPI operator+(LPCTSTR lpsz, const CString& string); + + // string comparison + int Compare(LPCTSTR lpsz) const; // straight character + int CompareNoCase(LPCTSTR lpsz) const; // ignore case + int Collate(LPCTSTR lpsz) const; // NLS aware + + // simple sub-string extraction + CString Mid(int nFirst, int nCount) const; + CString Mid(int nFirst) const; + CString Left(int nCount) const; + CString Right(int nCount) const; + + CString SpanIncluding(LPCTSTR lpszCharSet) const; + CString SpanExcluding(LPCTSTR lpszCharSet) const; + + // upper/lower/reverse conversion + void MakeUpper(); + void MakeLower(); + void MakeReverse(); + + // trimming whitespace (either side) + void TrimRight(); + void TrimLeft(); + + // searching (return starting index, or -1 if not found) + // look for a single character match + int Find(TCHAR ch) const; // like "C" strchr + int ReverseFind(TCHAR ch) const; + int FindOneOf(LPCTSTR lpszCharSet) const; + + // look for a specific sub-string + int Find(LPCTSTR lpszSub) const; // like "C" strstr + + // simple formatting + void AFX_CDECL Format(LPCTSTR lpszFormat, ...); + void AFX_CDECL Format(UINT nFormatID, ...); + +#ifndef _MAC + // formatting for localization (uses FormatMessage API) + void AFX_CDECL FormatMessage(LPCTSTR lpszFormat, ...); + void AFX_CDECL FormatMessage(UINT nFormatID, ...); +#endif + + // input and output +#ifdef _DEBUG + friend CDumpContext& AFXAPI operator<<(CDumpContext& dc, + const CString& string); +#endif + friend CArchive& AFXAPI operator<<(CArchive& ar, const CString& string); + friend CArchive& AFXAPI operator>>(CArchive& ar, CString& string); + + // Windows support + BOOL LoadString(UINT nID); // load from string resource + // 255 chars max +#ifndef _UNICODE + // ANSI <-> OEM support (convert string in place) + void AnsiToOem(); + void OemToAnsi(); +#endif + +#ifndef _AFX_NO_BSTR_SUPPORT + // OLE BSTR support (use for OLE automation) + BSTR AllocSysString() const; + BSTR SetSysString(BSTR* pbstr) const; +#endif + + // Access to string implementation buffer as "C" character array + LPTSTR GetBuffer(int nMinBufLength); + void ReleaseBuffer(int nNewLength = -1); + LPTSTR GetBufferSetLength(int nNewLength); + void FreeExtra(); + + // Use LockBuffer/UnlockBuffer to turn refcounting off + LPTSTR LockBuffer(); + void UnlockBuffer(); + +// Implementation +public: + ~CString(); + int GetAllocLength() const; + +protected: + LPTSTR m_pchData; // pointer to ref counted string data + + // implementation helpers + CStringData* GetData() const; + void Init(); + void AllocCopy(CString& dest, int nCopyLen, int nCopyIndex, int nExtraLen) const; + void AllocBuffer(int nLen); + void AssignCopy(int nSrcLen, LPCTSTR lpszSrcData); + void ConcatCopy(int nSrc1Len, LPCTSTR lpszSrc1Data, int nSrc2Len, LPCTSTR lpszSrc2Data); + void ConcatInPlace(int nSrcLen, LPCTSTR lpszSrcData); + void FormatV(LPCTSTR lpszFormat, va_list argList); + void CopyBeforeWrite(); + void AllocBeforeWrite(int nLen); + void Release(); + static void PASCAL Release(CStringData* pData); + static int PASCAL SafeStrlen(LPCTSTR lpsz); +}; + +// Compare helpers +BOOL AFXAPI operator==(const CString& s1, const CString& s2); +BOOL AFXAPI operator==(const CString& s1, LPCTSTR s2); +BOOL AFXAPI operator==(LPCTSTR s1, const CString& s2); +BOOL AFXAPI operator!=(const CString& s1, const CString& s2); +BOOL AFXAPI operator!=(const CString& s1, LPCTSTR s2); +BOOL AFXAPI operator!=(LPCTSTR s1, const CString& s2); +BOOL AFXAPI operator<(const CString& s1, const CString& s2); +BOOL AFXAPI operator<(const CString& s1, LPCTSTR s2); +BOOL AFXAPI operator<(LPCTSTR s1, const CString& s2); +BOOL AFXAPI operator>(const CString& s1, const CString& s2); +BOOL AFXAPI operator>(const CString& s1, LPCTSTR s2); +BOOL AFXAPI operator>(LPCTSTR s1, const CString& s2); +BOOL AFXAPI operator<=(const CString& s1, const CString& s2); +BOOL AFXAPI operator<=(const CString& s1, LPCTSTR s2); +BOOL AFXAPI operator<=(LPCTSTR s1, const CString& s2); +BOOL AFXAPI operator>=(const CString& s1, const CString& s2); +BOOL AFXAPI operator>=(const CString& s1, LPCTSTR s2); +BOOL AFXAPI operator>=(LPCTSTR s1, const CString& s2); + +// conversion helpers +int AFX_CDECL _wcstombsz(char* mbstr, const wchar_t* wcstr, size_t count); +int AFX_CDECL _mbstowcsz(wchar_t* wcstr, const char* mbstr, size_t count); + +// Globals +extern AFX_DATA TCHAR afxChNil; +const CString& AFXAPI AfxGetEmptyString(); +#define afxEmptyString AfxGetEmptyString() + +///////////////////////////////////////////////////////////////////////////// +// class CObject is the root of all compliant objects + +class CObject +{ +public: + +// Object model (types, destruction, allocation) + virtual CRuntimeClass* GetRuntimeClass() const; + virtual ~CObject(); // virtual destructors are necessary + + // Diagnostic allocations + void* PASCAL operator new(size_t nSize); + void* PASCAL operator new(size_t, void* p); + void PASCAL operator delete(void* p); + +#if defined(_DEBUG) && !defined(_AFX_NO_DEBUG_CRT) + // for file name/line number tracking using DEBUG_NEW + void* PASCAL operator new(size_t nSize, LPCSTR lpszFileName, int nLine); +#endif + + // Disable the copy constructor and assignment by default so you will get + // compiler errors instead of unexpected behaviour if you pass objects + // by value or assign objects. +protected: + CObject(); +private: + CObject(const CObject& objectSrc); // no implementation + void operator=(const CObject& objectSrc); // no implementation + +// Attributes +public: + BOOL IsSerializable() const; + BOOL IsKindOf(const CRuntimeClass* pClass) const; + +// Overridables + virtual void Serialize(CArchive& ar); + + // Diagnostic Support + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; + +// Implementation +public: + static const AFX_DATA CRuntimeClass classCObject; +#ifdef _AFXDLL + static CRuntimeClass* PASCAL _GetBaseClass(); +#endif +}; + +// Helper macros +#define RUNTIME_CLASS(class_name) ((CRuntimeClass*)(&class_name::class##class_name)) +#define ASSERT_KINDOF(class_name, object) \ + ASSERT((object)->IsKindOf(RUNTIME_CLASS(class_name))) + +// RTTI helper macros/functions +const CObject* AFX_CDECL AfxDynamicDownCast(CRuntimeClass* pClass, const CObject* pObject); +CObject* AFX_CDECL AfxDynamicDownCast(CRuntimeClass* pClass, CObject* pObject); +#define DYNAMIC_DOWNCAST(class_name, object) \ + (class_name*)AfxDynamicDownCast(RUNTIME_CLASS(class_name), object) + +#ifdef _DEBUG +const CObject* AFX_CDECL AfxStaticDownCast(CRuntimeClass* pClass, const CObject* pObject); +CObject* AFX_CDECL AfxStaticDownCast(CRuntimeClass* pClass, CObject* pObject); +#define STATIC_DOWNCAST(class_name, object) \ + ((class_name*)AfxStaticDownCast(RUNTIME_CLASS(class_name), object)) +#else +#define STATIC_DOWNCAST(class_name, object) ((class_name*)object) +#endif + +////////////////////////////////////////////////////////////////////////////// +// Helper macros for declaring CRuntimeClass compatible classes + +#ifdef _AFXDLL +#define DECLARE_DYNAMIC(class_name) \ +protected: \ + static CRuntimeClass* PASCAL _GetBaseClass(); \ +public: \ + static const AFX_DATA CRuntimeClass class##class_name; \ + virtual CRuntimeClass* GetRuntimeClass() const; \ + +#define _DECLARE_DYNAMIC(class_name) \ +protected: \ + static CRuntimeClass* PASCAL _GetBaseClass(); \ +public: \ + static AFX_DATA CRuntimeClass class##class_name; \ + virtual CRuntimeClass* GetRuntimeClass() const; \ + +#else +#define DECLARE_DYNAMIC(class_name) \ +public: \ + static const AFX_DATA CRuntimeClass class##class_name; \ + virtual CRuntimeClass* GetRuntimeClass() const; \ + +#define _DECLARE_DYNAMIC(class_name) \ +public: \ + static AFX_DATA CRuntimeClass class##class_name; \ + virtual CRuntimeClass* GetRuntimeClass() const; \ + +#endif + +// not serializable, but dynamically constructable +#define DECLARE_DYNCREATE(class_name) \ + DECLARE_DYNAMIC(class_name) \ + static CObject* PASCAL CreateObject(); + +#define _DECLARE_DYNCREATE(class_name) \ + _DECLARE_DYNAMIC(class_name) \ + static CObject* PASCAL CreateObject(); + +#define DECLARE_SERIAL(class_name) \ + _DECLARE_DYNCREATE(class_name) \ + friend CArchive& AFXAPI operator>>(CArchive& ar, class_name* &pOb); + +// generate static object constructor for class registration +struct AFX_CLASSINIT + { AFX_CLASSINIT(CRuntimeClass* pNewClass); }; + +#ifdef _AFXDLL +#define IMPLEMENT_RUNTIMECLASS(class_name, base_class_name, wSchema, pfnNew) \ + CRuntimeClass* PASCAL class_name::_GetBaseClass() \ + { return RUNTIME_CLASS(base_class_name); } \ + const AFX_DATADEF CRuntimeClass class_name::class##class_name = { \ + #class_name, sizeof(class class_name), wSchema, pfnNew, \ + &class_name::_GetBaseClass, NULL }; \ + CRuntimeClass* class_name::GetRuntimeClass() const \ + { return RUNTIME_CLASS(class_name); } \ + +#define _IMPLEMENT_RUNTIMECLASS(class_name, base_class_name, wSchema, pfnNew) \ + CRuntimeClass* PASCAL class_name::_GetBaseClass() \ + { return RUNTIME_CLASS(base_class_name); } \ + AFX_DATADEF CRuntimeClass class_name::class##class_name = { \ + #class_name, sizeof(class class_name), wSchema, pfnNew, \ + &class_name::_GetBaseClass, NULL }; \ + CRuntimeClass* class_name::GetRuntimeClass() const \ + { return RUNTIME_CLASS(class_name); } \ + +#else +#define IMPLEMENT_RUNTIMECLASS(class_name, base_class_name, wSchema, pfnNew) \ + const AFX_DATADEF CRuntimeClass class_name::class##class_name = { \ + #class_name, sizeof(class class_name), wSchema, pfnNew, \ + RUNTIME_CLASS(base_class_name), NULL }; \ + CRuntimeClass* class_name::GetRuntimeClass() const \ + { return RUNTIME_CLASS(class_name); } \ + +#define _IMPLEMENT_RUNTIMECLASS(class_name, base_class_name, wSchema, pfnNew) \ + AFX_DATADEF CRuntimeClass class_name::class##class_name = { \ + #class_name, sizeof(class class_name), wSchema, pfnNew, \ + RUNTIME_CLASS(base_class_name), NULL }; \ + CRuntimeClass* class_name::GetRuntimeClass() const \ + { return RUNTIME_CLASS(class_name); } \ + +#endif + +#define IMPLEMENT_DYNAMIC(class_name, base_class_name) \ + IMPLEMENT_RUNTIMECLASS(class_name, base_class_name, 0xFFFF, NULL) + +#define IMPLEMENT_DYNCREATE(class_name, base_class_name) \ + CObject* PASCAL class_name::CreateObject() \ + { return new class_name; } \ + IMPLEMENT_RUNTIMECLASS(class_name, base_class_name, 0xFFFF, \ + class_name::CreateObject) + +#define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) \ + CObject* PASCAL class_name::CreateObject() \ + { return new class_name; } \ + _IMPLEMENT_RUNTIMECLASS(class_name, base_class_name, wSchema, \ + class_name::CreateObject) \ + static const AFX_CLASSINIT _init_##class_name(RUNTIME_CLASS(class_name)); \ + CArchive& AFXAPI operator>>(CArchive& ar, class_name* &pOb) \ + { pOb = (class_name*) ar.ReadObject(RUNTIME_CLASS(class_name)); \ + return ar; } \ + +// optional bit for schema number that enables object versioning +#define VERSIONABLE_SCHEMA (0x80000000) + +///////////////////////////////////////////////////////////////////////////// +// other helpers + +// zero fill everything after the vtbl pointer +#define AFX_ZERO_INIT_OBJECT(base_class) \ + memset(((base_class*)this)+1, 0, sizeof(*this) - sizeof(class base_class)); + + +///////////////////////////////////////////////////////////////////////////// +// Exceptions + +class CException : public CObject +{ + // abstract class for dynamic type checking + DECLARE_DYNAMIC(CException) + +public: +// Constructors + CException(); // sets m_bAutoDelete = TRUE + CException(BOOL bAutoDelete); // sets m_bAutoDelete = bAutoDelete + +// Operations + void Delete(); // use to delete exception in 'catch' block + + virtual BOOL GetErrorMessage(LPTSTR lpszError, UINT nMaxError, + PUINT pnHelpContext = NULL); + virtual int ReportError(UINT nType = MB_OK, UINT nMessageID = 0); + +// Implementation (setting m_bAutoDelete to FALSE is advanced) +public: + virtual ~CException(); + BOOL m_bAutoDelete; +#ifdef _DEBUG + void PASCAL operator delete(void* p); +protected: + BOOL m_bReadyForDelete; +#endif +}; + +class CSimpleException : public CException +{ + // base class for resource-critical MFC exceptions + // handles ownership and initialization of an error message + +public: +// Constructors + CSimpleException(); + CSimpleException(BOOL bAutoDelete); + +// Operations + virtual BOOL GetErrorMessage(LPTSTR lpszError, UINT nMaxError, + PUINT pnHelpContext = NULL); + +// Implementation (setting m_bAutoDelete to FALSE is advanced) +public: + virtual ~CSimpleException(); + BOOL m_bAutoDelete; + + void InitString(); // used during MFC initialization + +protected: + BOOL m_bInitialized; + BOOL m_bLoaded; + TCHAR m_szMessage[128]; + UINT m_nResourceID; + +#ifdef _DEBUG + BOOL m_bReadyForDelete; +#endif +}; + +// helper routines for non-C++ EH implementations +#ifdef _AFX_OLD_EXCEPTIONS + BOOL AFXAPI AfxCatchProc(CRuntimeClass* pClass); + void AFXAPI AfxThrow(CException* pException); +#else + // for THROW_LAST auto-delete backward compatiblity + void AFXAPI AfxThrowLastCleanup(); +#endif + +// other out-of-line helper functions +void AFXAPI AfxTryCleanup(); + +#ifndef _AFX_JUMPBUF +// Use portable 'jmp_buf' defined by ANSI by default. +#define _AFX_JUMPBUF jmp_buf +#endif + +// Placed on frame for EXCEPTION linkage, or CException cleanup +struct AFX_EXCEPTION_LINK +{ +#ifdef _AFX_OLD_EXCEPTIONS + union + { + _AFX_JUMPBUF m_jumpBuf; + struct + { + void (PASCAL* pfnCleanup)(AFX_EXCEPTION_LINK* pLink); + void* pvData; // extra data follows + } m_callback; // callback for cleanup (nType != 0) + }; + UINT m_nType; // 0 for setjmp, !=0 for user extension +#endif //!_AFX_OLD_EXCEPTIONS + + AFX_EXCEPTION_LINK* m_pLinkPrev; // previous top, next in handler chain + CException* m_pException; // current exception (NULL in TRY block) + + AFX_EXCEPTION_LINK(); // for initialization and linking + ~AFX_EXCEPTION_LINK() // for cleanup and unlinking + { AfxTryCleanup(); }; +}; + +// Exception global state - never access directly +struct AFX_EXCEPTION_CONTEXT +{ + AFX_EXCEPTION_LINK* m_pLinkTop; + + // Note: most of the exception context is now in the AFX_EXCEPTION_LINK +}; + +#ifndef _PNH_DEFINED +typedef int (__cdecl * _PNH)( size_t ); +#define _PNH_DEFINED +#endif + +_PNH AFXAPI AfxGetNewHandler(); +_PNH AFXAPI AfxSetNewHandler(_PNH pfnNewHandler); +int AFX_CDECL AfxNewHandler(size_t nSize); + +void AFXAPI AfxAbort(); + +#ifdef _AFX_OLD_EXCEPTIONS + +// Obsolete and non-portable: setting terminate handler +// use CWinApp::ProcessWndProcException for Windows apps instead +// can also use set_terminate which is part of C++ standard library +// (these are provided for backward compatibility) +void AFXAPI AfxTerminate(); +typedef void (AFXAPI* AFX_TERM_PROC)(); +AFX_TERM_PROC AFXAPI AfxSetTerminate(AFX_TERM_PROC); + +#endif + +///////////////////////////////////////////////////////////////////////////// +// Exception macros using try, catch and throw +// (for backward compatibility to previous versions of MFC) + +#ifndef _AFX_OLD_EXCEPTIONS + +#define TRY { AFX_EXCEPTION_LINK _afxExceptionLink; try { + +#define CATCH(class, e) } catch (class* e) \ + { ASSERT(e->IsKindOf(RUNTIME_CLASS(class))); \ + _afxExceptionLink.m_pException = e; + +#define AND_CATCH(class, e) } catch (class* e) \ + { ASSERT(e->IsKindOf(RUNTIME_CLASS(class))); \ + _afxExceptionLink.m_pException = e; + +#define END_CATCH } } + +#define THROW(e) throw e +#define THROW_LAST() (AfxThrowLastCleanup(), throw) + +// Advanced macros for smaller code +#define CATCH_ALL(e) } catch (CException* e) \ + { { ASSERT(e->IsKindOf(RUNTIME_CLASS(CException))); \ + _afxExceptionLink.m_pException = e; + +#define AND_CATCH_ALL(e) } catch (CException* e) \ + { { ASSERT(e->IsKindOf(RUNTIME_CLASS(CException))); \ + _afxExceptionLink.m_pException = e; + +#define END_CATCH_ALL } } } + +#define END_TRY } catch (CException* e) \ + { ASSERT(e->IsKindOf(RUNTIME_CLASS(CException))); \ + _afxExceptionLink.m_pException = e; } } + +#else //_AFX_OLD_EXCEPTIONS + +///////////////////////////////////////////////////////////////////////////// +// Exception macros using setjmp and longjmp +// (for portability to compilers with no support for C++ exception handling) + +#define TRY \ + { AFX_EXCEPTION_LINK _afxExceptionLink; \ + if (::setjmp(_afxExceptionLink.m_jumpBuf) == 0) + +#define CATCH(class, e) \ + else if (::AfxCatchProc(RUNTIME_CLASS(class))) \ + { class* e = (class*)_afxExceptionLink.m_pException; + +#define AND_CATCH(class, e) \ + } else if (::AfxCatchProc(RUNTIME_CLASS(class))) \ + { class* e = (class*)_afxExceptionLink.m_pException; + +#define END_CATCH \ + } else { ::AfxThrow(NULL); } } + +#define THROW(e) AfxThrow(e) +#define THROW_LAST() AfxThrow(NULL) + +// Advanced macros for smaller code +#define CATCH_ALL(e) \ + else { CException* e = _afxExceptionLink.m_pException; + +#define AND_CATCH_ALL(e) \ + } else { CException* e = _afxExceptionLink.m_pException; + +#define END_CATCH_ALL } } + +#define END_TRY } + +#endif //_AFX_OLD_EXCEPTIONS + +///////////////////////////////////////////////////////////////////////////// +// Standard Exception classes + +class CMemoryException : public CSimpleException +{ + DECLARE_DYNAMIC(CMemoryException) +public: + CMemoryException(); + +// Implementation +public: + CMemoryException(BOOL bAutoDelete); + CMemoryException(BOOL bAutoDelete, UINT nResourceID); + virtual ~CMemoryException(); +}; + +class CNotSupportedException : public CSimpleException +{ + DECLARE_DYNAMIC(CNotSupportedException) +public: + CNotSupportedException(); + +// Implementation +public: + CNotSupportedException(BOOL bAutoDelete); + CNotSupportedException(BOOL bAutoDelete, UINT nResourceID); + virtual ~CNotSupportedException(); +}; + +class CArchiveException : public CException +{ + DECLARE_DYNAMIC(CArchiveException) +public: + enum { + none, + generic, + readOnly, + endOfFile, + writeOnly, + badIndex, + badClass, + badSchema + }; + +// Constructor + CArchiveException(int cause = CArchiveException::none, + LPCTSTR lpszArchiveName = NULL); + +// Attributes + int m_cause; + CString m_strFileName; + +// Implementation +public: + virtual ~CArchiveException(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif + virtual BOOL GetErrorMessage(LPTSTR lpszError, UINT nMaxError, + PUINT pnHelpContext = NULL); +}; + +class CFileException : public CException +{ + DECLARE_DYNAMIC(CFileException) + +public: + enum { + none, + generic, + fileNotFound, + badPath, + tooManyOpenFiles, + accessDenied, + invalidFile, + removeCurrentDir, + directoryFull, + badSeek, + hardIO, + sharingViolation, + lockViolation, + diskFull, + endOfFile + }; + +// Constructor + CFileException(int cause = CFileException::none, LONG lOsError = -1, + LPCTSTR lpszArchiveName = NULL); + +// Attributes + int m_cause; + LONG m_lOsError; + CString m_strFileName; + +// Operations + // convert a OS dependent error code to a Cause + static int PASCAL OsErrorToException(LONG lOsError); + static int PASCAL ErrnoToException(int nErrno); + + // helper functions to throw exception after converting to a Cause + static void PASCAL ThrowOsError(LONG lOsError, LPCTSTR lpszFileName = NULL); + static void PASCAL ThrowErrno(int nErrno, LPCTSTR lpszFileName = NULL); + +// Implementation +public: + virtual ~CFileException(); +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; +#endif + virtual BOOL GetErrorMessage(LPTSTR lpszError, UINT nMaxError, + PUINT pnHelpContext = NULL); +}; + +///////////////////////////////////////////////////////////////////////////// +// Standard exception throws + +void AFXAPI AfxThrowMemoryException(); +void AFXAPI AfxThrowNotSupportedException(); +void AFXAPI AfxThrowArchiveException(int cause, + LPCTSTR lpszArchiveName = NULL); +void AFXAPI AfxThrowFileException(int cause, LONG lOsError = -1, + LPCTSTR lpszFileName = NULL); + +///////////////////////////////////////////////////////////////////////////// +// File - raw unbuffered disk file I/O + +class CFile : public CObject +{ + DECLARE_DYNAMIC(CFile) + +public: +// Flag values + enum OpenFlags { + modeRead = 0x0000, + modeWrite = 0x0001, + modeReadWrite = 0x0002, + shareCompat = 0x0000, + shareExclusive = 0x0010, + shareDenyWrite = 0x0020, + shareDenyRead = 0x0030, + shareDenyNone = 0x0040, + modeNoInherit = 0x0080, + modeCreate = 0x1000, + modeNoTruncate = 0x2000, + typeText = 0x4000, // typeText and typeBinary are used in + typeBinary = (int)0x8000 // derived classes only + }; + + enum Attribute { + normal = 0x00, + readOnly = 0x01, + hidden = 0x02, + system = 0x04, + volume = 0x08, + directory = 0x10, + archive = 0x20 + }; + + enum SeekPosition { begin = 0x0, current = 0x1, end = 0x2 }; + + enum { hFileNull = -1 }; + +// Constructors + CFile(); + CFile(int hFile); + CFile(LPCTSTR lpszFileName, UINT nOpenFlags); + +// Attributes + UINT m_hFile; + operator HFILE() const; + + virtual DWORD GetPosition() const; + BOOL GetStatus(CFileStatus& rStatus) const; + virtual CString GetFileName() const; + virtual CString GetFileTitle() const; + virtual CString GetFilePath() const; + virtual void SetFilePath(LPCTSTR lpszNewName); + +// Operations + virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, + CFileException* pError = NULL); + + static void PASCAL Rename(LPCTSTR lpszOldName, + LPCTSTR lpszNewName); + static void PASCAL Remove(LPCTSTR lpszFileName); + static BOOL PASCAL GetStatus(LPCTSTR lpszFileName, + CFileStatus& rStatus); + static void PASCAL SetStatus(LPCTSTR lpszFileName, + const CFileStatus& status); + + DWORD SeekToEnd(); + void SeekToBegin(); + + // backward compatible ReadHuge and WriteHuge + DWORD ReadHuge(void* lpBuffer, DWORD dwCount); + void WriteHuge(const void* lpBuffer, DWORD dwCount); + +// Overridables + virtual CFile* Duplicate() const; + + virtual LONG Seek(LONG lOff, UINT nFrom); + virtual void SetLength(DWORD dwNewLen); + virtual DWORD GetLength() const; + + virtual UINT Read(void* lpBuf, UINT nCount); + virtual void Write(const void* lpBuf, UINT nCount); + + virtual void LockRange(DWORD dwPos, DWORD dwCount); + virtual void UnlockRange(DWORD dwPos, DWORD dwCount); + + virtual void Abort(); + virtual void Flush(); + virtual void Close(); + +// Implementation +public: + virtual ~CFile(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + enum BufferCommand { bufferRead, bufferWrite, bufferCommit, bufferCheck }; + virtual UINT GetBufferPtr(UINT nCommand, UINT nCount = 0, + void** ppBufStart = NULL, void** ppBufMax = NULL); + +protected: + BOOL m_bCloseOnDelete; + CString m_strFileName; +}; + +///////////////////////////////////////////////////////////////////////////// +// STDIO file implementation + +class CStdioFile : public CFile +{ + DECLARE_DYNAMIC(CStdioFile) + +public: +// Constructors + CStdioFile(); + CStdioFile(FILE* pOpenStream); + CStdioFile(LPCTSTR lpszFileName, UINT nOpenFlags); + +// Attributes + FILE* m_pStream; // stdio FILE + // m_hFile from base class is _fileno(m_pStream) + +// Operations + // reading and writing strings + virtual void WriteString(LPCTSTR lpsz); + virtual LPTSTR ReadString(LPTSTR lpsz, UINT nMax); + virtual BOOL ReadString(CString& rString); + +// Implementation +public: + virtual ~CStdioFile(); +#ifdef _DEBUG + void Dump(CDumpContext& dc) const; +#endif + virtual DWORD GetPosition() const; + virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, + CFileException* pError = NULL); + virtual UINT Read(void* lpBuf, UINT nCount); + virtual void Write(const void* lpBuf, UINT nCount); + virtual LONG Seek(LONG lOff, UINT nFrom); + virtual void Abort(); + virtual void Flush(); + virtual void Close(); + + // Unsupported APIs + virtual CFile* Duplicate() const; + virtual void LockRange(DWORD dwPos, DWORD dwCount); + virtual void UnlockRange(DWORD dwPos, DWORD dwCount); +}; + +//////////////////////////////////////////////////////////////////////////// +// Memory based file implementation + +class CMemFile : public CFile +{ + DECLARE_DYNAMIC(CMemFile) + +public: +// Constructors + CMemFile(UINT nGrowBytes = 1024); + CMemFile(BYTE* lpBuffer, UINT nBufferSize, UINT nGrowBytes = 0); + +// Operations + void Attach(BYTE* lpBuffer, UINT nBufferSize, UINT nGrowBytes = 0); + BYTE* Detach(); + +// Advanced Overridables +protected: + virtual BYTE* Alloc(DWORD nBytes); + virtual BYTE* Realloc(BYTE* lpMem, DWORD nBytes); + virtual BYTE* Memcpy(BYTE* lpMemTarget, const BYTE* lpMemSource, UINT nBytes); + virtual void Free(BYTE* lpMem); + virtual void GrowFile(DWORD dwNewLen); + +// Implementation +protected: + UINT m_nGrowBytes; + DWORD m_nPosition; + DWORD m_nBufferSize; + DWORD m_nFileSize; + BYTE* m_lpBuffer; + BOOL m_bAutoDelete; + +public: + virtual ~CMemFile(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + virtual void AssertValid() const; +#endif + virtual DWORD GetPosition() const; + BOOL GetStatus(CFileStatus& rStatus) const; + virtual LONG Seek(LONG lOff, UINT nFrom); + virtual void SetLength(DWORD dwNewLen); + virtual UINT Read(void* lpBuf, UINT nCount); + virtual void Write(const void* lpBuf, UINT nCount); + virtual void Abort(); + virtual void Flush(); + virtual void Close(); + virtual UINT GetBufferPtr(UINT nCommand, UINT nCount = 0, + void** ppBufStart = NULL, void** ppBufMax = NULL); + + // Unsupported APIs + virtual CFile* Duplicate() const; + virtual void LockRange(DWORD dwPos, DWORD dwCount); + virtual void UnlockRange(DWORD dwPos, DWORD dwCount); +}; + +#ifndef _MAC + +//////////////////////////////////////////////////////////////////////////// +// Local file searches + +class CFileFind : public CObject +{ +public: + CFileFind(); + virtual ~CFileFind(); + +// Attributes +public: + DWORD GetLength() const; +#if defined(_X86_) || defined(_ALPHA_) + __int64 GetLength64() const; +#endif + virtual CString GetFileName() const; + virtual CString GetFilePath() const; + virtual CString GetFileTitle() const; + virtual CString GetFileURL() const; + virtual CString GetRoot() const; + + virtual BOOL GetLastWriteTime(FILETIME* pTimeStamp) const; + virtual BOOL GetLastAccessTime(FILETIME* pTimeStamp) const; + virtual BOOL GetCreationTime(FILETIME* pTimeStamp) const; + virtual BOOL GetLastWriteTime(CTime& refTime) const; + virtual BOOL GetLastAccessTime(CTime& refTime) const; + virtual BOOL GetCreationTime(CTime& refTime) const; + + virtual BOOL MatchesMask(DWORD dwMask) const; + + virtual BOOL IsDots() const; + // these aren't virtual because they all use MatchesMask(), which is + BOOL IsReadOnly() const; + BOOL IsDirectory() const; + BOOL IsCompressed() const; + BOOL IsSystem() const; + BOOL IsHidden() const; + BOOL IsTemporary() const; + BOOL IsNormal() const; + BOOL IsArchived() const; + +// Operations + void Close(); + virtual BOOL FindFile(LPCTSTR pstrName = NULL, DWORD dwUnused = 0); + virtual BOOL FindNextFile(); + +protected: + virtual void CloseContext(); + +// Implementation +protected: + void* m_pFoundInfo; + void* m_pNextInfo; + HANDLE m_hContext; + BOOL m_bGotLast; + CString m_strRoot; + TCHAR m_chDirSeparator; // not '\\' for Internet classes + +#ifdef _DEBUG + void Dump(CDumpContext& dc) const; + void AssertValid() const; +#endif + + DECLARE_DYNAMIC(CFileFind) +}; + +#endif + +///////////////////////////////////////////////////////////////////////////// +// CTimeSpan and CTime + +class CTimeSpan +{ +public: + +// Constructors + CTimeSpan(); + CTimeSpan(time_t time); + CTimeSpan(LONG lDays, int nHours, int nMins, int nSecs); + + CTimeSpan(const CTimeSpan& timeSpanSrc); + const CTimeSpan& operator=(const CTimeSpan& timeSpanSrc); + +// Attributes + // extract parts + LONG GetDays() const; // total # of days + LONG GetTotalHours() const; + int GetHours() const; + LONG GetTotalMinutes() const; + int GetMinutes() const; + LONG GetTotalSeconds() const; + int GetSeconds() const; + +// Operations + // time math + CTimeSpan operator-(CTimeSpan timeSpan) const; + CTimeSpan operator+(CTimeSpan timeSpan) const; + const CTimeSpan& operator+=(CTimeSpan timeSpan); + const CTimeSpan& operator-=(CTimeSpan timeSpan); + BOOL operator==(CTimeSpan timeSpan) const; + BOOL operator!=(CTimeSpan timeSpan) const; + BOOL operator<(CTimeSpan timeSpan) const; + BOOL operator>(CTimeSpan timeSpan) const; + BOOL operator<=(CTimeSpan timeSpan) const; + BOOL operator>=(CTimeSpan timeSpan) const; + +#ifdef _UNICODE + // for compatibility with MFC 3.x + CString Format(LPCSTR pFormat) const; +#endif + CString Format(LPCTSTR pFormat) const; + CString Format(UINT nID) const; + + // serialization +#ifdef _DEBUG + friend CDumpContext& AFXAPI operator<<(CDumpContext& dc,CTimeSpan timeSpan); +#endif + friend CArchive& AFXAPI operator<<(CArchive& ar, CTimeSpan timeSpan); + friend CArchive& AFXAPI operator>>(CArchive& ar, CTimeSpan& rtimeSpan); + +private: + time_t m_timeSpan; + friend class CTime; +}; + +class CTime +{ +public: + +// Constructors + static CTime PASCAL GetCurrentTime(); + + CTime(); + CTime(time_t time); + CTime(int nYear, int nMonth, int nDay, int nHour, int nMin, int nSec, + int nDST = -1); + CTime(WORD wDosDate, WORD wDosTime, int nDST = -1); + CTime(const CTime& timeSrc); + + CTime(const SYSTEMTIME& sysTime, int nDST = -1); + CTime(const FILETIME& fileTime, int nDST = -1); + const CTime& operator=(const CTime& timeSrc); + const CTime& operator=(time_t t); + +// Attributes + struct tm* GetGmtTm(struct tm* ptm = NULL) const; + struct tm* GetLocalTm(struct tm* ptm = NULL) const; + + time_t GetTime() const; + int GetYear() const; + int GetMonth() const; // month of year (1 = Jan) + int GetDay() const; // day of month + int GetHour() const; + int GetMinute() const; + int GetSecond() const; + int GetDayOfWeek() const; // 1=Sun, 2=Mon, ..., 7=Sat + +// Operations + // time math + CTimeSpan operator-(CTime time) const; + CTime operator-(CTimeSpan timeSpan) const; + CTime operator+(CTimeSpan timeSpan) const; + const CTime& operator+=(CTimeSpan timeSpan); + const CTime& operator-=(CTimeSpan timeSpan); + BOOL operator==(CTime time) const; + BOOL operator!=(CTime time) const; + BOOL operator<(CTime time) const; + BOOL operator>(CTime time) const; + BOOL operator<=(CTime time) const; + BOOL operator>=(CTime time) const; + + // formatting using "C" strftime + CString Format(LPCTSTR pFormat) const; + CString FormatGmt(LPCTSTR pFormat) const; + CString Format(UINT nFormatID) const; + CString FormatGmt(UINT nFormatID) const; + +#ifdef _UNICODE + // for compatibility with MFC 3.x + CString Format(LPCSTR pFormat) const; + CString FormatGmt(LPCSTR pFormat) const; +#endif + + // serialization +#ifdef _DEBUG + friend CDumpContext& AFXAPI operator<<(CDumpContext& dc, CTime time); +#endif + friend CArchive& AFXAPI operator<<(CArchive& ar, CTime time); + friend CArchive& AFXAPI operator>>(CArchive& ar, CTime& rtime); + +private: + time_t m_time; +}; + +///////////////////////////////////////////////////////////////////////////// +// File status + +struct CFileStatus +{ + CTime m_ctime; // creation date/time of file + CTime m_mtime; // last modification date/time of file + CTime m_atime; // last access date/time of file + LONG m_size; // logical size of file in bytes + BYTE m_attribute; // logical OR of CFile::Attribute enum values + BYTE _m_padding; // pad the structure to a WORD + TCHAR m_szFullName[_MAX_PATH]; // absolute path name + +#ifdef _DEBUG + void Dump(CDumpContext& dc) const; +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// Diagnostic memory management routines + +// Low level sanity checks for memory blocks +BOOL AFXAPI AfxIsValidAddress(const void* lp, + UINT nBytes, BOOL bReadWrite = TRUE); +BOOL AFXAPI AfxIsValidString(LPCWSTR lpsz, int nLength = -1); +BOOL AFXAPI AfxIsValidString(LPCSTR lpsz, int nLength = -1); + +#if defined(_DEBUG) && !defined(_AFX_NO_DEBUG_CRT) + +// Memory tracking allocation +void* AFX_CDECL operator new(size_t nSize, LPCSTR lpszFileName, int nLine); +#define DEBUG_NEW new(THIS_FILE, __LINE__) + +void* AFXAPI AfxAllocMemoryDebug(size_t nSize, BOOL bIsObject, + LPCSTR lpszFileName, int nLine); +void AFXAPI AfxFreeMemoryDebug(void* pbData, BOOL bIsObject); + +// Dump any memory leaks since program started +BOOL AFXAPI AfxDumpMemoryLeaks(); + +// Return TRUE if valid memory block of nBytes +BOOL AFXAPI AfxIsMemoryBlock(const void* p, UINT nBytes, + LONG* plRequestNumber = NULL); + +// Return TRUE if memory is sane or print out what is wrong +BOOL AFXAPI AfxCheckMemory(); + +#define afxMemDF _crtDbgFlag + +enum AfxMemDF // memory debug/diagnostic flags +{ + allocMemDF = 0x01, // turn on debugging allocator + delayFreeMemDF = 0x02, // delay freeing memory + checkAlwaysMemDF = 0x04 // AfxCheckMemory on every alloc/free +}; + +#ifdef _UNICODE +#define AfxOutputDebugString(lpsz) \ + do \ + { \ + int _convert; _convert = 0; \ + _RPT0(_CRT_WARN, W2CA(lpsz)); \ + } while (0) +#else +#define AfxOutputDebugString(lpsz) _RPT0(_CRT_WARN, lpsz) +#endif + +// turn on/off tracking for a short while +BOOL AFXAPI AfxEnableMemoryTracking(BOOL bTrack); + +// Advanced initialization: for overriding default diagnostics +BOOL AFXAPI AfxDiagnosticInit(void); + +// A failure hook returns whether to permit allocation +typedef BOOL (AFXAPI* AFX_ALLOC_HOOK)(size_t nSize, BOOL bObject, LONG lRequestNumber); + +// Set new hook, return old (never NULL) +AFX_ALLOC_HOOK AFXAPI AfxSetAllocHook(AFX_ALLOC_HOOK pfnAllocHook); + +// Debugger hook on specified allocation request - Obsolete +void AFXAPI AfxSetAllocStop(LONG lRequestNumber); + +// Memory state for snapshots/leak detection +struct CMemoryState +{ +// Attributes + enum blockUsage + { + freeBlock, // memory not used + objectBlock, // contains a CObject derived class object + bitBlock, // contains ::operator new data + crtBlock, + ignoredBlock, + nBlockUseMax // total number of usages + }; + + _CrtMemState m_memState; + LONG m_lCounts[nBlockUseMax]; + LONG m_lSizes[nBlockUseMax]; + LONG m_lHighWaterCount; + LONG m_lTotalCount; + + CMemoryState(); + +// Operations + void Checkpoint(); // fill with current state + BOOL Difference(const CMemoryState& oldState, + const CMemoryState& newState); // fill with difference + void UpdateData(); + + // Output to afxDump + void DumpStatistics() const; + void DumpAllObjectsSince() const; +}; + +// Enumerate allocated objects or runtime classes +void AFXAPI AfxDoForAllObjects(void (AFX_CDECL *pfn)(CObject* pObject, void* pContext), + void* pContext); +void AFXAPI AfxDoForAllClasses(void (AFX_CDECL *pfn)(const CRuntimeClass* pClass, + void* pContext), void* pContext); + +#else + +// non-_DEBUG_ALLOC version that assume everything is OK +#define DEBUG_NEW new +#define AfxCheckMemory() TRUE +#define AfxIsMemoryBlock(p, nBytes) TRUE +#define AfxEnableMemoryTracking(bTrack) FALSE +#define AfxOutputDebugString(lpsz) ::OutputDebugString(lpsz) + +// diagnostic initialization +#ifndef _DEBUG +#define AfxDiagnosticInit() TRUE +#else +BOOL AFXAPI AfxDiagnosticInit(void); +#endif + +#endif // _DEBUG + +///////////////////////////////////////////////////////////////////////////// +// Archives for serializing CObject data + +// needed for implementation +class CPtrArray; +class CMapPtrToPtr; +class CDocument; + +class CArchive +{ +public: +// Flag values + enum Mode { store = 0, load = 1, bNoFlushOnDelete = 2, bNoByteSwap = 4 }; + + CArchive(CFile* pFile, UINT nMode, int nBufSize = 4096, void* lpBuf = NULL); + ~CArchive(); + +// Attributes + BOOL IsLoading() const; + BOOL IsStoring() const; + BOOL IsByteSwapping() const; + BOOL IsBufferEmpty() const; + + CFile* GetFile() const; + UINT GetObjectSchema(); // only valid when reading a CObject* + void SetObjectSchema(UINT nSchema); + + // pointer to document being serialized -- must set to serialize + // COleClientItems in a document! + CDocument* m_pDocument; + +// Operations + UINT Read(void* lpBuf, UINT nMax); + void Write(const void* lpBuf, UINT nMax); + void Flush(); + void Close(); + void Abort(); // close and shutdown without exceptions + + // reading and writing strings + void WriteString(LPCTSTR lpsz); + LPTSTR ReadString(LPTSTR lpsz, UINT nMax); + BOOL ReadString(CString& rString); + +public: + // Object I/O is pointer based to avoid added construction overhead. + // Use the Serialize member function directly for embedded objects. + friend CArchive& AFXAPI operator<<(CArchive& ar, const CObject* pOb); + + friend CArchive& AFXAPI operator>>(CArchive& ar, CObject*& pOb); + friend CArchive& AFXAPI operator>>(CArchive& ar, const CObject*& pOb); + + // insertion operations + CArchive& operator<<(BYTE by); + CArchive& operator<<(WORD w); + CArchive& operator<<(LONG l); + CArchive& operator<<(DWORD dw); + CArchive& operator<<(float f); + CArchive& operator<<(double d); + + CArchive& operator<<(int i); + CArchive& operator<<(short w); + CArchive& operator<<(char ch); + CArchive& operator<<(unsigned u); + + // extraction operations + CArchive& operator>>(BYTE& by); + CArchive& operator>>(WORD& w); + CArchive& operator>>(DWORD& dw); + CArchive& operator>>(LONG& l); + CArchive& operator>>(float& f); + CArchive& operator>>(double& d); + + CArchive& operator>>(int& i); + CArchive& operator>>(short& w); + CArchive& operator>>(char& ch); + CArchive& operator>>(unsigned& u); + + // object read/write + CObject* ReadObject(const CRuntimeClass* pClass); + void WriteObject(const CObject* pOb); + // advanced object mapping (used for forced references) + void MapObject(const CObject* pOb); + + // advanced versioning support + void WriteClass(const CRuntimeClass* pClassRef); + CRuntimeClass* ReadClass(const CRuntimeClass* pClassRefRequested = NULL, + UINT* pSchema = NULL, DWORD* pObTag = NULL); + void SerializeClass(const CRuntimeClass* pClassRef); + + // advanced operations (used when storing/loading many objects) + void SetStoreParams(UINT nHashSize = 2053, UINT nBlockSize = 128); + void SetLoadParams(UINT nGrowBy = 1024); + +// Implementation +public: + BOOL m_bForceFlat; // for COleClientItem implementation (default TRUE) + BOOL m_bDirectBuffer; // TRUE if m_pFile supports direct buffering + void FillBuffer(UINT nBytesNeeded); + void CheckCount(); // throw exception if m_nMapCount is too large + + // special functions for reading and writing (16-bit compatible) counts + DWORD ReadCount(); + void WriteCount(DWORD dwCount); + + // public for advanced use + UINT m_nObjectSchema; + CString m_strFileName; + +protected: + // archive objects cannot be copied or assigned + CArchive(const CArchive& arSrc); + void operator=(const CArchive& arSrc); + + BOOL m_nMode; + BOOL m_bUserBuf; + int m_nBufSize; + CFile* m_pFile; + BYTE* m_lpBufCur; + BYTE* m_lpBufMax; + BYTE* m_lpBufStart; + + // array/map for CObject* and CRuntimeClass* load/store + UINT m_nMapCount; + union + { + CPtrArray* m_pLoadArray; + CMapPtrToPtr* m_pStoreMap; + }; + // map to keep track of mismatched schemas + CMapPtrToPtr* m_pSchemaMap; + + // advanced parameters (controls performance with large archives) + UINT m_nGrowSize; + UINT m_nHashSize; +}; + +///////////////////////////////////////////////////////////////////////////// +// Diagnostic dumping + +class CDumpContext +{ +public: + CDumpContext(CFile* pFile = NULL); + +// Attributes + int GetDepth() const; // 0 => this object, 1 => children objects + void SetDepth(int nNewDepth); + +// Operations + CDumpContext& operator<<(LPCTSTR lpsz); +#ifdef _UNICODE + CDumpContext& operator<<(LPCSTR lpsz); // automatically widened +#else + CDumpContext& operator<<(LPCWSTR lpsz); // automatically thinned +#endif + CDumpContext& operator<<(const void* lp); + CDumpContext& operator<<(const CObject* pOb); + CDumpContext& operator<<(const CObject& ob); + CDumpContext& operator<<(BYTE by); + CDumpContext& operator<<(WORD w); + CDumpContext& operator<<(UINT u); + CDumpContext& operator<<(LONG l); + CDumpContext& operator<<(DWORD dw); + CDumpContext& operator<<(float f); + CDumpContext& operator<<(double d); + CDumpContext& operator<<(int n); + void HexDump(LPCTSTR lpszLine, BYTE* pby, int nBytes, int nWidth); + void Flush(); + +// Implementation +protected: + // dump context objects cannot be copied or assigned + CDumpContext(const CDumpContext& dcSrc); + void operator=(const CDumpContext& dcSrc); + void OutputString(LPCTSTR lpsz); + + int m_nDepth; + +public: + CFile* m_pFile; +}; + +#ifdef _DEBUG +extern AFX_DATA CDumpContext afxDump; +extern AFX_DATA BOOL afxTraceEnabled; +#endif + +///////////////////////////////////////////////////////////////////////////// +// Special include for Win32s compatibility + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifndef __AFXCOLL_H__ + #include <afxcoll.h> + #ifndef __AFXSTATE_H__ + #include <afxstat_.h> // for _AFX_APP_STATE and _AFX_THREAD_STATE + #endif +#endif + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_ENABLE_INLINES +#define _AFX_INLINE inline +#include <afx.inl> +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif // __AFX_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afx.inl b/public/sdk/inc/mfc42/afx.inl new file mode 100644 index 000000000..546495c27 --- /dev/null +++ b/public/sdk/inc/mfc42/afx.inl @@ -0,0 +1,415 @@ +// 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. + +// Inlines for AFX.H + +#ifdef _AFX_INLINE + +// CObject +_AFX_INLINE CObject::CObject() + { } +_AFX_INLINE CObject::~CObject() + { } +_AFX_INLINE void CObject::Serialize(CArchive&) + { /* CObject does not serialize anything by default */ } +_AFX_INLINE void* PASCAL CObject::operator new(size_t, void* p) + { return p; } +#ifndef _DEBUG +// _DEBUG versions in memory.cpp +_AFX_INLINE void PASCAL CObject::operator delete(void* p) + { ::operator delete(p); } +_AFX_INLINE void* PASCAL CObject::operator new(size_t nSize) + { return ::operator new(nSize); } +// _DEBUG versions in objcore.cpp +_AFX_INLINE void CObject::AssertValid() const + { /* no asserts in release builds */ } +_AFX_INLINE void CObject::Dump(CDumpContext&) const + { /* no dumping in release builds */ } +#endif +_AFX_INLINE const CObject* AFX_CDECL AfxDynamicDownCast(CRuntimeClass* pClass, const CObject* pObject) + { return (const CObject*)AfxDynamicDownCast(pClass, (CObject*)pObject); } +#ifdef _DEBUG +_AFX_INLINE const CObject* AFX_CDECL AfxStaticDownCast(CRuntimeClass* pClass, const CObject* pObject) + { return (const CObject*)AfxStaticDownCast(pClass, (CObject*)pObject); } +#endif + +// exceptions +_AFX_INLINE CException::~CException() + { } +_AFX_INLINE CSimpleException::CSimpleException() + { m_bInitialized = FALSE; m_bLoaded = FALSE; } +_AFX_INLINE CSimpleException::CSimpleException(BOOL bAutoDelete) + : CException(bAutoDelete) { m_bInitialized = FALSE; m_bLoaded = FALSE; } +_AFX_INLINE CSimpleException::~CSimpleException() + { } + +_AFX_INLINE CMemoryException::CMemoryException() + : CSimpleException() { } +_AFX_INLINE CMemoryException::CMemoryException(BOOL bAutoDelete, UINT nResourceID) + : CSimpleException(bAutoDelete) { m_nResourceID = nResourceID; } +_AFX_INLINE CMemoryException::~CMemoryException() + { } +_AFX_INLINE CNotSupportedException::CNotSupportedException() + : CSimpleException() { } +_AFX_INLINE CNotSupportedException::CNotSupportedException(BOOL bAutoDelete, UINT nResourceID) + : CSimpleException(bAutoDelete) { m_nResourceID = nResourceID; } +_AFX_INLINE CNotSupportedException::~CNotSupportedException() + { } +_AFX_INLINE CArchiveException::CArchiveException(int cause, + LPCTSTR lpszFileName /* = NULL */) + { m_cause = cause; m_strFileName = lpszFileName; } +_AFX_INLINE CArchiveException::~CArchiveException() + { } +_AFX_INLINE CFileException::CFileException(int cause, LONG lOsError, + LPCTSTR pstrFileName /* = NULL */) + { m_cause = cause; m_lOsError = lOsError; m_strFileName = pstrFileName; } +_AFX_INLINE CFileException::~CFileException() + { } + +// CFile +_AFX_INLINE CFile::operator HFILE() const + { return m_hFile; } +_AFX_INLINE DWORD CFile::ReadHuge(void* lpBuffer, DWORD dwCount) + { return (DWORD)Read(lpBuffer, (UINT)dwCount); } +_AFX_INLINE void CFile::WriteHuge(const void* lpBuffer, DWORD dwCount) + { Write(lpBuffer, (UINT)dwCount); } +_AFX_INLINE DWORD CFile::SeekToEnd() + { return Seek(0, CFile::end); } +_AFX_INLINE void CFile::SeekToBegin() + { Seek(0, CFile::begin); } +_AFX_INLINE void CFile::SetFilePath(LPCTSTR lpszNewName) +{ + ASSERT_VALID(this); + ASSERT(AfxIsValidString(lpszNewName, FALSE)); + m_strFileName = lpszNewName; +} + +#ifndef _MAC +// CFileFind +_AFX_INLINE BOOL CFileFind::IsReadOnly() const + { return MatchesMask(FILE_ATTRIBUTE_READONLY); } +_AFX_INLINE BOOL CFileFind::IsDirectory() const + { return MatchesMask(FILE_ATTRIBUTE_DIRECTORY); } +_AFX_INLINE BOOL CFileFind::IsCompressed() const + { return MatchesMask(FILE_ATTRIBUTE_COMPRESSED); } +_AFX_INLINE BOOL CFileFind::IsSystem() const + { return MatchesMask(FILE_ATTRIBUTE_SYSTEM); } +_AFX_INLINE BOOL CFileFind::IsHidden() const + { return MatchesMask(FILE_ATTRIBUTE_HIDDEN); } +_AFX_INLINE BOOL CFileFind::IsTemporary() const + { return MatchesMask(FILE_ATTRIBUTE_TEMPORARY); } +_AFX_INLINE BOOL CFileFind::IsNormal() const + { return MatchesMask(FILE_ATTRIBUTE_NORMAL); } +_AFX_INLINE BOOL CFileFind::IsArchived() const + { return MatchesMask(FILE_ATTRIBUTE_ARCHIVE); } +#endif //!_MAC + +// CString +_AFX_INLINE CStringData* CString::GetData() const + { ASSERT(m_pchData != NULL); return ((CStringData*)m_pchData)-1; } +_AFX_INLINE void CString::Init() + { m_pchData = afxEmptyString.m_pchData; } +_AFX_INLINE CString::CString(const unsigned char* lpsz) + { Init(); *this = (LPCSTR)lpsz; } +_AFX_INLINE const CString& CString::operator=(const unsigned char* lpsz) + { *this = (LPCSTR)lpsz; return *this; } +#ifdef _UNICODE +_AFX_INLINE const CString& CString::operator+=(char ch) + { *this += (TCHAR)ch; return *this; } +_AFX_INLINE const CString& CString::operator=(char ch) + { *this = (TCHAR)ch; return *this; } +_AFX_INLINE CString AFXAPI operator+(const CString& string, char ch) + { return string + (TCHAR)ch; } +_AFX_INLINE CString AFXAPI operator+(char ch, const CString& string) + { return (TCHAR)ch + string; } +#endif + +_AFX_INLINE int CString::GetLength() const + { return GetData()->nDataLength; } +_AFX_INLINE int CString::GetAllocLength() const + { return GetData()->nAllocLength; } +_AFX_INLINE BOOL CString::IsEmpty() const + { return GetData()->nDataLength == 0; } +_AFX_INLINE CString::operator LPCTSTR() const + { return m_pchData; } +_AFX_INLINE int PASCAL CString::SafeStrlen(LPCTSTR lpsz) + { return (lpsz == NULL) ? 0 : lstrlen(lpsz); } + +// CString support (windows specific) +_AFX_INLINE int CString::Compare(LPCTSTR lpsz) const + { return _tcscmp(m_pchData, lpsz); } // MBCS/Unicode aware +_AFX_INLINE int CString::CompareNoCase(LPCTSTR lpsz) const + { return _tcsicmp(m_pchData, lpsz); } // MBCS/Unicode aware +// CString::Collate is often slower than Compare but is MBSC/Unicode +// aware as well as locale-sensitive with respect to sort order. +_AFX_INLINE int CString::Collate(LPCTSTR lpsz) const + { return _tcscoll(m_pchData, lpsz); } // locale sensitive + +_AFX_INLINE TCHAR CString::GetAt(int nIndex) const +{ + ASSERT(nIndex >= 0); + ASSERT(nIndex < GetData()->nDataLength); + return m_pchData[nIndex]; +} +_AFX_INLINE TCHAR CString::operator[](int nIndex) const +{ + // same as GetAt + ASSERT(nIndex >= 0); + ASSERT(nIndex < GetData()->nDataLength); + return m_pchData[nIndex]; +} +_AFX_INLINE BOOL AFXAPI operator==(const CString& s1, const CString& s2) + { return s1.Compare(s2) == 0; } +_AFX_INLINE BOOL AFXAPI operator==(const CString& s1, LPCTSTR s2) + { return s1.Compare(s2) == 0; } +_AFX_INLINE BOOL AFXAPI operator==(LPCTSTR s1, const CString& s2) + { return s2.Compare(s1) == 0; } +_AFX_INLINE BOOL AFXAPI operator!=(const CString& s1, const CString& s2) + { return s1.Compare(s2) != 0; } +_AFX_INLINE BOOL AFXAPI operator!=(const CString& s1, LPCTSTR s2) + { return s1.Compare(s2) != 0; } +_AFX_INLINE BOOL AFXAPI operator!=(LPCTSTR s1, const CString& s2) + { return s2.Compare(s1) != 0; } +_AFX_INLINE BOOL AFXAPI operator<(const CString& s1, const CString& s2) + { return s1.Compare(s2) < 0; } +_AFX_INLINE BOOL AFXAPI operator<(const CString& s1, LPCTSTR s2) + { return s1.Compare(s2) < 0; } +_AFX_INLINE BOOL AFXAPI operator<(LPCTSTR s1, const CString& s2) + { return s2.Compare(s1) > 0; } +_AFX_INLINE BOOL AFXAPI operator>(const CString& s1, const CString& s2) + { return s1.Compare(s2) > 0; } +_AFX_INLINE BOOL AFXAPI operator>(const CString& s1, LPCTSTR s2) + { return s1.Compare(s2) > 0; } +_AFX_INLINE BOOL AFXAPI operator>(LPCTSTR s1, const CString& s2) + { return s2.Compare(s1) < 0; } +_AFX_INLINE BOOL AFXAPI operator<=(const CString& s1, const CString& s2) + { return s1.Compare(s2) <= 0; } +_AFX_INLINE BOOL AFXAPI operator<=(const CString& s1, LPCTSTR s2) + { return s1.Compare(s2) <= 0; } +_AFX_INLINE BOOL AFXAPI operator<=(LPCTSTR s1, const CString& s2) + { return s2.Compare(s1) >= 0; } +_AFX_INLINE BOOL AFXAPI operator>=(const CString& s1, const CString& s2) + { return s1.Compare(s2) >= 0; } +_AFX_INLINE BOOL AFXAPI operator>=(const CString& s1, LPCTSTR s2) + { return s1.Compare(s2) >= 0; } +_AFX_INLINE BOOL AFXAPI operator>=(LPCTSTR s1, const CString& s2) + { return s2.Compare(s1) <= 0; } + +// CTime and CTimeSpan +_AFX_INLINE CTimeSpan::CTimeSpan() + { } +_AFX_INLINE CTimeSpan::CTimeSpan(time_t time) + { m_timeSpan = time; } +_AFX_INLINE CTimeSpan::CTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) + { m_timeSpan = nSecs + 60* (nMins + 60* (nHours + 24* lDays)); } +_AFX_INLINE CTimeSpan::CTimeSpan(const CTimeSpan& timeSpanSrc) + { m_timeSpan = timeSpanSrc.m_timeSpan; } +_AFX_INLINE const CTimeSpan& CTimeSpan::operator=(const CTimeSpan& timeSpanSrc) + { m_timeSpan = timeSpanSrc.m_timeSpan; return *this; } +_AFX_INLINE LONG CTimeSpan::GetDays() const + { return m_timeSpan / (24*3600L); } +_AFX_INLINE LONG CTimeSpan::GetTotalHours() const + { return m_timeSpan/3600; } +_AFX_INLINE int CTimeSpan::GetHours() const + { return (int)(GetTotalHours() - GetDays()*24); } +_AFX_INLINE LONG CTimeSpan::GetTotalMinutes() const + { return m_timeSpan/60; } +_AFX_INLINE int CTimeSpan::GetMinutes() const + { return (int)(GetTotalMinutes() - GetTotalHours()*60); } +_AFX_INLINE LONG CTimeSpan::GetTotalSeconds() const + { return m_timeSpan; } +_AFX_INLINE int CTimeSpan::GetSeconds() const + { return (int)(GetTotalSeconds() - GetTotalMinutes()*60); } +_AFX_INLINE CTimeSpan CTimeSpan::operator-(CTimeSpan timeSpan) const + { return CTimeSpan(m_timeSpan - timeSpan.m_timeSpan); } +_AFX_INLINE CTimeSpan CTimeSpan::operator+(CTimeSpan timeSpan) const + { return CTimeSpan(m_timeSpan + timeSpan.m_timeSpan); } +_AFX_INLINE const CTimeSpan& CTimeSpan::operator+=(CTimeSpan timeSpan) + { m_timeSpan += timeSpan.m_timeSpan; return *this; } +_AFX_INLINE const CTimeSpan& CTimeSpan::operator-=(CTimeSpan timeSpan) + { m_timeSpan -= timeSpan.m_timeSpan; return *this; } +_AFX_INLINE BOOL CTimeSpan::operator==(CTimeSpan timeSpan) const + { return m_timeSpan == timeSpan.m_timeSpan; } +_AFX_INLINE BOOL CTimeSpan::operator!=(CTimeSpan timeSpan) const + { return m_timeSpan != timeSpan.m_timeSpan; } +_AFX_INLINE BOOL CTimeSpan::operator<(CTimeSpan timeSpan) const + { return m_timeSpan < timeSpan.m_timeSpan; } +_AFX_INLINE BOOL CTimeSpan::operator>(CTimeSpan timeSpan) const + { return m_timeSpan > timeSpan.m_timeSpan; } +_AFX_INLINE BOOL CTimeSpan::operator<=(CTimeSpan timeSpan) const + { return m_timeSpan <= timeSpan.m_timeSpan; } +_AFX_INLINE BOOL CTimeSpan::operator>=(CTimeSpan timeSpan) const + { return m_timeSpan >= timeSpan.m_timeSpan; } + + +_AFX_INLINE CTime::CTime() + { } +_AFX_INLINE CTime::CTime(time_t time) + { m_time = time; } +_AFX_INLINE CTime::CTime(const CTime& timeSrc) + { m_time = timeSrc.m_time; } +_AFX_INLINE const CTime& CTime::operator=(const CTime& timeSrc) + { m_time = timeSrc.m_time; return *this; } +_AFX_INLINE const CTime& CTime::operator=(time_t t) + { m_time = t; return *this; } +_AFX_INLINE time_t CTime::GetTime() const + { return m_time; } +_AFX_INLINE int CTime::GetYear() const + { return (GetLocalTm(NULL)->tm_year) + 1900; } +_AFX_INLINE int CTime::GetMonth() const + { return GetLocalTm(NULL)->tm_mon + 1; } +_AFX_INLINE int CTime::GetDay() const + { return GetLocalTm(NULL)->tm_mday; } +_AFX_INLINE int CTime::GetHour() const + { return GetLocalTm(NULL)->tm_hour; } +_AFX_INLINE int CTime::GetMinute() const + { return GetLocalTm(NULL)->tm_min; } +_AFX_INLINE int CTime::GetSecond() const + { return GetLocalTm(NULL)->tm_sec; } +_AFX_INLINE int CTime::GetDayOfWeek() const + { return GetLocalTm(NULL)->tm_wday + 1; } +_AFX_INLINE CTimeSpan CTime::operator-(CTime time) const + { return CTimeSpan(m_time - time.m_time); } +_AFX_INLINE CTime CTime::operator-(CTimeSpan timeSpan) const + { return CTime(m_time - timeSpan.m_timeSpan); } +_AFX_INLINE CTime CTime::operator+(CTimeSpan timeSpan) const + { return CTime(m_time + timeSpan.m_timeSpan); } +_AFX_INLINE const CTime& CTime::operator+=(CTimeSpan timeSpan) + { m_time += timeSpan.m_timeSpan; return *this; } +_AFX_INLINE const CTime& CTime::operator-=(CTimeSpan timeSpan) + { m_time -= timeSpan.m_timeSpan; return *this; } +_AFX_INLINE BOOL CTime::operator==(CTime time) const + { return m_time == time.m_time; } +_AFX_INLINE BOOL CTime::operator!=(CTime time) const + { return m_time != time.m_time; } +_AFX_INLINE BOOL CTime::operator<(CTime time) const + { return m_time < time.m_time; } +_AFX_INLINE BOOL CTime::operator>(CTime time) const + { return m_time > time.m_time; } +_AFX_INLINE BOOL CTime::operator<=(CTime time) const + { return m_time <= time.m_time; } +_AFX_INLINE BOOL CTime::operator>=(CTime time) const + { return m_time >= time.m_time; } + + +// CArchive +_AFX_INLINE BOOL CArchive::IsLoading() const + { return (m_nMode & CArchive::load) != 0; } +_AFX_INLINE BOOL CArchive::IsStoring() const + { return (m_nMode & CArchive::load) == 0; } +_AFX_INLINE BOOL CArchive::IsByteSwapping() const + { return (m_nMode & CArchive::bNoByteSwap) == 0; } +_AFX_INLINE BOOL CArchive::IsBufferEmpty() const + { return m_lpBufCur == m_lpBufMax; } +_AFX_INLINE CFile* CArchive::GetFile() const + { return m_pFile; } +_AFX_INLINE void CArchive::SetObjectSchema(UINT nSchema) + { m_nObjectSchema = nSchema; } +_AFX_INLINE void CArchive::SetStoreParams(UINT nHashSize, UINT nBlockSize) +{ + ASSERT(IsStoring()); + ASSERT(m_pStoreMap == NULL); // must be before first object written + m_nHashSize = nHashSize; + m_nGrowSize = nBlockSize; +} +_AFX_INLINE void CArchive::SetLoadParams(UINT nGrowBy) +{ + ASSERT(IsLoading()); + ASSERT(m_pLoadArray == NULL); // must be before first object read + m_nGrowSize = nGrowBy; +} +_AFX_INLINE CArchive& CArchive::operator<<(int i) + { return CArchive::operator<<((LONG)i); } +_AFX_INLINE CArchive& CArchive::operator<<(unsigned u) + { return CArchive::operator<<((LONG)u); } +_AFX_INLINE CArchive& CArchive::operator<<(short w) + { return CArchive::operator<<((WORD)w); } +_AFX_INLINE CArchive& CArchive::operator<<(char ch) + { return CArchive::operator<<((BYTE)ch); } +_AFX_INLINE CArchive& CArchive::operator<<(BYTE by) + { if (m_lpBufCur + sizeof(BYTE) > m_lpBufMax) Flush(); + *(UNALIGNED BYTE*)m_lpBufCur = by; m_lpBufCur += sizeof(BYTE); return *this; } +#ifndef _MAC +_AFX_INLINE CArchive& CArchive::operator<<(WORD w) + { if (m_lpBufCur + sizeof(WORD) > m_lpBufMax) Flush(); + *(UNALIGNED WORD*)m_lpBufCur = w; m_lpBufCur += sizeof(WORD); return *this; } +_AFX_INLINE CArchive& CArchive::operator<<(LONG l) + { if (m_lpBufCur + sizeof(LONG) > m_lpBufMax) Flush(); + *(UNALIGNED LONG*)m_lpBufCur = l; m_lpBufCur += sizeof(LONG); return *this; } +_AFX_INLINE CArchive& CArchive::operator<<(DWORD dw) + { if (m_lpBufCur + sizeof(DWORD) > m_lpBufMax) Flush(); + *(UNALIGNED DWORD*)m_lpBufCur = dw; m_lpBufCur += sizeof(DWORD); return *this; } +_AFX_INLINE CArchive& CArchive::operator<<(float f) + { if (m_lpBufCur + sizeof(float) > m_lpBufMax) Flush(); + *(UNALIGNED _AFX_FLOAT*)m_lpBufCur = *(_AFX_FLOAT*)&f; m_lpBufCur += sizeof(float); return *this; + } +_AFX_INLINE CArchive& CArchive::operator<<(double d) + { if (m_lpBufCur + sizeof(double) > m_lpBufMax) Flush(); + *(UNALIGNED _AFX_DOUBLE*)m_lpBufCur = *(_AFX_DOUBLE*)&d; m_lpBufCur += sizeof(double); return *this; } +#endif +_AFX_INLINE CArchive& CArchive::operator>>(int& i) + { return CArchive::operator>>((LONG&)i); } +_AFX_INLINE CArchive& CArchive::operator>>(unsigned& u) + { return CArchive::operator>>((LONG&)u); } +_AFX_INLINE CArchive& CArchive::operator>>(short& w) + { return CArchive::operator>>((WORD&)w); } +_AFX_INLINE CArchive& CArchive::operator>>(char& ch) + { return CArchive::operator>>((BYTE&)ch); } +_AFX_INLINE CArchive& CArchive::operator>>(BYTE& by) + { if (m_lpBufCur + sizeof(BYTE) > m_lpBufMax) + FillBuffer(sizeof(BYTE) - (UINT)(m_lpBufMax - m_lpBufCur)); + by = *(UNALIGNED BYTE*)m_lpBufCur; m_lpBufCur += sizeof(BYTE); return *this; } +#ifndef _MAC +_AFX_INLINE CArchive& CArchive::operator>>(WORD& w) + { if (m_lpBufCur + sizeof(WORD) > m_lpBufMax) + FillBuffer(sizeof(WORD) - (UINT)(m_lpBufMax - m_lpBufCur)); + w = *(UNALIGNED WORD*)m_lpBufCur; m_lpBufCur += sizeof(WORD); return *this; } +_AFX_INLINE CArchive& CArchive::operator>>(DWORD& dw) + { if (m_lpBufCur + sizeof(DWORD) > m_lpBufMax) + FillBuffer(sizeof(DWORD) - (UINT)(m_lpBufMax - m_lpBufCur)); + dw = *(UNALIGNED DWORD*)m_lpBufCur; m_lpBufCur += sizeof(DWORD); return *this; } +_AFX_INLINE CArchive& CArchive::operator>>(float& f) + { if (m_lpBufCur + sizeof(float) > m_lpBufMax) + FillBuffer(sizeof(float) - (UINT)(m_lpBufMax - m_lpBufCur)); + *(_AFX_FLOAT*)&f = *(UNALIGNED _AFX_FLOAT*)m_lpBufCur; m_lpBufCur += sizeof(float); return *this; } +_AFX_INLINE CArchive& CArchive::operator>>(double& d) + { if (m_lpBufCur + sizeof(double) > m_lpBufMax) + FillBuffer(sizeof(double) - (UINT)(m_lpBufMax - m_lpBufCur)); + *(_AFX_DOUBLE*)&d = *(UNALIGNED _AFX_DOUBLE*)m_lpBufCur; m_lpBufCur += sizeof(double); return *this; } +_AFX_INLINE CArchive& CArchive::operator>>(LONG& l) + { if (m_lpBufCur + sizeof(LONG) > m_lpBufMax) + FillBuffer(sizeof(LONG) - (UINT)(m_lpBufMax - m_lpBufCur)); + l = *(UNALIGNED LONG*)m_lpBufCur; m_lpBufCur += sizeof(LONG); return *this; } +#endif +_AFX_INLINE CArchive::CArchive(const CArchive& /* arSrc */) + { } +_AFX_INLINE void CArchive::operator=(const CArchive& /* arSrc */) + { } +_AFX_INLINE CArchive& AFXAPI operator<<(CArchive& ar, const CObject* pOb) + { ar.WriteObject(pOb); return ar; } +_AFX_INLINE CArchive& AFXAPI operator>>(CArchive& ar, CObject*& pOb) + { pOb = ar.ReadObject(NULL); return ar; } +_AFX_INLINE CArchive& AFXAPI operator>>(CArchive& ar, const CObject*& pOb) + { pOb = ar.ReadObject(NULL); return ar; } + + +// CDumpContext +_AFX_INLINE int CDumpContext::GetDepth() const + { return m_nDepth; } +_AFX_INLINE void CDumpContext::SetDepth(int nNewDepth) + { m_nDepth = nNewDepth; } +_AFX_INLINE CDumpContext::CDumpContext(const CDumpContext& /* dcSrc */) + { } +_AFX_INLINE void CDumpContext::operator=(const CDumpContext& /* dcSrc */) + { } + +///////////////////////////////////////////////////////////////////////////// + +#endif //_AFX_INLINE diff --git a/public/sdk/inc/mfc42/afxadv.h b/public/sdk/inc/mfc42/afxadv.h new file mode 100644 index 000000000..972416d37 --- /dev/null +++ b/public/sdk/inc/mfc42/afxadv.h @@ -0,0 +1,181 @@ +// 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. + +// Note: This header file contains useful classes that are documented only +// in the MFC Technical Notes. These classes may change from version to +// version, so be prepared to change your code accordingly if you utilize +// this header. In the future, commonly used portions of this header +// may be moved and officially documented. + +#ifndef __AFXADV_H__ +#define __AFXADV_H__ + +#ifndef __AFXWIN_H__ + #include <afxwin.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// AFXADV - MFC Advanced Classes + +// Classes declared in this file + +//CObject + //CFile + //CMemFile + class CSharedFile; // Shared memory file + + class CRecentFileList; // used in CWinApp for MRU list + class CDockState; // state of docking toolbars + +///////////////////////////////////////////////////////////////////////////// + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +///////////////////////////////////////////////////////////////////////////// +// Shared file support + +class CSharedFile : public CMemFile +{ + DECLARE_DYNAMIC(CSharedFile) + +public: +// Constructors + CSharedFile(UINT nAllocFlags = GMEM_DDESHARE|GMEM_MOVEABLE, + UINT nGrowBytes = 4096); + +// Attributes + HGLOBAL Detach(); + void SetHandle(HGLOBAL hGlobalMemory, BOOL bAllowGrow = TRUE); + +// Implementation +public: + virtual ~CSharedFile(); +protected: + virtual BYTE* Alloc(DWORD nBytes); + virtual BYTE* Realloc(BYTE* lpMem, DWORD nBytes); + virtual void Free(BYTE* lpMem); + + UINT m_nAllocFlags; + HGLOBAL m_hGlobalMemory; + BOOL m_bAllowGrow; +}; + +///////////////////////////////////////////////////////////////////////////// +// CRecentFileList + +#define AFX_ABBREV_FILENAME_LEN 30 + +class CRecentFileList +{ +// Constructors +public: + CRecentFileList(UINT nStart, LPCTSTR lpszSection, + LPCTSTR lpszEntryFormat, int nSize, + int nMaxDispLen = AFX_ABBREV_FILENAME_LEN); + +// Attributes + int GetSize() const; + CString& operator[](int nIndex); + +// Operations + virtual void Remove(int nIndex); + virtual void Add(LPCTSTR lpszPathName); + BOOL GetDisplayName(CString& strName, int nIndex, + LPCTSTR lpszCurDir, int nCurDir, BOOL bAtLeastName = TRUE) const; + virtual void UpdateMenu(CCmdUI* pCmdUI); + virtual void ReadList(); // reads from registry or ini file + virtual void WriteList(); // writes to registry or ini file + +// Implementation + virtual ~CRecentFileList(); + + int m_nSize; // contents of the MRU list + CString* m_arrNames; + CString m_strSectionName; // for saving + CString m_strEntryFormat; + UINT m_nStart; // for displaying + int m_nMaxDisplayLength; + CString m_strOriginal; // original menu item contents +}; + +inline int CRecentFileList::GetSize() const + { return m_nSize; } +inline CString& CRecentFileList::operator[](int nIndex) + { ASSERT(nIndex < m_nSize); return m_arrNames[nIndex]; } + +///////////////////////////////////////////////////////////////////////////// +// CDockState - used for docking serialization + +class CDockState : public CObject +{ + DECLARE_SERIAL(CDockState) + CDockState(); + +public: +// Attributes + CPtrArray m_arrBarInfo; + +public: +// Operations + void LoadState(LPCTSTR lpszProfileName); + void SaveState(LPCTSTR lpszProfileName); + void Clear(); //deletes all the barinfo's + DWORD GetVersion(); + +// Implementation +protected: + BOOL m_bScaling; + CRect m_rectDevice; + CRect m_rectClip; + CSize m_sizeLogical; + DWORD m_dwVersion; + +public: + ~CDockState(); + virtual void Serialize(CArchive& ar); + + // scaling implementation + void ScalePoint(CPoint& pt); + void ScaleRectPos(CRect& rect); + CSize GetScreenSize(); + void SetScreenSize(CSize& size); +}; + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif // __AFXADV_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxaete.r b/public/sdk/inc/mfc42/afxaete.r new file mode 100644 index 000000000..c3aa8d3a7 --- /dev/null +++ b/public/sdk/inc/mfc42/afxaete.r @@ -0,0 +1,92 @@ +// 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. + +#ifndef __AFXAETE_R__ +#define __AFXAETE_R__ + +#include "mrc\Types.r" +#include "mrc\SysTypes.r" +#include "mrc\AppleEve.r" +#include "mrc\AERegist.r" +#include "mrc\AEUserTe.r" + + +resource 'aete' (0) +{ + 1, + 0, + langEnglish, + smRoman, + { + "Required Suite", + "Terms that every application should support", + kAERequiredSuite, + 1, + 1, + {}, {}, {}, {}, + + "MFC Suite", + "Terms supported by MFC applications", + '****', + 1, + 1, + { + "quit", + "Quit an application program", + kAERequiredSuite, + kAEQuitApplication, + noReply, + "", + replyOptional, + singleItem, + notEnumerated, + reserved, reserved, reserved, reserved, reserved, + reserved, reserved, reserved, reserved, + verbEvent, + reserved, reserved, reserved, + noParams, + "", + directParamOptional, + singleItem, + notEnumerated, + changesState, + reserved, reserved, reserved, reserved, reserved, + reserved, reserved, reserved, reserved, reserved, + reserved, reserved, + { + "saving", + keyAESaveOptions, + enumSaveOptions, + "specifies whether to save currently open documents", + optional, + singleItem, + enumerated, + reserved, reserved, reserved, reserved, reserved, + reserved, reserved, reserved, reserved, + prepositionParam, + notFeminine, + notMasculine, + singular + }, + }, + {}, {}, + { + enumSaveOptions, + { + "yes", kAEYes, "Save objects now", + "no", kAENo, "Do not save objects", + "ask", kAEAsk, "Ask the user whether to save" + }, + } + } +}; + + +#endif diff --git a/public/sdk/inc/mfc42/afxcmn.h b/public/sdk/inc/mfc42/afxcmn.h new file mode 100644 index 000000000..57f99a2fc --- /dev/null +++ b/public/sdk/inc/mfc42/afxcmn.h @@ -0,0 +1,919 @@ +// 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. + +#ifndef __AFXCMN_H__ +#define __AFXCMN_H__ + +#ifdef _AFX_NO_AFXCMN_SUPPORT + #error Windows Common Control classes not supported in this library variant. +#endif + +#ifndef __AFXWIN_H__ + #include <afxwin.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifndef IMAGE_BITMAP +#define IMAGE_BITMAP 0 +#endif + +#ifndef _AFX_NOFORCE_LIBS +#ifndef _MAC + +///////////////////////////////////////////////////////////////////////////// +// Win32 libraries + +#else //!_MAC + +///////////////////////////////////////////////////////////////////////////// +// Mac libraries + +// RichEdit requires OLE +#if !defined(_AFXDLL) && !defined(_USRDLL) + #ifdef _DEBUG + #pragma comment(lib, "wlmoled.lib") + #else + #pragma comment(lib, "wlmole.lib") + #endif +#else + #ifdef _DEBUG + #pragma comment(lib, "msvcoled.lib") + #else + #pragma comment(lib, "msvcole.lib") + #endif +#endif + +#pragma comment(lib, "uuid.lib") + +#ifdef _DEBUG + #pragma comment(lib, "ole2d.lib") + #pragma comment(lib, "ole2autd.lib") +#else + #pragma comment(lib, "ole2.lib") + #pragma comment(lib, "ole2auto.lib") +#endif + +#endif //_MAC +#endif //!_AFX_NOFORCE_LIBS + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +#ifndef _AFX_NO_RICHEDIT_SUPPORT + #ifndef _RICHEDIT_ + #include <richedit.h> + #endif + #ifdef __AFXOLE_H__ // only include richole if OLE support is included + #ifndef _RICHOLE_ + #include <richole.h> + #define _RICHOLE_ + #endif + #else + struct IRichEditOle; + struct IRichEditOleCallback; + #endif +#endif + +///////////////////////////////////////////////////////////////////////////// +// AFXCMN - MFC COMCTL32 Control Classes + +// Classes declared in this file + +//TOOLINFO + class CToolInfo; + +//CObject + class CImageList; + //CCmdTarget; + //CWnd + // class CListBox; + class CDragListBox; + class CListCtrl; + class CTreeCtrl; + class CSpinButtonCtrl; + class CHeaderCtrl; + class CSliderCtrl; + class CProgressCtrl; + class CHotKeyCtrl; + class CToolTipCtrl; + class CTabCtrl; + class CAnimateCtrl; + class CToolBarCtrl; + class CStatusBarCtrl; + class CRichEditCtrl; + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +///////////////////////////////////////////////////////////////////////////// +// CToolInfo + +#ifdef _UNICODE +class CToolInfo : public tagTOOLINFOW +#else +class CToolInfo : public tagTOOLINFOA +#endif +{ +public: + TCHAR szText[256]; +}; + +///////////////////////////////////////////////////////////////////////////// +// CDragListBox + +class CDragListBox : public CListBox +{ + DECLARE_DYNAMIC(CDragListBox) + +// Constructors +public: + CDragListBox(); + +// Attributes + int ItemFromPt(CPoint pt, BOOL bAutoScroll = TRUE) const; + +// Operations + virtual void DrawInsert(int nItem); + +// Overridables + virtual BOOL BeginDrag(CPoint pt); + virtual void CancelDrag(CPoint pt); + virtual UINT Dragging(CPoint pt); + virtual void Dropped(int nSrcIndex, CPoint pt); + +// Implementation +public: + int m_nLast; + void DrawSingle(int nIndex); + virtual void PreSubclassWindow(); + virtual ~CDragListBox(); +protected: + virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); +}; + +///////////////////////////////////////////////////////////////////////////// +// CStatusBarCtrl + +class CStatusBarCtrl : public CWnd +{ + DECLARE_DYNAMIC(CStatusBarCtrl) + +// Constructors +public: + CStatusBarCtrl(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + BOOL SetText(LPCTSTR lpszText, int nPane, int nType); + CString GetText(int nPane, int* pType = NULL) const; + int GetText(LPCTSTR lpszText, int nPane, int* pType = NULL) const; + int GetTextLength(int nPane, int* pType = NULL) const; + BOOL SetParts(int nParts, int* pWidths); + int GetParts(int nParts, int* pParts) const; + BOOL GetBorders(int* pBorders) const; + BOOL GetBorders(int& nHorz, int& nVert, int& nSpacing) const; + void SetMinHeight(int nMin); + BOOL SetSimple(BOOL bSimple = TRUE); + BOOL GetRect(int nPane, LPRECT lpRect) const; + +// Overridables + virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); + +// Implementation +public: + virtual ~CStatusBarCtrl(); +protected: + virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); +}; + +///////////////////////////////////////////////////////////////////////////// +// CListCtrl + +class CListCtrl : public CWnd +{ + DECLARE_DYNAMIC(CListCtrl) + +// Constructors +public: + CListCtrl(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + COLORREF GetBkColor() const; + BOOL SetBkColor(COLORREF cr); + CImageList* GetImageList(int nImageList) const; + CImageList* SetImageList(CImageList* pImageList, int nImageListType); + int GetItemCount() const; + BOOL GetItem(LV_ITEM* pItem) const; + BOOL SetItem(const LV_ITEM* pItem); + BOOL SetItem(int nItem, int nSubItem, UINT nMask, LPCTSTR lpszItem, + int nImage, UINT nState, UINT nStateMask, LPARAM lParam); + UINT GetCallbackMask() const; + BOOL SetCallbackMask(UINT nMask); + int GetNextItem(int nItem, int nFlags) const; + BOOL GetItemRect(int nItem, LPRECT lpRect, UINT nCode) const; + BOOL SetItemPosition(int nItem, POINT pt); + BOOL GetItemPosition(int nItem, LPPOINT lpPoint) const; + int GetStringWidth(LPCTSTR lpsz) const; + CEdit* GetEditControl() const; + BOOL GetColumn(int nCol, LV_COLUMN* pColumn) const; + BOOL SetColumn(int nCol, const LV_COLUMN* pColumn); + int GetColumnWidth(int nCol) const; + BOOL SetColumnWidth(int nCol, int cx); + BOOL GetViewRect(LPRECT lpRect) const; + COLORREF GetTextColor() const; + BOOL SetTextColor(COLORREF cr); + COLORREF GetTextBkColor() const; + BOOL SetTextBkColor(COLORREF cr); + int GetTopIndex() const; + int GetCountPerPage() const; + BOOL GetOrigin(LPPOINT lpPoint) const; + BOOL SetItemState(int nItem, LV_ITEM* pItem); + BOOL SetItemState(int nItem, UINT nState, UINT nMask); + UINT GetItemState(int nItem, UINT nMask) const; + CString GetItemText(int nItem, int nSubItem) const; + int GetItemText(int nItem, int nSubItem, LPTSTR lpszText, int nLen) const; + BOOL SetItemText(int nItem, int nSubItem, LPCTSTR lpszText); + void SetItemCount(int nItems); + BOOL SetItemData(int nItem, DWORD dwData); + DWORD GetItemData(int nItem) const; + UINT GetSelectedCount() const; + +// Operations + int InsertItem(const LV_ITEM* pItem); + int InsertItem(int nItem, LPCTSTR lpszItem); + int InsertItem(int nItem, LPCTSTR lpszItem, int nImage); + BOOL DeleteItem(int nItem); + BOOL DeleteAllItems(); + int FindItem(LV_FINDINFO* pFindInfo, int nStart = -1) const; + int HitTest(LV_HITTESTINFO* pHitTestInfo) const; + int HitTest(CPoint pt, UINT* pFlags = NULL) const; + BOOL EnsureVisible(int nItem, BOOL bPartialOK); + BOOL Scroll(CSize size); + BOOL RedrawItems(int nFirst, int nLast); + BOOL Arrange(UINT nCode); + CEdit* EditLabel(int nItem); + int InsertColumn(int nCol, const LV_COLUMN* pColumn); + int InsertColumn(int nCol, LPCTSTR lpszColumnHeading, + int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1); + BOOL DeleteColumn(int nCol); + CImageList* CreateDragImage(int nItem, LPPOINT lpPoint); + BOOL Update(int nItem); + BOOL SortItems(PFNLVCOMPARE pfnCompare, DWORD dwData); + +// Overridables + virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); + +// Implementation +public: + int InsertItem(UINT nMask, int nItem, LPCTSTR lpszItem, UINT nState, + UINT nStateMask, int nImage, LPARAM lParam); + virtual ~CListCtrl(); +protected: + void RemoveImageList(int nImageList); + virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); +protected: + //{{AFX_MSG(CListCtrl) + afx_msg void OnNcDestroy(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// CTreeCtrl + +class CTreeCtrl : public CWnd +{ + DECLARE_DYNAMIC(CTreeCtrl) + +// Constructors +public: + CTreeCtrl(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + BOOL GetItemRect(HTREEITEM hItem, LPRECT lpRect, BOOL bTextOnly) const; + UINT GetCount() const; + UINT GetIndent() const; + void SetIndent(UINT nIndent); + CImageList* GetImageList(UINT nImageList) const; + CImageList* SetImageList(CImageList* pImageList, int nImageListType); + HTREEITEM GetNextItem(HTREEITEM hItem, UINT nCode) const; + HTREEITEM GetChildItem(HTREEITEM hItem) const; + HTREEITEM GetNextSiblingItem(HTREEITEM hItem) const; + HTREEITEM GetPrevSiblingItem(HTREEITEM hItem) const; + HTREEITEM GetParentItem(HTREEITEM hItem) const; + HTREEITEM GetFirstVisibleItem() const; + HTREEITEM GetNextVisibleItem(HTREEITEM hItem) const; + HTREEITEM GetPrevVisibleItem(HTREEITEM hItem) const; + HTREEITEM GetSelectedItem() const; + HTREEITEM GetDropHilightItem() const; + HTREEITEM GetRootItem() const; + BOOL GetItem(TV_ITEM* pItem) const; + CString GetItemText(HTREEITEM hItem) const; + BOOL GetItemImage(HTREEITEM hItem, int& nImage, int& nSelectedImage) const; + UINT GetItemState(HTREEITEM hItem, UINT nStateMask) const; + DWORD GetItemData(HTREEITEM hItem) const; + BOOL SetItem(TV_ITEM* pItem); + BOOL SetItem(HTREEITEM hItem, UINT nMask, LPCTSTR lpszItem, int nImage, + int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam); + BOOL SetItemText(HTREEITEM hItem, LPCTSTR lpszItem); + BOOL SetItemImage(HTREEITEM hItem, int nImage, int nSelectedImage); + BOOL SetItemState(HTREEITEM hItem, UINT nState, UINT nStateMask); + BOOL SetItemData(HTREEITEM hItem, DWORD dwData); + BOOL ItemHasChildren(HTREEITEM hItem) const; + CEdit* GetEditControl() const; + UINT GetVisibleCount() const; + +// Operations + HTREEITEM InsertItem(LPTV_INSERTSTRUCT lpInsertStruct); + HTREEITEM InsertItem(UINT nMask, LPCTSTR lpszItem, int nImage, + int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam, + HTREEITEM hParent, HTREEITEM hInsertAfter); + HTREEITEM InsertItem(LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, + HTREEITEM hInsertAfter = TVI_LAST); + HTREEITEM InsertItem(LPCTSTR lpszItem, int nImage, int nSelectedImage, + HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST); + BOOL DeleteItem(HTREEITEM hItem); + BOOL DeleteAllItems(); + BOOL Expand(HTREEITEM hItem, UINT nCode); + BOOL Select(HTREEITEM hItem, UINT nCode); + BOOL SelectItem(HTREEITEM hItem); + BOOL SelectDropTarget(HTREEITEM hItem); + BOOL SelectSetFirstVisible(HTREEITEM hItem); + CEdit* EditLabel(HTREEITEM hItem); + HTREEITEM HitTest(CPoint pt, UINT* pFlags = NULL) const; + HTREEITEM HitTest(TV_HITTESTINFO* pHitTestInfo) const; + CImageList* CreateDragImage(HTREEITEM hItem); + BOOL SortChildren(HTREEITEM hItem); + BOOL EnsureVisible(HTREEITEM hItem); + BOOL SortChildrenCB(LPTV_SORTCB pSort); + +// Implementation +protected: + void RemoveImageList(int nImageList); +public: + virtual ~CTreeCtrl(); + //{{AFX_MSG(CTreeCtrl) + afx_msg void OnDestroy(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// CSpinButtonCtrl + +class CSpinButtonCtrl : public CWnd +{ + DECLARE_DYNAMIC(CSpinButtonCtrl) + +// Constructors +public: + CSpinButtonCtrl(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + BOOL SetAccel(int nAccel, UDACCEL* pAccel); + UINT GetAccel(int nAccel, UDACCEL* pAccel) const; + int SetBase(int nBase); + UINT GetBase() const; + CWnd* SetBuddy(CWnd* pWndBuddy); + CWnd* GetBuddy() const; + int SetPos(int nPos); + int GetPos() const; + void SetRange(int nLower, int nUpper); + DWORD GetRange() const; + void GetRange(int &lower, int& upper) const; + +// Implementation +public: + virtual ~CSpinButtonCtrl(); +}; + +///////////////////////////////////////////////////////////////////////////// +// CSliderCtrl + +class CSliderCtrl : public CWnd +{ + DECLARE_DYNAMIC(CSliderCtrl) + +// Constructors +public: + CSliderCtrl(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + int GetLineSize() const; + int SetLineSize(int nSize); + int GetPageSize() const; + int SetPageSize(int nSize); + int GetRangeMax() const; + int GetRangeMin() const; + void GetRange(int& nMin, int& nMax) const; + void SetRangeMin(int nMin, BOOL bRedraw = FALSE); + void SetRangeMax(int nMax, BOOL bRedraw = FALSE); + void SetRange(int nMin, int nMax, BOOL bRedraw = FALSE); + void GetSelection(int& nMin, int& nMax) const; + void SetSelection(int nMin, int nMax); + void GetChannelRect(LPRECT lprc) const; + void GetThumbRect(LPRECT lprc) const; + int GetPos() const; + void SetPos(int nPos); + UINT GetNumTics() const; + DWORD* GetTicArray() const; + int GetTic(int nTic) const; + int GetTicPos(int nTic) const; + BOOL SetTic(int nTic); + void SetTicFreq(int nFreq); + +// Operations + void ClearSel(BOOL bRedraw = FALSE); + void VerifyPos(); + void ClearTics(BOOL bRedraw = FALSE); + +// Implementation +public: + virtual ~CSliderCtrl(); +}; + +///////////////////////////////////////////////////////////////////////////// +// CProgressCtrl + +class CProgressCtrl : public CWnd +{ + DECLARE_DYNAMIC(CProgressCtrl) + +// Constructors +public: + CProgressCtrl(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + void SetRange(int nLower, int nUpper); + int SetPos(int nPos); + int OffsetPos(int nPos); + int SetStep(int nStep); + +// Operations + int StepIt(); + +// Implementation +public: + virtual ~CProgressCtrl(); +}; + +///////////////////////////////////////////////////////////////////////////// +// CHeaderCtrl + +class CHeaderCtrl : public CWnd +{ + DECLARE_DYNAMIC(CHeaderCtrl) + +// Constructors +public: + CHeaderCtrl(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + int GetItemCount() const; + BOOL GetItem(int nPos, HD_ITEM* pHeaderItem) const; + BOOL SetItem(int nPos, HD_ITEM* pHeaderItem); + +// Operations + int InsertItem(int nPos, HD_ITEM* phdi); + BOOL DeleteItem(int nPos); + BOOL Layout(HD_LAYOUT* pHeaderLayout); + +// Overridables + virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); + +// Implementation +public: + virtual ~CHeaderCtrl(); +protected: + virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); + +}; + +///////////////////////////////////////////////////////////////////////////// +// CHotKeyCtrl + +class CHotKeyCtrl : public CWnd +{ + DECLARE_DYNAMIC(CHotKeyCtrl) + +// Constructors +public: + CHotKeyCtrl(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + void SetHotKey(WORD wVirtualKeyCode, WORD wModifiers); + DWORD GetHotKey() const; + void GetHotKey(WORD &wVirtualKeyCode, WORD &wModifiers) const; + +// Operations + void SetRules(WORD wInvalidComb, WORD wModifiers); + +// Implementation +public: + virtual ~CHotKeyCtrl(); +}; + +///////////////////////////////////////////////////////////////////////////// +// CToolTipCtrl + +class CToolTipCtrl : public CWnd +{ + DECLARE_DYNAMIC(CToolTipCtrl) + +// Constructors +public: + CToolTipCtrl(); + BOOL Create(CWnd* pParentWnd, DWORD dwStyle = 0); + +// Attributes + void GetText(CString& str, CWnd* pWnd, UINT nIDTool = 0) const; + BOOL GetToolInfo(CToolInfo& ToolInfo, CWnd* pWnd, UINT nIDTool = 0) const; + void SetToolInfo(LPTOOLINFO lpToolInfo); + void SetToolRect(CWnd* pWnd, UINT nIDTool, LPCRECT lpRect); + int GetToolCount() const; + +// Operations + void Activate(BOOL bActivate); + + BOOL AddTool(CWnd* pWnd, UINT nIDText, LPCRECT lpRectTool = NULL, + UINT nIDTool = 0); + BOOL AddTool(CWnd* pWnd, LPCTSTR lpszText = LPSTR_TEXTCALLBACK, + LPCRECT lpRectTool = NULL, UINT nIDTool = 0); + + void DelTool(CWnd* pWnd, UINT nIDTool = 0); + + BOOL HitTest(CWnd* pWnd, CPoint pt, LPTOOLINFO lpToolInfo) const; + void RelayEvent(LPMSG lpMsg); + void SetDelayTime(UINT nDelay); + void UpdateTipText(LPCTSTR lpszText, CWnd* pWnd, UINT nIDTool = 0); + void UpdateTipText(UINT nIDText, CWnd* pWnd, UINT nIDTool = 0); + +// Implementation +public: + void FillInToolInfo(TOOLINFO& ti, CWnd* pWnd, UINT nIDTool) const; + virtual ~CToolTipCtrl(); + BOOL DestroyToolTipCtrl(); + +protected: + //{{AFX_MSG(CToolTipCtrl) + afx_msg LRESULT OnDisableModal(WPARAM, LPARAM); + afx_msg LRESULT OnWindowFromPoint(WPARAM, LPARAM); + afx_msg LRESULT OnAddTool(WPARAM, LPARAM); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + CMapStringToPtr m_mapString; + + friend class CWnd; + friend class CToolBar; +}; + +///////////////////////////////////////////////////////////////////////////// +// CTabCtrl + +class CTabCtrl : public CWnd +{ + DECLARE_DYNAMIC(CTabCtrl) + +// Constructors +public: + CTabCtrl(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + CImageList* GetImageList() const; + CImageList* SetImageList(CImageList* pImageList); + int GetItemCount() const; + BOOL GetItem(int nItem, TC_ITEM* pTabCtrlItem) const; + BOOL SetItem(int nItem, TC_ITEM* pTabCtrlItem); + BOOL GetItemRect(int nItem, LPRECT lpRect) const; + int GetCurSel() const; + int SetCurSel(int nItem); + CSize SetItemSize(CSize size); + void SetPadding(CSize size); + int GetRowCount() const; + CToolTipCtrl* GetTooltips() const; + void SetTooltips(CToolTipCtrl* pWndTip); + int GetCurFocus() const; + +// Operations + BOOL InsertItem(int nItem, TC_ITEM* pTabCtrlItem); + BOOL DeleteItem(int nItem); + BOOL DeleteAllItems(); + void AdjustRect(BOOL bLarger, LPRECT lpRect); + void RemoveImage(int nImage); + int HitTest(TC_HITTESTINFO* pHitTestInfo) const; + +// Overridables + virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); + +// Implementation +public: + virtual ~CTabCtrl(); +protected: + virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); + //{{AFX_MSG(CTabCtrl) + afx_msg void OnDestroy(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// CAnimateCtrl + +class CAnimateCtrl : public CWnd +{ + DECLARE_DYNAMIC(CAnimateCtrl) + +// Constructors +public: + CAnimateCtrl(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Operations + BOOL Open(LPCTSTR lpszFileName); + BOOL Open(UINT nID); + BOOL Play(UINT nFrom, UINT nTo, UINT nRep); + BOOL Stop(); + BOOL Close(); + BOOL Seek(UINT nTo); + +// Implementation +public: + virtual ~CAnimateCtrl(); +}; + +///////////////////////////////////////////////////////////////////////////// +// CImageList + +class CImageList : public CObject +{ + DECLARE_DYNCREATE(CImageList) + +// Constructors +public: + CImageList(); + BOOL Create(int cx, int cy, UINT nFlags, int nInitial, int nGrow); + BOOL Create(UINT nBitmapID, int cx, int nGrow, COLORREF crMask); + BOOL Create(LPCTSTR lpszBitmapID, int cx, int nGrow, COLORREF crMask); + BOOL Create(CImageList& imagelist1, int nImage1, CImageList& imagelist2, + int nImage2, int dx, int dy); + +// Attributes + HIMAGELIST m_hImageList; // must be first data member + operator HIMAGELIST() const; + HIMAGELIST GetSafeHandle() const; + + static CImageList* PASCAL FromHandle(HIMAGELIST hImageList); + static CImageList* PASCAL FromHandlePermanent(HIMAGELIST hImageList); + static void PASCAL DeleteTempMap(); + BOOL Attach(HIMAGELIST hImageList); + HIMAGELIST Detach(); + + int GetImageCount() const; + COLORREF SetBkColor(COLORREF cr); + COLORREF GetBkColor() const; + BOOL GetImageInfo(int nImage, IMAGEINFO* pImageInfo) const; + +// Operations + BOOL DeleteImageList(); + + int Add(CBitmap* pbmImage, CBitmap* pbmMask); + int Add(CBitmap* pbmImage, COLORREF crMask); + BOOL Remove(int nImage); + BOOL Replace(int nImage, CBitmap* pbmImage, CBitmap* pbmMask); + int Add(HICON hIcon); + int Replace(int nImage, HICON hIcon); + HICON ExtractIcon(int nImage); + BOOL Draw(CDC* pDC, int nImage, POINT pt, UINT nStyle); + BOOL SetOverlayImage(int nImage, int nOverlay); + +#ifndef _AFX_NO_OLE_SUPPORT + BOOL Read(CArchive* pArchive); + BOOL Write(CArchive* pArchive); +#endif + +// Drag APIs + BOOL BeginDrag(int nImage, CPoint ptHotSpot); + static void PASCAL EndDrag(); + static BOOL PASCAL DragMove(CPoint pt); + BOOL SetDragCursorImage(int nDrag, CPoint ptHotSpot); + static BOOL PASCAL DragShowNolock(BOOL bShow); + static CImageList* PASCAL GetDragImage(LPPOINT lpPoint, LPPOINT lpPointHotSpot); + static BOOL PASCAL DragEnter(CWnd* pWndLock, CPoint point); + static BOOL PASCAL DragLeave(CWnd* pWndLock); + +// Implementation +public: + virtual ~CImageList(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + virtual void AssertValid() const; +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// CToolBarCtrl + +class CToolBarCtrl : public CWnd +{ + DECLARE_DYNAMIC(CToolBarCtrl) +// Construction +public: + CToolBarCtrl(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes +public: + BOOL IsButtonEnabled(int nID) const; + BOOL IsButtonChecked(int nID) const; + BOOL IsButtonPressed(int nID) const; + BOOL IsButtonHidden(int nID) const; + BOOL IsButtonIndeterminate(int nID) const; + BOOL SetState(int nID, UINT nState); + int GetState(int nID) const; + BOOL GetButton(int nIndex, LPTBBUTTON lpButton) const; + int GetButtonCount() const; + BOOL GetItemRect(int nIndex, LPRECT lpRect) const; + void SetButtonStructSize(int nSize); + BOOL SetButtonSize(CSize size); + BOOL SetBitmapSize(CSize size); + CToolTipCtrl* GetToolTips() const; + void SetToolTips(CToolTipCtrl* pTip); + void SetOwner(CWnd* pWnd); + void SetRows(int nRows, BOOL bLarger, LPRECT lpRect); + int GetRows() const; + BOOL SetCmdID(int nIndex, UINT nID); + UINT GetBitmapFlags() const; + +// Operations +public: + BOOL EnableButton(int nID, BOOL bEnable = TRUE); + BOOL CheckButton(int nID, BOOL bCheck = TRUE); + BOOL PressButton(int nID, BOOL bPress = TRUE); + BOOL HideButton(int nID, BOOL bHide = TRUE); + BOOL Indeterminate(int nID, BOOL bIndeterminate = TRUE); + int AddBitmap(int nNumButtons, UINT nBitmapID); + int AddBitmap(int nNumButtons, CBitmap* pBitmap); + BOOL AddButtons(int nNumButtons, LPTBBUTTON lpButtons); + BOOL InsertButton(int nIndex, LPTBBUTTON lpButton); + BOOL DeleteButton(int nIndex); + UINT CommandToIndex(UINT nID) const; + void SaveState(HKEY hKeyRoot, LPCTSTR lpszSubKey, + LPCTSTR lpszValueName); + void RestoreState(HKEY hKeyRoot, LPCTSTR lpszSubKey, + LPCTSTR lpszValueName); + + void Customize(); + int AddString(UINT nStringID); + int AddStrings(LPCTSTR lpszStrings); + void AutoSize(); + +// Implementation +public: + virtual ~CToolBarCtrl(); + +protected: + //{{AFX_MSG(CToolBarCtrl) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +#ifndef _AFX_NO_RICHEDIT_SUPPORT +///////////////////////////////////////////////////////////////////////////// +// CRichEditCtrl + +class CRichEditCtrl : public CWnd +{ + DECLARE_DYNAMIC(CRichEditCtrl) + +// Constructors +public: + CRichEditCtrl(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + BOOL CanUndo() const; + int GetLineCount() const; + BOOL GetModify() const; + void SetModify(BOOL bModified = TRUE); + void GetRect(LPRECT lpRect) const; + CPoint GetCharPos(long lChar) const; + void SetOptions(WORD wOp, DWORD dwFlags); + + // NOTE: first word in lpszBuffer must contain the size of the buffer! + int GetLine(int nIndex, LPTSTR lpszBuffer) const; + int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const; + + BOOL CanPaste(UINT nFormat = 0) const; + void GetSel(long& nStartChar, long& nEndChar) const; + void GetSel(CHARRANGE &cr) const; + void LimitText(long nChars = 0); + long LineFromChar(long nIndex) const; + void SetSel(long nStartChar, long nEndChar); + void SetSel(CHARRANGE &cr); + DWORD GetDefaultCharFormat(CHARFORMAT &cf) const; + DWORD GetSelectionCharFormat(CHARFORMAT &cf) const; + long GetEventMask() const; + long GetLimitText() const; + DWORD GetParaFormat(PARAFORMAT &pf) const; + // richedit EM_GETSELTEXT is ANSI + long GetSelText(LPSTR lpBuf) const; + CString GetSelText() const; + WORD GetSelectionType() const; + COLORREF SetBackgroundColor(BOOL bSysColor, COLORREF cr); + BOOL SetDefaultCharFormat(CHARFORMAT &cf); + BOOL SetSelectionCharFormat(CHARFORMAT &cf); + BOOL SetWordCharFormat(CHARFORMAT &cf); + DWORD SetEventMask(DWORD dwEventMask); + BOOL SetParaFormat(PARAFORMAT &pf); + BOOL SetTargetDevice(HDC hDC, long lLineWidth); + BOOL SetTargetDevice(CDC &dc, long lLineWidth); + long GetTextLength() const; + BOOL SetReadOnly(BOOL bReadOnly = TRUE); + int GetFirstVisibleLine() const; + +// Operations + void EmptyUndoBuffer(); + + int LineIndex(int nLine = -1) const; + int LineLength(int nLine = -1) const; + void LineScroll(int nLines, int nChars = 0); + void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE); + void SetRect(LPCRECT lpRect); + + BOOL DisplayBand(LPRECT pDisplayRect); + long FindText(DWORD dwFlags, FINDTEXTEX* pFindText) const; + long FormatRange(FORMATRANGE* pfr, BOOL bDisplay = TRUE); + void HideSelection(BOOL bHide, BOOL bPerm); + void PasteSpecial(UINT nClipFormat, DWORD dvAspect = 0, HMETAFILE hMF = 0); + void RequestResize(); + long StreamIn(int nFormat, EDITSTREAM &es); + long StreamOut(int nFormat, EDITSTREAM &es); + + // Clipboard operations + BOOL Undo(); + void Clear(); + void Copy(); + void Cut(); + void Paste(); + +// OLE support + IRichEditOle* GetIRichEditOle() const; + BOOL SetOLECallback(IRichEditOleCallback* pCallback); + +// Implementation +public: + virtual ~CRichEditCtrl(); +}; +#endif //!_AFX_NO_RICHEDIT_SUPPORT +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXCMN_INLINE inline +#include <afxcmn.inl> +#undef _AFXCMN_INLINE +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif //__AFXCMN_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxcmn.inl b/public/sdk/inc/mfc42/afxcmn.inl new file mode 100644 index 000000000..df6dc04ab --- /dev/null +++ b/public/sdk/inc/mfc42/afxcmn.inl @@ -0,0 +1,643 @@ +// 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. + +// Inlines for AFXCMN.H + +#ifdef _AFXCMN_INLINE + +_AFXCMN_INLINE CDragListBox::CDragListBox() + { m_nLast = -1;} +_AFXCMN_INLINE int CDragListBox::ItemFromPt(CPoint pt, BOOL bAutoScroll) const + {ASSERT(::IsWindow(m_hWnd)); return ::LBItemFromPt(m_hWnd, pt, bAutoScroll); } + +///////////////////////////////////////////////////////////////////////////// + +_AFXCMN_INLINE CToolBarCtrl::CToolBarCtrl() + { } +_AFXCMN_INLINE BOOL CToolBarCtrl::EnableButton(int nID, BOOL bEnable) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_ENABLEBUTTON, nID, MAKELPARAM(bEnable, 0)); } +_AFXCMN_INLINE BOOL CToolBarCtrl::CheckButton(int nID, BOOL bCheck) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_CHECKBUTTON, nID, MAKELPARAM(bCheck, 0)); } +_AFXCMN_INLINE BOOL CToolBarCtrl::PressButton(int nID, BOOL bPress) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_PRESSBUTTON, nID, MAKELPARAM(bPress, 0)); } +_AFXCMN_INLINE BOOL CToolBarCtrl::HideButton(int nID, BOOL bHide) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_HIDEBUTTON, nID, MAKELPARAM(bHide, 0)); } +_AFXCMN_INLINE BOOL CToolBarCtrl::Indeterminate(int nID, BOOL bIndeterminate) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_INDETERMINATE, nID, MAKELPARAM(bIndeterminate, 0)); } +_AFXCMN_INLINE BOOL CToolBarCtrl::IsButtonEnabled(int nID) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_ISBUTTONENABLED, nID, 0); } +_AFXCMN_INLINE BOOL CToolBarCtrl::IsButtonChecked(int nID) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_ISBUTTONCHECKED, nID, 0); } +_AFXCMN_INLINE BOOL CToolBarCtrl::IsButtonPressed(int nID) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_ISBUTTONPRESSED, nID, 0); } +_AFXCMN_INLINE BOOL CToolBarCtrl::IsButtonHidden(int nID) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_ISBUTTONHIDDEN, nID, 0); } +_AFXCMN_INLINE BOOL CToolBarCtrl::IsButtonIndeterminate(int nID) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_ISBUTTONINDETERMINATE, nID, 0); } +_AFXCMN_INLINE BOOL CToolBarCtrl::SetState(int nID, UINT nState) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_SETSTATE, nID, MAKELPARAM(nState, 0)); } +_AFXCMN_INLINE int CToolBarCtrl::GetState(int nID) const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TB_GETSTATE, nID, 0L); } +_AFXCMN_INLINE BOOL CToolBarCtrl::AddButtons(int nNumButtons, LPTBBUTTON lpButtons) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_ADDBUTTONS, nNumButtons, (LPARAM)lpButtons); } +_AFXCMN_INLINE BOOL CToolBarCtrl::InsertButton(int nIndex, LPTBBUTTON lpButton) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_INSERTBUTTON, nIndex, (LPARAM)lpButton); } +_AFXCMN_INLINE BOOL CToolBarCtrl::DeleteButton(int nIndex) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_DELETEBUTTON, nIndex, 0); } +_AFXCMN_INLINE BOOL CToolBarCtrl::GetButton(int nIndex, LPTBBUTTON lpButton) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_GETBUTTON, nIndex, (LPARAM)lpButton); } +_AFXCMN_INLINE int CToolBarCtrl::GetButtonCount() const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TB_BUTTONCOUNT, 0, 0L); } +_AFXCMN_INLINE UINT CToolBarCtrl::CommandToIndex(UINT nID) const + { ASSERT(::IsWindow(m_hWnd)); return (UINT) ::SendMessage(m_hWnd, TB_COMMANDTOINDEX, nID, 0L); } +_AFXCMN_INLINE void CToolBarCtrl::Customize() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TB_CUSTOMIZE, 0, 0L); } +// lpszStrings are separated by zeroes, last one is marked by two zeroes +_AFXCMN_INLINE int CToolBarCtrl::AddStrings(LPCTSTR lpszStrings) + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TB_ADDSTRING, 0, (LPARAM)lpszStrings); } +_AFXCMN_INLINE BOOL CToolBarCtrl::GetItemRect(int nIndex, LPRECT lpRect) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_GETITEMRECT, nIndex, (LPARAM)lpRect); } +_AFXCMN_INLINE void CToolBarCtrl::SetButtonStructSize(int nSize) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TB_BUTTONSTRUCTSIZE, nSize, 0L); } +_AFXCMN_INLINE BOOL CToolBarCtrl::SetButtonSize(CSize size) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_SETBUTTONSIZE, 0, MAKELPARAM(size.cx, size.cy)); } +_AFXCMN_INLINE BOOL CToolBarCtrl::SetBitmapSize(CSize size) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_SETBITMAPSIZE, 0, MAKELPARAM(size.cx, size.cy)); } +_AFXCMN_INLINE void CToolBarCtrl::AutoSize() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TB_AUTOSIZE, 0, 0L); } +_AFXCMN_INLINE CToolTipCtrl* CToolBarCtrl::GetToolTips() const + { ASSERT(::IsWindow(m_hWnd)); return (CToolTipCtrl*)CWnd::FromHandle((HWND)::SendMessage(m_hWnd, TB_GETTOOLTIPS, 0, 0L)); } +_AFXCMN_INLINE void CToolBarCtrl::SetToolTips(CToolTipCtrl* pTip) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TB_SETTOOLTIPS, (WPARAM)pTip->m_hWnd, 0L); } +_AFXCMN_INLINE void CToolBarCtrl::SetOwner(CWnd* pWnd) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TB_SETPARENT, (WPARAM)pWnd->m_hWnd, 0L); } +_AFXCMN_INLINE void CToolBarCtrl::SetRows(int nRows, BOOL bLarger, LPRECT lpRect) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TB_SETROWS, MAKELPARAM(nRows, bLarger), (LPARAM)lpRect); } +_AFXCMN_INLINE int CToolBarCtrl::GetRows() const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TB_GETROWS, 0, 0L); } +_AFXCMN_INLINE BOOL CToolBarCtrl::SetCmdID(int nIndex, UINT nID) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_SETCMDID, nIndex, nID); } +_AFXCMN_INLINE UINT CToolBarCtrl::GetBitmapFlags() const + { ASSERT(::IsWindow(m_hWnd)); return (UINT) ::SendMessage(m_hWnd, TB_GETBITMAPFLAGS, 0, 0L); } + +///////////////////////////////////////////////////////////////////////////// + +_AFXCMN_INLINE CStatusBarCtrl::CStatusBarCtrl() + { } +_AFXCMN_INLINE BOOL CStatusBarCtrl::SetText(LPCTSTR lpszText, int nPane, int nType) + { ASSERT(::IsWindow(m_hWnd)); ASSERT(nPane < 256); return (BOOL) ::SendMessage(m_hWnd, SB_SETTEXT, (nPane|nType), (LPARAM)lpszText); } +_AFXCMN_INLINE BOOL CStatusBarCtrl::SetParts(int nParts, int* pWidths) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, SB_SETPARTS, nParts, (LPARAM)pWidths); } +_AFXCMN_INLINE int CStatusBarCtrl::GetParts(int nParts, int* pParts) const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, SB_GETPARTS, nParts, (LPARAM)pParts); } +_AFXCMN_INLINE BOOL CStatusBarCtrl::GetBorders(int* pBorders) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, SB_GETBORDERS, 0, (LPARAM)pBorders); } +_AFXCMN_INLINE void CStatusBarCtrl::SetMinHeight(int nMin) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, SB_SETMINHEIGHT, nMin, 0L); } +_AFXCMN_INLINE BOOL CStatusBarCtrl::SetSimple(BOOL bSimple) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, SB_SIMPLE, bSimple, 0L); } +_AFXCMN_INLINE BOOL CStatusBarCtrl::GetRect(int nPane, LPRECT lpRect) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, SB_GETRECT, nPane, (LPARAM)lpRect); } + +///////////////////////////////////////////////////////////////////////////// + +_AFXCMN_INLINE CListCtrl::CListCtrl() + { } +_AFXCMN_INLINE COLORREF CListCtrl::GetBkColor() const + { ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, LVM_GETBKCOLOR, 0, 0L); } +_AFXCMN_INLINE BOOL CListCtrl::SetBkColor(COLORREF cr) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_SETBKCOLOR, 0, cr); } +_AFXCMN_INLINE CImageList* CListCtrl::GetImageList(int nImageListType) const + { ASSERT(::IsWindow(m_hWnd)); return CImageList::FromHandle((HIMAGELIST) ::SendMessage(m_hWnd, LVM_GETIMAGELIST, nImageListType, 0L)); } +_AFXCMN_INLINE CImageList* CListCtrl::SetImageList(CImageList* pImageList, int nImageList) + { ASSERT(::IsWindow(m_hWnd)); return CImageList::FromHandle((HIMAGELIST) ::SendMessage(m_hWnd, LVM_SETIMAGELIST, nImageList, (LPARAM)pImageList->GetSafeHandle())); } +_AFXCMN_INLINE int CListCtrl::GetItemCount() const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, LVM_GETITEMCOUNT, 0, 0L); } +_AFXCMN_INLINE BOOL CListCtrl::GetItem(LV_ITEM* pItem) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_GETITEM, 0, (LPARAM)pItem); } +_AFXCMN_INLINE BOOL CListCtrl::SetItem(const LV_ITEM* pItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_SETITEM, 0, (LPARAM)pItem); } +_AFXCMN_INLINE BOOL CListCtrl::SetItemState(int nItem, UINT nState, UINT nStateMask) + { ASSERT(::IsWindow(m_hWnd)); return SetItem(nItem, 0, LVIF_STATE, NULL, 0, nState, nStateMask, 0); } +_AFXCMN_INLINE BOOL CListCtrl::SetItemText(int nItem, int nSubItem, LPCTSTR lpszText) + { ASSERT(::IsWindow(m_hWnd)); return SetItem(nItem, nSubItem, LVIF_TEXT, lpszText, 0, 0, 0, 0); } +_AFXCMN_INLINE BOOL CListCtrl::SetItemData(int nItem, DWORD dwData) + { ASSERT(::IsWindow(m_hWnd)); return SetItem(nItem, 0, LVIF_PARAM, NULL, 0, 0, 0, (LPARAM)dwData); } +_AFXCMN_INLINE int CListCtrl::InsertItem(const LV_ITEM* pItem) + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, LVM_INSERTITEM, 0, (LPARAM)pItem); } +_AFXCMN_INLINE int CListCtrl::InsertItem(int nItem, LPCTSTR lpszItem) + { ASSERT(::IsWindow(m_hWnd)); return InsertItem(LVIF_TEXT, nItem, lpszItem, 0, 0, 0, 0); } +_AFXCMN_INLINE int CListCtrl::InsertItem(int nItem, LPCTSTR lpszItem, int nImage) + { ASSERT(::IsWindow(m_hWnd)); return InsertItem(LVIF_TEXT|LVIF_IMAGE, nItem, lpszItem, 0, 0, nImage, 0); } +_AFXCMN_INLINE BOOL CListCtrl::DeleteItem(int nItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_DELETEITEM, nItem, 0L); } +_AFXCMN_INLINE BOOL CListCtrl::DeleteAllItems() + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_DELETEALLITEMS, 0, 0L); } +_AFXCMN_INLINE UINT CListCtrl::GetCallbackMask() const + { ASSERT(::IsWindow(m_hWnd)); return (UINT) ::SendMessage(m_hWnd, LVM_GETCALLBACKMASK, 0, 0); } +_AFXCMN_INLINE BOOL CListCtrl::SetCallbackMask(UINT nMask) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_SETCALLBACKMASK, nMask, 0); } +_AFXCMN_INLINE int CListCtrl::GetNextItem(int nItem, int nFlags) const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, LVM_GETNEXTITEM, nItem, MAKELPARAM(nFlags, 0)); } +_AFXCMN_INLINE int CListCtrl::FindItem(LV_FINDINFO* pFindInfo, int nStart) const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, LVM_FINDITEM, nStart, (LPARAM)pFindInfo); } +_AFXCMN_INLINE int CListCtrl::HitTest(LV_HITTESTINFO* pHitTestInfo) const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, LVM_HITTEST, 0, (LPARAM)pHitTestInfo); } +_AFXCMN_INLINE BOOL CListCtrl::SetItemPosition(int nItem, POINT pt) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_SETITEMPOSITION32, nItem, (LPARAM)&pt); } +_AFXCMN_INLINE BOOL CListCtrl::GetItemPosition(int nItem, LPPOINT lpPoint) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_GETITEMPOSITION, nItem, (LPARAM)lpPoint); } +_AFXCMN_INLINE int CListCtrl::GetStringWidth(LPCTSTR lpsz) const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, LVM_GETSTRINGWIDTH, 0, (LPARAM)lpsz); } +_AFXCMN_INLINE BOOL CListCtrl::EnsureVisible(int nItem, BOOL bPartialOK) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_ENSUREVISIBLE, nItem, MAKELPARAM(bPartialOK, 0)); } +_AFXCMN_INLINE BOOL CListCtrl::Scroll(CSize size) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_SCROLL, size.cx, size.cy); } +_AFXCMN_INLINE BOOL CListCtrl::RedrawItems(int nFirst, int nLast) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_REDRAWITEMS, nFirst, nLast); } +_AFXCMN_INLINE BOOL CListCtrl::Arrange(UINT nCode) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_ARRANGE, nCode, 0L); } +_AFXCMN_INLINE CEdit* CListCtrl::EditLabel(int nItem) + { ASSERT(::IsWindow(m_hWnd)); return (CEdit*)CWnd::FromHandle( (HWND)::SendMessage(m_hWnd, LVM_EDITLABEL, nItem, 0L)); } +_AFXCMN_INLINE CEdit* CListCtrl::GetEditControl() const + { ASSERT(::IsWindow(m_hWnd)); return (CEdit*)CWnd::FromHandle( (HWND)::SendMessage(m_hWnd, LVM_GETEDITCONTROL, 0, 0L)); } +_AFXCMN_INLINE BOOL CListCtrl::GetColumn(int nCol, LV_COLUMN* pColumn) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_GETCOLUMN, nCol, (LPARAM)pColumn); } +_AFXCMN_INLINE BOOL CListCtrl::SetColumn(int nCol, const LV_COLUMN* pColumn) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_SETCOLUMN, nCol, (LPARAM)pColumn); } +_AFXCMN_INLINE int CListCtrl::InsertColumn(int nCol, const LV_COLUMN* pColumn) + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, LVM_INSERTCOLUMN, nCol, (LPARAM)pColumn); } +_AFXCMN_INLINE BOOL CListCtrl::DeleteColumn(int nCol) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_DELETECOLUMN, nCol, 0); } +_AFXCMN_INLINE int CListCtrl::GetColumnWidth(int nCol) const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, LVM_GETCOLUMNWIDTH, nCol, 0); } +_AFXCMN_INLINE BOOL CListCtrl::SetColumnWidth(int nCol, int cx) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_SETCOLUMNWIDTH, nCol, MAKELPARAM(cx, 0)); } +_AFXCMN_INLINE BOOL CListCtrl::GetViewRect(LPRECT lpRect) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_GETVIEWRECT, 0, (LPARAM)lpRect); } +_AFXCMN_INLINE COLORREF CListCtrl::GetTextColor() const + { ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, LVM_GETTEXTCOLOR, 0, 0L); } +_AFXCMN_INLINE BOOL CListCtrl::SetTextColor(COLORREF cr) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_SETTEXTCOLOR, 0, cr); } +_AFXCMN_INLINE COLORREF CListCtrl::GetTextBkColor() const + { ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, LVM_GETTEXTBKCOLOR, 0, 0L); } +_AFXCMN_INLINE BOOL CListCtrl::SetTextBkColor(COLORREF cr) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_SETTEXTBKCOLOR, 0, cr); } +_AFXCMN_INLINE int CListCtrl::GetTopIndex() const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, LVM_GETTOPINDEX, 0, 0); } +_AFXCMN_INLINE int CListCtrl::GetCountPerPage() const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, LVM_GETCOUNTPERPAGE, 0, 0); } +_AFXCMN_INLINE BOOL CListCtrl::GetOrigin(LPPOINT lpPoint) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_GETORIGIN, 0, (LPARAM)lpPoint); } +_AFXCMN_INLINE BOOL CListCtrl::Update(int nItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_UPDATE, nItem, 0L); } +_AFXCMN_INLINE BOOL CListCtrl::SetItemState(int nItem, LV_ITEM* pItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_SETITEMSTATE, nItem, (LPARAM)pItem); } +_AFXCMN_INLINE UINT CListCtrl::GetItemState(int nItem, UINT nMask) const + { ASSERT(::IsWindow(m_hWnd)); return (UINT) ::SendMessage(m_hWnd, LVM_GETITEMSTATE, nItem, nMask); } +_AFXCMN_INLINE void CListCtrl::SetItemCount(int nItems) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, LVM_SETITEMCOUNT, nItems, 0); } +_AFXCMN_INLINE BOOL CListCtrl::SortItems(PFNLVCOMPARE pfnCompare, DWORD dwData) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_SORTITEMS, dwData, (LPARAM)pfnCompare); } +_AFXCMN_INLINE UINT CListCtrl::GetSelectedCount() const + { ASSERT(::IsWindow(m_hWnd)); return (UINT) ::SendMessage(m_hWnd, LVM_GETSELECTEDCOUNT, 0, 0L); } + +///////////////////////////////////////////////////////////////////////////// + +_AFXCMN_INLINE CTreeCtrl::CTreeCtrl() + { } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::InsertItem(LPTV_INSERTSTRUCT lpInsertStruct) + { ASSERT(::IsWindow(m_hWnd)); return (HTREEITEM)::SendMessage(m_hWnd, TVM_INSERTITEM, 0, (LPARAM)lpInsertStruct); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::InsertItem(LPCTSTR lpszItem, int nImage, + int nSelectedImage, HTREEITEM hParent, HTREEITEM hInsertAfter) + { ASSERT(::IsWindow(m_hWnd)); return InsertItem(TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE, lpszItem, nImage, nSelectedImage, 0, 0, 0, hParent, hInsertAfter); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::InsertItem(LPCTSTR lpszItem, HTREEITEM hParent, HTREEITEM hInsertAfter) + { ASSERT(::IsWindow(m_hWnd)); return InsertItem(TVIF_TEXT, lpszItem, 0, 0, 0, 0, 0, hParent, hInsertAfter); } +_AFXCMN_INLINE BOOL CTreeCtrl::DeleteItem(HTREEITEM hItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TVM_DELETEITEM, 0, (LPARAM)hItem); } +#pragma warning(disable: 4310) +_AFXCMN_INLINE BOOL CTreeCtrl::DeleteAllItems() + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT); } +#pragma warning(default: 4310) +_AFXCMN_INLINE BOOL CTreeCtrl::Expand(HTREEITEM hItem, UINT nCode) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TVM_EXPAND, nCode, (LPARAM)hItem); } +_AFXCMN_INLINE UINT CTreeCtrl::GetCount() const + { ASSERT(::IsWindow(m_hWnd)); return (UINT)::SendMessage(m_hWnd, TVM_GETCOUNT, 0, 0); } +_AFXCMN_INLINE UINT CTreeCtrl::GetIndent() const + { ASSERT(::IsWindow(m_hWnd)); return (UINT)::SendMessage(m_hWnd, TVM_GETINDENT, 0, 0); } +_AFXCMN_INLINE void CTreeCtrl::SetIndent(UINT nIndent) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TVM_SETINDENT, nIndent, 0); } +_AFXCMN_INLINE CImageList* CTreeCtrl::GetImageList(UINT nImageList) const + { ASSERT(::IsWindow(m_hWnd)); return CImageList::FromHandle((HIMAGELIST)::SendMessage(m_hWnd, TVM_GETIMAGELIST, (UINT)nImageList, 0)); } +_AFXCMN_INLINE CImageList* CTreeCtrl::SetImageList(CImageList* pImageList, int nImageListType) + { ASSERT(::IsWindow(m_hWnd)); return CImageList::FromHandle((HIMAGELIST)::SendMessage(m_hWnd, TVM_SETIMAGELIST, (UINT)nImageListType, (LPARAM)pImageList->GetSafeHandle())); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::GetNextItem(HTREEITEM hItem, UINT nCode) const + { ASSERT(::IsWindow(m_hWnd)); return (HTREEITEM)::SendMessage(m_hWnd, TVM_GETNEXTITEM, nCode, (LPARAM)hItem); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::GetChildItem(HTREEITEM hItem) const + { ASSERT(::IsWindow(m_hWnd)); return (HTREEITEM)::SendMessage(m_hWnd, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::GetNextSiblingItem(HTREEITEM hItem) const + { ASSERT(::IsWindow(m_hWnd)); return (HTREEITEM)::SendMessage(m_hWnd, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::GetPrevSiblingItem(HTREEITEM hItem) const + { ASSERT(::IsWindow(m_hWnd)); return (HTREEITEM)::SendMessage(m_hWnd, TVM_GETNEXTITEM, TVGN_PREVIOUS, (LPARAM)hItem); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::GetParentItem(HTREEITEM hItem) const + { ASSERT(::IsWindow(m_hWnd)); return (HTREEITEM)::SendMessage(m_hWnd, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hItem); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::GetFirstVisibleItem() const + { ASSERT(::IsWindow(m_hWnd)); return (HTREEITEM)::SendMessage(m_hWnd, TVM_GETNEXTITEM, TVGN_FIRSTVISIBLE, 0); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::GetNextVisibleItem(HTREEITEM hItem) const + { ASSERT(::IsWindow(m_hWnd)); return (HTREEITEM)::SendMessage(m_hWnd, TVM_GETNEXTITEM, TVGN_NEXTVISIBLE, (LPARAM)hItem); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::GetPrevVisibleItem(HTREEITEM hItem) const + { ASSERT(::IsWindow(m_hWnd)); return (HTREEITEM)::SendMessage(m_hWnd, TVM_GETNEXTITEM, TVGN_PREVIOUSVISIBLE, (LPARAM)hItem); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::GetSelectedItem() const + { ASSERT(::IsWindow(m_hWnd)); return (HTREEITEM)::SendMessage(m_hWnd, TVM_GETNEXTITEM, TVGN_CARET, 0); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::GetDropHilightItem() const + { ASSERT(::IsWindow(m_hWnd)); return (HTREEITEM)::SendMessage(m_hWnd, TVM_GETNEXTITEM, TVGN_DROPHILITE, 0); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::GetRootItem() const + { ASSERT(::IsWindow(m_hWnd)); return (HTREEITEM)::SendMessage(m_hWnd, TVM_GETNEXTITEM, TVGN_ROOT, 0); } +_AFXCMN_INLINE BOOL CTreeCtrl::Select(HTREEITEM hItem, UINT nCode) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TVM_SELECTITEM, nCode, (LPARAM)hItem); } +_AFXCMN_INLINE BOOL CTreeCtrl::SelectItem(HTREEITEM hItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItem); } +_AFXCMN_INLINE BOOL CTreeCtrl::SelectDropTarget(HTREEITEM hItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TVM_SELECTITEM, TVGN_DROPHILITE, (LPARAM)hItem); } +_AFXCMN_INLINE BOOL CTreeCtrl::SelectSetFirstVisible(HTREEITEM hItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TVM_SELECTITEM, TVGN_FIRSTVISIBLE, (LPARAM)hItem); } +_AFXCMN_INLINE BOOL CTreeCtrl::GetItem(TV_ITEM* pItem) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TVM_GETITEM, 0, (LPARAM)pItem); } +_AFXCMN_INLINE BOOL CTreeCtrl::SetItem(TV_ITEM* pItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TVM_SETITEM, 0, (LPARAM)pItem); } +_AFXCMN_INLINE BOOL CTreeCtrl::SetItemText(HTREEITEM hItem, LPCTSTR lpszItem) + { ASSERT(::IsWindow(m_hWnd)); return SetItem(hItem, TVIF_TEXT, lpszItem, 0, 0, 0, 0, NULL); } +_AFXCMN_INLINE BOOL CTreeCtrl::SetItemImage(HTREEITEM hItem, int nImage, int nSelectedImage) + { ASSERT(::IsWindow(m_hWnd)); return SetItem(hItem, TVIF_IMAGE|TVIF_SELECTEDIMAGE, NULL, nImage, nSelectedImage, 0, 0, NULL); } +_AFXCMN_INLINE BOOL CTreeCtrl::SetItemState(HTREEITEM hItem, UINT nState, UINT nStateMask) + { ASSERT(::IsWindow(m_hWnd)); return SetItem(hItem, TVIF_STATE, NULL, 0, 0, nState, nStateMask, NULL); } +_AFXCMN_INLINE BOOL CTreeCtrl::SetItemData(HTREEITEM hItem, DWORD dwData) + { ASSERT(::IsWindow(m_hWnd)); return SetItem(hItem, TVIF_PARAM, NULL, 0, 0, 0, 0, (LPARAM)dwData); } +_AFXCMN_INLINE CEdit* CTreeCtrl::EditLabel(HTREEITEM hItem) + { ASSERT(::IsWindow(m_hWnd)); return (CEdit*)CWnd::FromHandle((HWND)::SendMessage(m_hWnd, TVM_EDITLABEL, 0, (LPARAM)hItem)); } +_AFXCMN_INLINE HTREEITEM CTreeCtrl::HitTest(TV_HITTESTINFO* pHitTestInfo) const + { ASSERT(::IsWindow(m_hWnd)); return (HTREEITEM)::SendMessage(m_hWnd, TVM_HITTEST, 0, (LPARAM)pHitTestInfo); } +_AFXCMN_INLINE CEdit* CTreeCtrl::GetEditControl() const + { ASSERT(::IsWindow(m_hWnd)); return (CEdit*)CWnd::FromHandle((HWND)::SendMessage(m_hWnd, TVM_GETEDITCONTROL, 0, 0)); } +_AFXCMN_INLINE UINT CTreeCtrl::GetVisibleCount() const + { ASSERT(::IsWindow(m_hWnd)); return (UINT)::SendMessage(m_hWnd, TVM_GETVISIBLECOUNT, 0, 0); } +_AFXCMN_INLINE BOOL CTreeCtrl::SortChildren(HTREEITEM hItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TVM_SORTCHILDREN, 0, (LPARAM)hItem); } +_AFXCMN_INLINE BOOL CTreeCtrl::EnsureVisible(HTREEITEM hItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TVM_ENSUREVISIBLE, 0, (LPARAM)hItem); } +_AFXCMN_INLINE BOOL CTreeCtrl::SortChildrenCB(LPTV_SORTCB pSort) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TVM_SORTCHILDRENCB, 0, (LPARAM)pSort); } + +///////////////////////////////////////////////////////////////////////////// + +_AFXCMN_INLINE CHotKeyCtrl::CHotKeyCtrl() + { } +_AFXCMN_INLINE void CHotKeyCtrl::SetHotKey(WORD wVirtualKeyCode, WORD wModifiers) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, HKM_SETHOTKEY, MAKEWORD(wVirtualKeyCode, wModifiers), 0L); } +_AFXCMN_INLINE DWORD CHotKeyCtrl::GetHotKey() const + { ASSERT(::IsWindow(m_hWnd)); return ::SendMessage(m_hWnd, HKM_GETHOTKEY, 0, 0L); } +_AFXCMN_INLINE void CHotKeyCtrl::SetRules(WORD wInvalidComb, WORD wModifiers) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, HKM_SETRULES, wInvalidComb, MAKELPARAM(wModifiers, 0)); } + +///////////////////////////////////////////////////////////////////////////// + +_AFXCMN_INLINE void CToolTipCtrl::Activate(BOOL bActivate) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TTM_ACTIVATE, bActivate, 0L); } +_AFXCMN_INLINE void CToolTipCtrl::SetToolInfo(LPTOOLINFO lpToolInfo) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TTM_SETTOOLINFO, 0, (LPARAM)lpToolInfo); } +_AFXCMN_INLINE void CToolTipCtrl::RelayEvent(LPMSG lpMsg) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TTM_RELAYEVENT, 0, (LPARAM)lpMsg); } +_AFXCMN_INLINE void CToolTipCtrl::SetDelayTime(UINT nDelay) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TTM_SETDELAYTIME, 0, nDelay); } +_AFXCMN_INLINE int CToolTipCtrl::GetToolCount() const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TTM_GETTOOLCOUNT, 0, 0L); } + +///////////////////////////////////////////////////////////////////////////// + +_AFXCMN_INLINE CSpinButtonCtrl::CSpinButtonCtrl() + { } +_AFXCMN_INLINE UINT CSpinButtonCtrl::GetAccel(int nAccel, UDACCEL* pAccel) const + { ASSERT(::IsWindow(m_hWnd)); return (UINT) LOWORD(::SendMessage(m_hWnd, UDM_GETACCEL, nAccel, (LPARAM)pAccel)); } +_AFXCMN_INLINE UINT CSpinButtonCtrl::GetBase() const + { ASSERT(::IsWindow(m_hWnd)); return (UINT) LOWORD(::SendMessage(m_hWnd, UDM_GETBASE, 0, 0l)); } +_AFXCMN_INLINE CWnd* CSpinButtonCtrl::GetBuddy() const + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle((HWND) ::SendMessage(m_hWnd, UDM_GETBUDDY, 0, 0l)); } +_AFXCMN_INLINE int CSpinButtonCtrl::GetPos() const + { ASSERT(::IsWindow(m_hWnd)); return (int) LOWORD(::SendMessage(m_hWnd, UDM_GETPOS, 0, 0l)); } +_AFXCMN_INLINE DWORD CSpinButtonCtrl::GetRange() const + { ASSERT(::IsWindow(m_hWnd)); return (DWORD) ::SendMessage(m_hWnd, UDM_GETRANGE, 0, 0l); } +_AFXCMN_INLINE BOOL CSpinButtonCtrl::SetAccel(int nAccel, UDACCEL* pAccel) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL) LOWORD(::SendMessage(m_hWnd, UDM_SETACCEL, nAccel, (LPARAM)pAccel)); } +_AFXCMN_INLINE int CSpinButtonCtrl::SetBase(int nBase) + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, UDM_SETBASE, nBase, 0L); } +_AFXCMN_INLINE CWnd* CSpinButtonCtrl::SetBuddy(CWnd* pWndBuddy) + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle((HWND) ::SendMessage(m_hWnd, UDM_SETBUDDY, (WPARAM)pWndBuddy->m_hWnd, 0L)); } +_AFXCMN_INLINE int CSpinButtonCtrl::SetPos(int nPos) + { ASSERT(::IsWindow(m_hWnd)); return (int) (short) LOWORD(::SendMessage(m_hWnd, UDM_SETPOS, 0, MAKELPARAM(nPos, 0))); } +_AFXCMN_INLINE void CSpinButtonCtrl::SetRange(int nLower, int nUpper) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, UDM_SETRANGE, 0, MAKELPARAM(nUpper, nLower)); } + +///////////////////////////////////////////////////////////////////////////// + +_AFXCMN_INLINE CSliderCtrl::CSliderCtrl() + { } +_AFXCMN_INLINE int CSliderCtrl::GetLineSize() const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TBM_GETLINESIZE, 0, 0l); } +_AFXCMN_INLINE int CSliderCtrl::SetLineSize(int nSize) + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TBM_SETLINESIZE, 0, nSize); } +_AFXCMN_INLINE int CSliderCtrl::GetPageSize() const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TBM_GETPAGESIZE, 0, 0l); } +_AFXCMN_INLINE int CSliderCtrl::SetPageSize(int nSize) + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TBM_SETPAGESIZE, 0, nSize); } +_AFXCMN_INLINE int CSliderCtrl::GetRangeMax() const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TBM_GETRANGEMAX, 0, 0l); } +_AFXCMN_INLINE int CSliderCtrl::GetRangeMin() const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TBM_GETRANGEMIN, 0, 0l); } +_AFXCMN_INLINE void CSliderCtrl::SetRangeMin(int nMin, BOOL bRedraw) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TBM_SETRANGEMIN, bRedraw, nMin); } +_AFXCMN_INLINE void CSliderCtrl::SetRangeMax(int nMax, BOOL bRedraw) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TBM_SETRANGEMAX, bRedraw, nMax); } +_AFXCMN_INLINE void CSliderCtrl::ClearSel(BOOL bRedraw) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TBM_CLEARSEL, bRedraw, 0l); } +_AFXCMN_INLINE void CSliderCtrl::GetChannelRect(LPRECT lprc) const + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TBM_GETCHANNELRECT, 0, (LPARAM)lprc); } +_AFXCMN_INLINE void CSliderCtrl::GetThumbRect(LPRECT lprc) const + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TBM_GETTHUMBRECT, 0, (LPARAM)lprc); } +_AFXCMN_INLINE int CSliderCtrl::GetPos() const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TBM_GETPOS, 0, 0l); } +_AFXCMN_INLINE void CSliderCtrl::SetPos(int nPos) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TBM_SETPOS, TRUE, nPos); } +_AFXCMN_INLINE void CSliderCtrl::VerifyPos() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TBM_SETPOS, FALSE, 0L); } +_AFXCMN_INLINE void CSliderCtrl::ClearTics(BOOL bRedraw) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TBM_CLEARTICS, bRedraw, 0l); } +_AFXCMN_INLINE UINT CSliderCtrl::GetNumTics() const + { ASSERT(::IsWindow(m_hWnd)); return (UINT) ::SendMessage(m_hWnd, TBM_GETNUMTICS, 0, 0l); } +_AFXCMN_INLINE DWORD* CSliderCtrl::GetTicArray() const + { ASSERT(::IsWindow(m_hWnd)); return (DWORD*) ::SendMessage(m_hWnd, TBM_GETPTICS, 0, 0l); } +_AFXCMN_INLINE int CSliderCtrl::GetTic(int nTic) const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TBM_GETTIC, nTic, 0L); } +_AFXCMN_INLINE int CSliderCtrl::GetTicPos(int nTic) const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TBM_GETTICPOS, nTic, 0L); } +_AFXCMN_INLINE BOOL CSliderCtrl::SetTic(int nTic) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TBM_SETTIC, 0, nTic); } +_AFXCMN_INLINE void CSliderCtrl::SetTicFreq(int nFreq) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TBM_SETTICFREQ, nFreq, 0L); } + +///////////////////////////////////////////////////////////////////////////// + +_AFXCMN_INLINE CProgressCtrl::CProgressCtrl() + { } +_AFXCMN_INLINE void CProgressCtrl::SetRange(int nLower, int nUpper) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, PBM_SETRANGE, 0, MAKELPARAM(nLower, nUpper)); } +_AFXCMN_INLINE int CProgressCtrl::SetPos(int nPos) + { ASSERT(::IsWindow(m_hWnd)); return (int) LOWORD(::SendMessage(m_hWnd, PBM_SETPOS, nPos, 0L)); } +_AFXCMN_INLINE int CProgressCtrl::OffsetPos(int nPos) + { ASSERT(::IsWindow(m_hWnd)); return (int) LOWORD(::SendMessage(m_hWnd, PBM_DELTAPOS, nPos, 0L)); } +_AFXCMN_INLINE int CProgressCtrl::SetStep(int nStep) + { ASSERT(::IsWindow(m_hWnd)); return (int) LOWORD(::SendMessage(m_hWnd, PBM_SETSTEP, nStep, 0L)); } +_AFXCMN_INLINE int CProgressCtrl::StepIt() + { ASSERT(::IsWindow(m_hWnd)); return (int) LOWORD(::SendMessage(m_hWnd, PBM_STEPIT, 0, 0L)); } + +///////////////////////////////////////////////////////////////////////////// + +_AFXCMN_INLINE CHeaderCtrl::CHeaderCtrl() + { } +_AFXCMN_INLINE int CHeaderCtrl::GetItemCount() const + { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, HDM_GETITEMCOUNT, 0, 0L); } +_AFXCMN_INLINE int CHeaderCtrl::InsertItem(int nPos, HD_ITEM* phdi) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, HDM_INSERTITEM, nPos, (LPARAM)phdi); } +_AFXCMN_INLINE BOOL CHeaderCtrl::DeleteItem(int nPos) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, HDM_DELETEITEM, nPos, 0L); } +_AFXCMN_INLINE BOOL CHeaderCtrl::GetItem(int nPos, HD_ITEM* pHeaderItem) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, HDM_GETITEM, nPos, (LPARAM)pHeaderItem); } +_AFXCMN_INLINE BOOL CHeaderCtrl::SetItem(int nPos, HD_ITEM* pHeaderItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, HDM_SETITEM, nPos, (LPARAM)pHeaderItem); } +_AFXCMN_INLINE BOOL CHeaderCtrl::Layout(HD_LAYOUT* pHeaderLayout) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, HDM_LAYOUT, 0, (LPARAM)pHeaderLayout); } + +///////////////////////////////////////////////////////////////////////////// + +_AFXCMN_INLINE CImageList::operator HIMAGELIST() const + { return m_hImageList;} +_AFXCMN_INLINE HIMAGELIST CImageList::GetSafeHandle() const + { return (this == NULL) ? NULL : m_hImageList; } +_AFXCMN_INLINE int CImageList::GetImageCount() const + { ASSERT(m_hImageList != NULL); return ImageList_GetImageCount(m_hImageList); } +_AFXCMN_INLINE int CImageList::Add(CBitmap* pbmImage, CBitmap* pbmMask) + { ASSERT(m_hImageList != NULL); return ImageList_Add(m_hImageList, (HBITMAP)pbmImage->GetSafeHandle(), (HBITMAP)pbmMask->GetSafeHandle()); } +_AFXCMN_INLINE int CImageList::Add(CBitmap* pbmImage, COLORREF crMask) + { ASSERT(m_hImageList != NULL); return ImageList_AddMasked(m_hImageList, (HBITMAP)pbmImage->GetSafeHandle(), crMask); } +_AFXCMN_INLINE BOOL CImageList::Remove(int nImage) + { ASSERT(m_hImageList != NULL); return ImageList_Remove(m_hImageList, nImage); } +_AFXCMN_INLINE BOOL CImageList::Replace(int nImage, CBitmap* pbmImage, CBitmap* pbmMask) + { ASSERT(m_hImageList != NULL); return ImageList_Replace(m_hImageList, nImage, (HBITMAP)pbmImage->GetSafeHandle(), (HBITMAP)pbmMask->GetSafeHandle()); } +_AFXCMN_INLINE int CImageList::Add(HICON hIcon) + { ASSERT(m_hImageList != NULL); return ImageList_AddIcon(m_hImageList, hIcon); } +_AFXCMN_INLINE int CImageList::Replace(int nImage, HICON hIcon) + { ASSERT(m_hImageList != NULL); return ImageList_ReplaceIcon(m_hImageList, nImage, hIcon); } +_AFXCMN_INLINE HICON CImageList::ExtractIcon(int nImage) + { ASSERT(m_hImageList != NULL); return ImageList_ExtractIcon(NULL, m_hImageList, nImage); } +_AFXCMN_INLINE BOOL CImageList::Draw(CDC* pDC, int nImage, POINT pt, UINT nStyle) + { ASSERT(m_hImageList != NULL); ASSERT(pDC != NULL); return ImageList_Draw(m_hImageList, nImage, pDC->GetSafeHdc(), pt.x, pt.y, nStyle); } +_AFXCMN_INLINE COLORREF CImageList::SetBkColor(COLORREF cr) + { ASSERT(m_hImageList != NULL); return ImageList_SetBkColor(m_hImageList, cr); } +_AFXCMN_INLINE COLORREF CImageList::GetBkColor() const + { ASSERT(m_hImageList != NULL); return ImageList_GetBkColor(m_hImageList); } +_AFXCMN_INLINE BOOL CImageList::SetOverlayImage(int nImage, int nOverlay) + { ASSERT(m_hImageList != NULL); return ImageList_SetOverlayImage(m_hImageList, nImage, nOverlay); } +_AFXCMN_INLINE BOOL CImageList::GetImageInfo(int nImage, IMAGEINFO* pImageInfo) const + { ASSERT(m_hImageList != NULL); return ImageList_GetImageInfo(m_hImageList, nImage, pImageInfo); } +_AFXCMN_INLINE BOOL CImageList::BeginDrag(int nImage, CPoint ptHotSpot) + { ASSERT(m_hImageList != NULL); return ImageList_BeginDrag(m_hImageList, nImage, ptHotSpot.x, ptHotSpot.y); } +_AFXCMN_INLINE void PASCAL CImageList::EndDrag() + { ImageList_EndDrag(); } +_AFXCMN_INLINE BOOL PASCAL CImageList::DragMove(CPoint pt) + { return ImageList_DragMove(pt.x, pt.y); } +_AFXCMN_INLINE BOOL CImageList::SetDragCursorImage(int nDrag, CPoint ptHotSpot) + { ASSERT(m_hImageList != NULL); return ImageList_SetDragCursorImage(m_hImageList, nDrag, ptHotSpot.x, ptHotSpot.y); } +_AFXCMN_INLINE BOOL PASCAL CImageList::DragShowNolock(BOOL bShow) + {return ImageList_DragShowNolock(bShow);} +_AFXCMN_INLINE CImageList* PASCAL CImageList::GetDragImage(LPPOINT lpPoint, LPPOINT lpPointHotSpot) + {return CImageList::FromHandle(ImageList_GetDragImage(lpPoint, lpPointHotSpot));} +_AFXCMN_INLINE BOOL PASCAL CImageList::DragEnter(CWnd* pWndLock, CPoint point) + { return ImageList_DragEnter(pWndLock->GetSafeHwnd(), point.x, point.y); } +_AFXCMN_INLINE BOOL PASCAL CImageList::DragLeave(CWnd* pWndLock) + { return ImageList_DragLeave(pWndLock->GetSafeHwnd()); } + +///////////////////////////////////////////////////////////////////////////// + +_AFXCMN_INLINE CTabCtrl::CTabCtrl() + { } +_AFXCMN_INLINE CImageList* CTabCtrl::GetImageList() const + { ASSERT(::IsWindow(m_hWnd)); return CImageList::FromHandle((HIMAGELIST)::SendMessage(m_hWnd, TCM_GETIMAGELIST, 0, 0L)); } +_AFXCMN_INLINE CImageList* CTabCtrl::SetImageList(CImageList* pImageList) + { ASSERT(::IsWindow(m_hWnd)); return CImageList::FromHandle((HIMAGELIST)::SendMessage(m_hWnd, TCM_SETIMAGELIST, 0, (LPARAM)pImageList->GetSafeHandle())); } +_AFXCMN_INLINE int CTabCtrl::GetItemCount() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, TCM_GETITEMCOUNT, 0, 0L); } +_AFXCMN_INLINE BOOL CTabCtrl::GetItem(int nItem, TC_ITEM* pTabCtrlItem) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TCM_GETITEM, nItem, (LPARAM)pTabCtrlItem); } +_AFXCMN_INLINE BOOL CTabCtrl::SetItem(int nItem, TC_ITEM* pTabCtrlItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TCM_SETITEM, nItem, (LPARAM)pTabCtrlItem); } +_AFXCMN_INLINE BOOL CTabCtrl::InsertItem(int nItem, TC_ITEM* pTabCtrlItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TCM_INSERTITEM, nItem, (LPARAM)pTabCtrlItem); } +_AFXCMN_INLINE BOOL CTabCtrl::DeleteItem(int nItem) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TCM_DELETEITEM, nItem, 0L); } +_AFXCMN_INLINE BOOL CTabCtrl::DeleteAllItems() + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TCM_DELETEALLITEMS, 0, 0L); } +_AFXCMN_INLINE BOOL CTabCtrl::GetItemRect(int nItem, LPRECT lpRect) const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TCM_GETITEMRECT, nItem, (LPARAM)lpRect); } +_AFXCMN_INLINE int CTabCtrl::GetCurSel() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, TCM_GETCURSEL, 0, 0L); } +_AFXCMN_INLINE int CTabCtrl::SetCurSel(int nItem) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, TCM_SETCURSEL, nItem, 0L); } +_AFXCMN_INLINE int CTabCtrl::HitTest(TC_HITTESTINFO* pHitTestInfo) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, TCM_HITTEST, 0, (LPARAM) pHitTestInfo); } +_AFXCMN_INLINE void CTabCtrl::AdjustRect(BOOL bLarger, LPRECT lpRect) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TCM_ADJUSTRECT, bLarger, (LPARAM)lpRect); } +_AFXCMN_INLINE CSize CTabCtrl::SetItemSize(CSize size) + { ASSERT(::IsWindow(m_hWnd)); return (CSize)::SendMessage(m_hWnd, TCM_SETITEMSIZE, 0, MAKELPARAM(size.cx,size.cy)); } +_AFXCMN_INLINE void CTabCtrl::RemoveImage(int nImage) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TCM_REMOVEIMAGE, nImage, 0L); } +_AFXCMN_INLINE void CTabCtrl::SetPadding(CSize size) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TCM_SETPADDING, 0, MAKELPARAM(size.cx, size.cy)); } +_AFXCMN_INLINE int CTabCtrl::GetRowCount() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, TCM_GETROWCOUNT, 0, 0L); } +_AFXCMN_INLINE CToolTipCtrl* CTabCtrl::GetTooltips() const + { ASSERT(::IsWindow(m_hWnd)); return (CToolTipCtrl*)CWnd::FromHandle((HWND)::SendMessage(m_hWnd, TCM_GETTOOLTIPS, 0, 0L)); } +_AFXCMN_INLINE void CTabCtrl::SetTooltips(CToolTipCtrl* pWndTip) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TCM_SETTOOLTIPS, (WPARAM)pWndTip->m_hWnd, 0L); } +_AFXCMN_INLINE int CTabCtrl::GetCurFocus() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, TCM_GETCURFOCUS, 0, 0L); } + +///////////////////////////////////////////////////////////////////////////// + +_AFXCMN_INLINE CAnimateCtrl::CAnimateCtrl() + { } +_AFXCMN_INLINE BOOL CAnimateCtrl::Open(LPCTSTR lpszName) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, ACM_OPEN, 0, (LPARAM)lpszName); } +_AFXCMN_INLINE BOOL CAnimateCtrl::Open(UINT nID) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, ACM_OPEN, 0, nID); } +_AFXCMN_INLINE BOOL CAnimateCtrl::Play(UINT nFrom, UINT nTo, UINT nRep) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, ACM_PLAY, nRep, MAKELPARAM(nFrom, nTo)); } +_AFXCMN_INLINE BOOL CAnimateCtrl::Stop() + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, ACM_STOP, 0, 0L); } +_AFXCMN_INLINE BOOL CAnimateCtrl::Close() + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, ACM_OPEN, 0, 0L); } +_AFXCMN_INLINE BOOL CAnimateCtrl::Seek(UINT nTo) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, ACM_PLAY, 0, MAKELPARAM(nTo, nTo)); } + +///////////////////////////////////////////////////////////////////////////// + +#ifndef _AFX_NO_RICHEDIT_SUPPORT +_AFXCMN_INLINE CRichEditCtrl::CRichEditCtrl() + { } +_AFXCMN_INLINE BOOL CRichEditCtrl::CanUndo() const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_CANUNDO, 0, 0); } +_AFXCMN_INLINE int CRichEditCtrl::GetLineCount() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, EM_GETLINECOUNT, 0, 0); } +_AFXCMN_INLINE BOOL CRichEditCtrl::GetModify() const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_GETMODIFY, 0, 0); } +_AFXCMN_INLINE void CRichEditCtrl::SetModify(BOOL bModified /* = TRUE */) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_SETMODIFY, bModified, 0);} +_AFXCMN_INLINE void CRichEditCtrl::GetRect(LPRECT lpRect) const + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_GETRECT, 0, (LPARAM)lpRect); } +_AFXCMN_INLINE CPoint CRichEditCtrl::GetCharPos(long lChar) const + { ASSERT(::IsWindow(m_hWnd)); CPoint pt; ::SendMessage(m_hWnd, EM_POSFROMCHAR, (WPARAM)&pt, (LPARAM)lChar); return pt;} +_AFXCMN_INLINE void CRichEditCtrl::SetOptions(WORD wOp, DWORD dwFlags) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_SETOPTIONS, (WPARAM)wOp, (LPARAM)dwFlags); } +_AFXCMN_INLINE void CRichEditCtrl::EmptyUndoBuffer() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_EMPTYUNDOBUFFER, 0, 0); } +_AFXCMN_INLINE void CRichEditCtrl::ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo) + {ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_REPLACESEL, (WPARAM) bCanUndo, (LPARAM)lpszNewText); } +_AFXCMN_INLINE void CRichEditCtrl::SetRect(LPCRECT lpRect) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_SETRECT, 0, (LPARAM)lpRect); } +_AFXCMN_INLINE BOOL CRichEditCtrl::Undo() + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_UNDO, 0, 0); } +_AFXCMN_INLINE void CRichEditCtrl::Clear() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_CLEAR, 0, 0); } +_AFXCMN_INLINE void CRichEditCtrl::Copy() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_COPY, 0, 0); } +_AFXCMN_INLINE void CRichEditCtrl::Cut() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_CUT, 0, 0); } +_AFXCMN_INLINE void CRichEditCtrl::Paste() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_PASTE, 0, 0); } +_AFXCMN_INLINE BOOL CRichEditCtrl::SetReadOnly(BOOL bReadOnly /* = TRUE */ ) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_SETREADONLY, bReadOnly, 0L); } +_AFXCMN_INLINE int CRichEditCtrl::GetFirstVisibleLine() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, EM_GETFIRSTVISIBLELINE, 0, 0L); } +_AFXCMN_INLINE BOOL CRichEditCtrl::DisplayBand(LPRECT pDisplayRect) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_DISPLAYBAND, 0, (LPARAM)pDisplayRect); } +_AFXCMN_INLINE void CRichEditCtrl::GetSel(CHARRANGE &cr) const + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_EXGETSEL, 0, (LPARAM)&cr); } + +_AFXCMN_INLINE void CRichEditCtrl::LimitText(long nChars) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_EXLIMITTEXT, 0, nChars); } + +_AFXCMN_INLINE long CRichEditCtrl::LineFromChar(long nIndex) const + { ASSERT(::IsWindow(m_hWnd)); return (long)::SendMessage(m_hWnd, EM_EXLINEFROMCHAR, 0, nIndex); } + +_AFXCMN_INLINE void CRichEditCtrl::SetSel(CHARRANGE &cr) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_EXSETSEL, 0, (LPARAM)&cr); } + +_AFXCMN_INLINE long CRichEditCtrl::FindText(DWORD dwFlags, FINDTEXTEX* pFindText) const + { ASSERT(::IsWindow(m_hWnd)); return (long)::SendMessage(m_hWnd, EM_FINDTEXTEX, dwFlags, (LPARAM)pFindText); } + +_AFXCMN_INLINE long CRichEditCtrl::FormatRange(FORMATRANGE* pfr, BOOL bDisplay) + { ASSERT(::IsWindow(m_hWnd)); return (long)::SendMessage(m_hWnd, EM_FORMATRANGE, (WPARAM)bDisplay, (LPARAM)pfr); } + +_AFXCMN_INLINE long CRichEditCtrl::GetEventMask() const + { ASSERT(::IsWindow(m_hWnd)); return (long)::SendMessage(m_hWnd, EM_GETEVENTMASK, 0, 0L); } + +_AFXCMN_INLINE long CRichEditCtrl::GetLimitText() const + { ASSERT(::IsWindow(m_hWnd)); return (long)::SendMessage(m_hWnd, EM_GETLIMITTEXT, 0, 0L); } + +_AFXCMN_INLINE long CRichEditCtrl::GetSelText(LPSTR lpBuf) const + { ASSERT(::IsWindow(m_hWnd)); return (long)::SendMessage(m_hWnd, EM_GETSELTEXT, 0, (LPARAM)lpBuf); } + +_AFXCMN_INLINE void CRichEditCtrl::HideSelection(BOOL bHide, BOOL bPerm) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_HIDESELECTION, bHide, bPerm); } + +_AFXCMN_INLINE void CRichEditCtrl::RequestResize() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_REQUESTRESIZE, 0, 0L); } + +_AFXCMN_INLINE WORD CRichEditCtrl::GetSelectionType() const + { ASSERT(::IsWindow(m_hWnd)); return (WORD)::SendMessage(m_hWnd, EM_SELECTIONTYPE, 0, 0L); } + +_AFXCMN_INLINE COLORREF CRichEditCtrl::SetBackgroundColor(BOOL bSysColor, COLORREF cr) + { ASSERT(::IsWindow(m_hWnd)); return (COLORREF)::SendMessage(m_hWnd, EM_SETBKGNDCOLOR, bSysColor, cr); } + +_AFXCMN_INLINE DWORD CRichEditCtrl::SetEventMask(DWORD dwEventMask) + { ASSERT(::IsWindow(m_hWnd)); return (DWORD)::SendMessage(m_hWnd, EM_SETEVENTMASK, 0, dwEventMask); } + +_AFXCMN_INLINE BOOL CRichEditCtrl::SetOLECallback(IRichEditOleCallback* pCallback) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_SETOLECALLBACK, 0, (LPARAM)pCallback); } + +_AFXCMN_INLINE BOOL CRichEditCtrl::SetTargetDevice(HDC hDC, long lLineWidth) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_SETTARGETDEVICE, (WPARAM)hDC, lLineWidth); } + +_AFXCMN_INLINE BOOL CRichEditCtrl::SetTargetDevice(CDC &dc, long lLineWidth) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_SETTARGETDEVICE, (WPARAM)dc.m_hDC, lLineWidth); } + +_AFXCMN_INLINE long CRichEditCtrl::StreamIn(int nFormat, EDITSTREAM &es) + { ASSERT(::IsWindow(m_hWnd)); return (long)::SendMessage(m_hWnd, EM_STREAMIN, nFormat, (LPARAM)&es); } + +_AFXCMN_INLINE long CRichEditCtrl::StreamOut(int nFormat, EDITSTREAM &es) + { ASSERT(::IsWindow(m_hWnd)); return (long)::SendMessage(m_hWnd, EM_STREAMOUT, nFormat, (LPARAM)&es); } + +_AFXCMN_INLINE long CRichEditCtrl::GetTextLength() const + { ASSERT(::IsWindow(m_hWnd)); return (long)::SendMessage(m_hWnd, WM_GETTEXTLENGTH, NULL, NULL); } + +#endif //!_AFX_NO_RICHEDIT_SUPPORT +///////////////////////////////////////////////////////////////////////////// + +#endif //_AFXCMN_INLINE + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxcoll.h b/public/sdk/inc/mfc42/afxcoll.h new file mode 100644 index 000000000..042d43f06 --- /dev/null +++ b/public/sdk/inc/mfc42/afxcoll.h @@ -0,0 +1,1446 @@ +// 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. + +#ifndef __AFXCOLL_H__ +#define __AFXCOLL_H__ + +#ifndef __AFX_H__ + #include <afx.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// Classes declared in this file + +//CObject + // Arrays + class CByteArray; // array of BYTE + class CWordArray; // array of WORD + class CDWordArray; // array of DWORD + class CUIntArray; // array of UINT + class CPtrArray; // array of void* + class CObArray; // array of CObject* + + // Lists + class CPtrList; // list of void* + class CObList; // list of CObject* + + // Maps (aka Dictionaries) + class CMapWordToOb; // map from WORD to CObject* + class CMapWordToPtr; // map from WORD to void* + class CMapPtrToWord; // map from void* to WORD + class CMapPtrToPtr; // map from void* to void* + + // Special String variants + class CStringArray; // array of CStrings + class CStringList; // list of CStrings + class CMapStringToPtr; // map from CString to void* + class CMapStringToOb; // map from CString to CObject* + class CMapStringToString; // map from CString to CString + +///////////////////////////////////////////////////////////////////////////// + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +//////////////////////////////////////////////////////////////////////////// + +class CByteArray : public CObject +{ + + DECLARE_SERIAL(CByteArray) +public: + +// Construction + CByteArray(); + +// Attributes + int GetSize() const; + int GetUpperBound() const; + void SetSize(int nNewSize, int nGrowBy = -1); + +// Operations + // Clean up + void FreeExtra(); + void RemoveAll(); + + // Accessing elements + BYTE GetAt(int nIndex) const; + void SetAt(int nIndex, BYTE newElement); + BYTE& ElementAt(int nIndex); + + // Direct Access to the element data (may return NULL) + const BYTE* GetData() const; + BYTE* GetData(); + + // Potentially growing the array + void SetAtGrow(int nIndex, BYTE newElement); + int Add(BYTE newElement); + int Append(const CByteArray& src); + void Copy(const CByteArray& src); + + // overloaded operator helpers + BYTE operator[](int nIndex) const; + BYTE& operator[](int nIndex); + + // Operations that move elements around + void InsertAt(int nIndex, BYTE newElement, int nCount = 1); + void RemoveAt(int nIndex, int nCount = 1); + void InsertAt(int nStartIndex, CByteArray* pNewArray); + +// Implementation +protected: + BYTE* m_pData; // the actual array of data + int m_nSize; // # of elements (upperBound - 1) + int m_nMaxSize; // max allocated + int m_nGrowBy; // grow amount + +public: + ~CByteArray(); + + void Serialize(CArchive&); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + +protected: + // local typedefs for class templates + typedef BYTE BASE_TYPE; + typedef BYTE BASE_ARG_TYPE; +}; + + +//////////////////////////////////////////////////////////////////////////// + +class CWordArray : public CObject +{ + + DECLARE_SERIAL(CWordArray) +public: + +// Construction + CWordArray(); + +// Attributes + int GetSize() const; + int GetUpperBound() const; + void SetSize(int nNewSize, int nGrowBy = -1); + +// Operations + // Clean up + void FreeExtra(); + void RemoveAll(); + + // Accessing elements + WORD GetAt(int nIndex) const; + void SetAt(int nIndex, WORD newElement); + WORD& ElementAt(int nIndex); + + // Direct Access to the element data (may return NULL) + const WORD* GetData() const; + WORD* GetData(); + + // Potentially growing the array + void SetAtGrow(int nIndex, WORD newElement); + int Add(WORD newElement); + int Append(const CWordArray& src); + void Copy(const CWordArray& src); + + // overloaded operator helpers + WORD operator[](int nIndex) const; + WORD& operator[](int nIndex); + + // Operations that move elements around + void InsertAt(int nIndex, WORD newElement, int nCount = 1); + void RemoveAt(int nIndex, int nCount = 1); + void InsertAt(int nStartIndex, CWordArray* pNewArray); + +// Implementation +protected: + WORD* m_pData; // the actual array of data + int m_nSize; // # of elements (upperBound - 1) + int m_nMaxSize; // max allocated + int m_nGrowBy; // grow amount + +public: + ~CWordArray(); + + void Serialize(CArchive&); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + +protected: + // local typedefs for class templates + typedef WORD BASE_TYPE; + typedef WORD BASE_ARG_TYPE; +}; + + +//////////////////////////////////////////////////////////////////////////// + +class CDWordArray : public CObject +{ + + DECLARE_SERIAL(CDWordArray) +public: + +// Construction + CDWordArray(); + +// Attributes + int GetSize() const; + int GetUpperBound() const; + void SetSize(int nNewSize, int nGrowBy = -1); + +// Operations + // Clean up + void FreeExtra(); + void RemoveAll(); + + // Accessing elements + DWORD GetAt(int nIndex) const; + void SetAt(int nIndex, DWORD newElement); + DWORD& ElementAt(int nIndex); + + // Direct Access to the element data (may return NULL) + const DWORD* GetData() const; + DWORD* GetData(); + + // Potentially growing the array + void SetAtGrow(int nIndex, DWORD newElement); + int Add(DWORD newElement); + int Append(const CDWordArray& src); + void Copy(const CDWordArray& src); + + // overloaded operator helpers + DWORD operator[](int nIndex) const; + DWORD& operator[](int nIndex); + + // Operations that move elements around + void InsertAt(int nIndex, DWORD newElement, int nCount = 1); + void RemoveAt(int nIndex, int nCount = 1); + void InsertAt(int nStartIndex, CDWordArray* pNewArray); + +// Implementation +protected: + DWORD* m_pData; // the actual array of data + int m_nSize; // # of elements (upperBound - 1) + int m_nMaxSize; // max allocated + int m_nGrowBy; // grow amount + +public: + ~CDWordArray(); + + void Serialize(CArchive&); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + +protected: + // local typedefs for class templates + typedef DWORD BASE_TYPE; + typedef DWORD BASE_ARG_TYPE; +}; + + +//////////////////////////////////////////////////////////////////////////// + +class CUIntArray : public CObject +{ + + DECLARE_DYNAMIC(CUIntArray) +public: + +// Construction + CUIntArray(); + +// Attributes + int GetSize() const; + int GetUpperBound() const; + void SetSize(int nNewSize, int nGrowBy = -1); + +// Operations + // Clean up + void FreeExtra(); + void RemoveAll(); + + // Accessing elements + UINT GetAt(int nIndex) const; + void SetAt(int nIndex, UINT newElement); + UINT& ElementAt(int nIndex); + + // Direct Access to the element data (may return NULL) + const UINT* GetData() const; + UINT* GetData(); + + // Potentially growing the array + void SetAtGrow(int nIndex, UINT newElement); + int Add(UINT newElement); + int Append(const CUIntArray& src); + void Copy(const CUIntArray& src); + + // overloaded operator helpers + UINT operator[](int nIndex) const; + UINT& operator[](int nIndex); + + // Operations that move elements around + void InsertAt(int nIndex, UINT newElement, int nCount = 1); + void RemoveAt(int nIndex, int nCount = 1); + void InsertAt(int nStartIndex, CUIntArray* pNewArray); + +// Implementation +protected: + UINT* m_pData; // the actual array of data + int m_nSize; // # of elements (upperBound - 1) + int m_nMaxSize; // max allocated + int m_nGrowBy; // grow amount + +public: + ~CUIntArray(); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + +protected: + // local typedefs for class templates + typedef UINT BASE_TYPE; + typedef UINT BASE_ARG_TYPE; +}; + + +//////////////////////////////////////////////////////////////////////////// + +class CPtrArray : public CObject +{ + + DECLARE_DYNAMIC(CPtrArray) +public: + +// Construction + CPtrArray(); + +// Attributes + int GetSize() const; + int GetUpperBound() const; + void SetSize(int nNewSize, int nGrowBy = -1); + +// Operations + // Clean up + void FreeExtra(); + void RemoveAll(); + + // Accessing elements + void* GetAt(int nIndex) const; + void SetAt(int nIndex, void* newElement); + void*& ElementAt(int nIndex); + + // Direct Access to the element data (may return NULL) + const void** GetData() const; + void** GetData(); + + // Potentially growing the array + void SetAtGrow(int nIndex, void* newElement); + int Add(void* newElement); + int Append(const CPtrArray& src); + void Copy(const CPtrArray& src); + + // overloaded operator helpers + void* operator[](int nIndex) const; + void*& operator[](int nIndex); + + // Operations that move elements around + void InsertAt(int nIndex, void* newElement, int nCount = 1); + void RemoveAt(int nIndex, int nCount = 1); + void InsertAt(int nStartIndex, CPtrArray* pNewArray); + +// Implementation +protected: + void** m_pData; // the actual array of data + int m_nSize; // # of elements (upperBound - 1) + int m_nMaxSize; // max allocated + int m_nGrowBy; // grow amount + +public: + ~CPtrArray(); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + +protected: + // local typedefs for class templates + typedef void* BASE_TYPE; + typedef void* BASE_ARG_TYPE; +}; + + +//////////////////////////////////////////////////////////////////////////// + +class CObArray : public CObject +{ + + DECLARE_SERIAL(CObArray) +public: + +// Construction + CObArray(); + +// Attributes + int GetSize() const; + int GetUpperBound() const; + void SetSize(int nNewSize, int nGrowBy = -1); + +// Operations + // Clean up + void FreeExtra(); + void RemoveAll(); + + // Accessing elements + CObject* GetAt(int nIndex) const; + void SetAt(int nIndex, CObject* newElement); + CObject*& ElementAt(int nIndex); + + // Direct Access to the element data (may return NULL) + const CObject** GetData() const; + CObject** GetData(); + + // Potentially growing the array + void SetAtGrow(int nIndex, CObject* newElement); + int Add(CObject* newElement); + int Append(const CObArray& src); + void Copy(const CObArray& src); + + // overloaded operator helpers + CObject* operator[](int nIndex) const; + CObject*& operator[](int nIndex); + + // Operations that move elements around + void InsertAt(int nIndex, CObject* newElement, int nCount = 1); + void RemoveAt(int nIndex, int nCount = 1); + void InsertAt(int nStartIndex, CObArray* pNewArray); + +// Implementation +protected: + CObject** m_pData; // the actual array of data + int m_nSize; // # of elements (upperBound - 1) + int m_nMaxSize; // max allocated + int m_nGrowBy; // grow amount + +public: + ~CObArray(); + + void Serialize(CArchive&); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + +protected: + // local typedefs for class templates + typedef CObject* BASE_TYPE; + typedef CObject* BASE_ARG_TYPE; +}; + + +//////////////////////////////////////////////////////////////////////////// + +class CStringArray : public CObject +{ + + DECLARE_SERIAL(CStringArray) +public: + +// Construction + CStringArray(); + +// Attributes + int GetSize() const; + int GetUpperBound() const; + void SetSize(int nNewSize, int nGrowBy = -1); + +// Operations + // Clean up + void FreeExtra(); + void RemoveAll(); + + // Accessing elements + CString GetAt(int nIndex) const; + void SetAt(int nIndex, LPCTSTR newElement); + CString& ElementAt(int nIndex); + + // Direct Access to the element data (may return NULL) + const CString* GetData() const; + CString* GetData(); + + // Potentially growing the array + void SetAtGrow(int nIndex, LPCTSTR newElement); + int Add(LPCTSTR newElement); + int Append(const CStringArray& src); + void Copy(const CStringArray& src); + + // overloaded operator helpers + CString operator[](int nIndex) const; + CString& operator[](int nIndex); + + // Operations that move elements around + void InsertAt(int nIndex, LPCTSTR newElement, int nCount = 1); + void RemoveAt(int nIndex, int nCount = 1); + void InsertAt(int nStartIndex, CStringArray* pNewArray); + +// Implementation +protected: + CString* m_pData; // the actual array of data + int m_nSize; // # of elements (upperBound - 1) + int m_nMaxSize; // max allocated + int m_nGrowBy; // grow amount + +public: + ~CStringArray(); + + void Serialize(CArchive&); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + +protected: + // local typedefs for class templates + typedef CString BASE_TYPE; + typedef LPCTSTR BASE_ARG_TYPE; +}; + + +///////////////////////////////////////////////////////////////////////////// + +class CPtrList : public CObject +{ + + DECLARE_DYNAMIC(CPtrList) + +protected: + struct CNode + { + CNode* pNext; + CNode* pPrev; + void* data; + }; +public: + +// Construction + CPtrList(int nBlockSize = 10); + +// Attributes (head and tail) + // count of elements + int GetCount() const; + BOOL IsEmpty() const; + + // peek at head or tail + void*& GetHead(); + void* GetHead() const; + void*& GetTail(); + void* GetTail() const; + +// Operations + // get head or tail (and remove it) - don't call on empty list! + void* RemoveHead(); + void* RemoveTail(); + + // add before head or after tail + POSITION AddHead(void* newElement); + POSITION AddTail(void* newElement); + + // add another list of elements before head or after tail + void AddHead(CPtrList* pNewList); + void AddTail(CPtrList* pNewList); + + // remove all elements + void RemoveAll(); + + // iteration + POSITION GetHeadPosition() const; + POSITION GetTailPosition() const; + void*& GetNext(POSITION& rPosition); // return *Position++ + void* GetNext(POSITION& rPosition) const; // return *Position++ + void*& GetPrev(POSITION& rPosition); // return *Position-- + void* GetPrev(POSITION& rPosition) const; // return *Position-- + + // getting/modifying an element at a given position + void*& GetAt(POSITION position); + void* GetAt(POSITION position) const; + void SetAt(POSITION pos, void* newElement); + void RemoveAt(POSITION position); + + // inserting before or after a given position + POSITION InsertBefore(POSITION position, void* newElement); + POSITION InsertAfter(POSITION position, void* newElement); + + // helper functions (note: O(n) speed) + POSITION Find(void* searchValue, POSITION startAfter = NULL) const; + // defaults to starting at the HEAD + // return NULL if not found + POSITION FindIndex(int nIndex) const; + // get the 'nIndex'th element (may return NULL) + +// Implementation +protected: + CNode* m_pNodeHead; + CNode* m_pNodeTail; + int m_nCount; + CNode* m_pNodeFree; + struct CPlex* m_pBlocks; + int m_nBlockSize; + + CNode* NewNode(CNode*, CNode*); + void FreeNode(CNode*); + +public: + ~CPtrList(); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + // local typedefs for class templates + typedef void* BASE_TYPE; + typedef void* BASE_ARG_TYPE; +}; + + +///////////////////////////////////////////////////////////////////////////// + +class CObList : public CObject +{ + + DECLARE_SERIAL(CObList) + +protected: + struct CNode + { + CNode* pNext; + CNode* pPrev; + CObject* data; + }; +public: + +// Construction + CObList(int nBlockSize = 10); + +// Attributes (head and tail) + // count of elements + int GetCount() const; + BOOL IsEmpty() const; + + // peek at head or tail + CObject*& GetHead(); + CObject* GetHead() const; + CObject*& GetTail(); + CObject* GetTail() const; + +// Operations + // get head or tail (and remove it) - don't call on empty list! + CObject* RemoveHead(); + CObject* RemoveTail(); + + // add before head or after tail + POSITION AddHead(CObject* newElement); + POSITION AddTail(CObject* newElement); + + // add another list of elements before head or after tail + void AddHead(CObList* pNewList); + void AddTail(CObList* pNewList); + + // remove all elements + void RemoveAll(); + + // iteration + POSITION GetHeadPosition() const; + POSITION GetTailPosition() const; + CObject*& GetNext(POSITION& rPosition); // return *Position++ + CObject* GetNext(POSITION& rPosition) const; // return *Position++ + CObject*& GetPrev(POSITION& rPosition); // return *Position-- + CObject* GetPrev(POSITION& rPosition) const; // return *Position-- + + // getting/modifying an element at a given position + CObject*& GetAt(POSITION position); + CObject* GetAt(POSITION position) const; + void SetAt(POSITION pos, CObject* newElement); + void RemoveAt(POSITION position); + + // inserting before or after a given position + POSITION InsertBefore(POSITION position, CObject* newElement); + POSITION InsertAfter(POSITION position, CObject* newElement); + + // helper functions (note: O(n) speed) + POSITION Find(CObject* searchValue, POSITION startAfter = NULL) const; + // defaults to starting at the HEAD + // return NULL if not found + POSITION FindIndex(int nIndex) const; + // get the 'nIndex'th element (may return NULL) + +// Implementation +protected: + CNode* m_pNodeHead; + CNode* m_pNodeTail; + int m_nCount; + CNode* m_pNodeFree; + struct CPlex* m_pBlocks; + int m_nBlockSize; + + CNode* NewNode(CNode*, CNode*); + void FreeNode(CNode*); + +public: + ~CObList(); + + void Serialize(CArchive&); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + // local typedefs for class templates + typedef CObject* BASE_TYPE; + typedef CObject* BASE_ARG_TYPE; +}; + + +///////////////////////////////////////////////////////////////////////////// + +class CStringList : public CObject +{ + + DECLARE_SERIAL(CStringList) + +protected: + struct CNode + { + CNode* pNext; + CNode* pPrev; + CString data; + }; +public: + +// Construction + CStringList(int nBlockSize = 10); + +// Attributes (head and tail) + // count of elements + int GetCount() const; + BOOL IsEmpty() const; + + // peek at head or tail + CString& GetHead(); + CString GetHead() const; + CString& GetTail(); + CString GetTail() const; + +// Operations + // get head or tail (and remove it) - don't call on empty list! + CString RemoveHead(); + CString RemoveTail(); + + // add before head or after tail + POSITION AddHead(LPCTSTR newElement); + POSITION AddTail(LPCTSTR newElement); + + // add another list of elements before head or after tail + void AddHead(CStringList* pNewList); + void AddTail(CStringList* pNewList); + + // remove all elements + void RemoveAll(); + + // iteration + POSITION GetHeadPosition() const; + POSITION GetTailPosition() const; + CString& GetNext(POSITION& rPosition); // return *Position++ + CString GetNext(POSITION& rPosition) const; // return *Position++ + CString& GetPrev(POSITION& rPosition); // return *Position-- + CString GetPrev(POSITION& rPosition) const; // return *Position-- + + // getting/modifying an element at a given position + CString& GetAt(POSITION position); + CString GetAt(POSITION position) const; + void SetAt(POSITION pos, LPCTSTR newElement); + void RemoveAt(POSITION position); + + // inserting before or after a given position + POSITION InsertBefore(POSITION position, LPCTSTR newElement); + POSITION InsertAfter(POSITION position, LPCTSTR newElement); + + // helper functions (note: O(n) speed) + POSITION Find(LPCTSTR searchValue, POSITION startAfter = NULL) const; + // defaults to starting at the HEAD + // return NULL if not found + POSITION FindIndex(int nIndex) const; + // get the 'nIndex'th element (may return NULL) + +// Implementation +protected: + CNode* m_pNodeHead; + CNode* m_pNodeTail; + int m_nCount; + CNode* m_pNodeFree; + struct CPlex* m_pBlocks; + int m_nBlockSize; + + CNode* NewNode(CNode*, CNode*); + void FreeNode(CNode*); + +public: + ~CStringList(); + + void Serialize(CArchive&); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + // local typedefs for class templates + typedef CString BASE_TYPE; + typedef LPCTSTR BASE_ARG_TYPE; +}; + + +///////////////////////////////////////////////////////////////////////////// + +class CMapWordToPtr : public CObject +{ + + DECLARE_DYNAMIC(CMapWordToPtr) +protected: + // Association + struct CAssoc + { + CAssoc* pNext; + + WORD key; + void* value; + }; + +public: + +// Construction + CMapWordToPtr(int nBlockSize = 10); + +// Attributes + // number of elements + int GetCount() const; + BOOL IsEmpty() const; + + // Lookup + BOOL Lookup(WORD key, void*& rValue) const; + +// Operations + // Lookup and add if not there + void*& operator[](WORD key); + + // add a new (key, value) pair + void SetAt(WORD key, void* newValue); + + // removing existing (key, ?) pair + BOOL RemoveKey(WORD key); + void RemoveAll(); + + // iterating all (key, value) pairs + POSITION GetStartPosition() const; + void GetNextAssoc(POSITION& rNextPosition, WORD& rKey, void*& rValue) const; + + // advanced features for derived classes + UINT GetHashTableSize() const; + void InitHashTable(UINT hashSize, BOOL bAllocNow = TRUE); + +// Overridables: special non-virtual (see map implementation for details) + // Routine used to user-provided hash keys + UINT HashKey(WORD key) const; + +// Implementation +protected: + CAssoc** m_pHashTable; + UINT m_nHashTableSize; + int m_nCount; + CAssoc* m_pFreeList; + struct CPlex* m_pBlocks; + int m_nBlockSize; + + CAssoc* NewAssoc(); + void FreeAssoc(CAssoc*); + CAssoc* GetAssocAt(WORD, UINT&) const; + +public: + ~CMapWordToPtr(); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + + +protected: + // local typedefs for CTypedPtrMap class template + typedef WORD BASE_KEY; + typedef WORD BASE_ARG_KEY; + typedef void* BASE_VALUE; + typedef void* BASE_ARG_VALUE; +}; + + +///////////////////////////////////////////////////////////////////////////// + +class CMapPtrToWord : public CObject +{ + + DECLARE_DYNAMIC(CMapPtrToWord) +protected: + // Association + struct CAssoc + { + CAssoc* pNext; + + void* key; + WORD value; + }; + +public: + +// Construction + CMapPtrToWord(int nBlockSize = 10); + +// Attributes + // number of elements + int GetCount() const; + BOOL IsEmpty() const; + + // Lookup + BOOL Lookup(void* key, WORD& rValue) const; + +// Operations + // Lookup and add if not there + WORD& operator[](void* key); + + // add a new (key, value) pair + void SetAt(void* key, WORD newValue); + + // removing existing (key, ?) pair + BOOL RemoveKey(void* key); + void RemoveAll(); + + // iterating all (key, value) pairs + POSITION GetStartPosition() const; + void GetNextAssoc(POSITION& rNextPosition, void*& rKey, WORD& rValue) const; + + // advanced features for derived classes + UINT GetHashTableSize() const; + void InitHashTable(UINT hashSize, BOOL bAllocNow = TRUE); + +// Overridables: special non-virtual (see map implementation for details) + // Routine used to user-provided hash keys + UINT HashKey(void* key) const; + +// Implementation +protected: + CAssoc** m_pHashTable; + UINT m_nHashTableSize; + int m_nCount; + CAssoc* m_pFreeList; + struct CPlex* m_pBlocks; + int m_nBlockSize; + + CAssoc* NewAssoc(); + void FreeAssoc(CAssoc*); + CAssoc* GetAssocAt(void*, UINT&) const; + +public: + ~CMapPtrToWord(); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + + +protected: + // local typedefs for CTypedPtrMap class template + typedef void* BASE_KEY; + typedef void* BASE_ARG_KEY; + typedef WORD BASE_VALUE; + typedef WORD BASE_ARG_VALUE; +}; + + +///////////////////////////////////////////////////////////////////////////// + +class CMapPtrToPtr : public CObject +{ + + DECLARE_DYNAMIC(CMapPtrToPtr) +protected: + // Association + struct CAssoc + { + CAssoc* pNext; + + void* key; + void* value; + }; + +public: + +// Construction + CMapPtrToPtr(int nBlockSize = 10); + +// Attributes + // number of elements + int GetCount() const; + BOOL IsEmpty() const; + + // Lookup + BOOL Lookup(void* key, void*& rValue) const; + +// Operations + // Lookup and add if not there + void*& operator[](void* key); + + // add a new (key, value) pair + void SetAt(void* key, void* newValue); + + // removing existing (key, ?) pair + BOOL RemoveKey(void* key); + void RemoveAll(); + + // iterating all (key, value) pairs + POSITION GetStartPosition() const; + void GetNextAssoc(POSITION& rNextPosition, void*& rKey, void*& rValue) const; + + // advanced features for derived classes + UINT GetHashTableSize() const; + void InitHashTable(UINT hashSize, BOOL bAllocNow = TRUE); + +// Overridables: special non-virtual (see map implementation for details) + // Routine used to user-provided hash keys + UINT HashKey(void* key) const; + +// Implementation +protected: + CAssoc** m_pHashTable; + UINT m_nHashTableSize; + int m_nCount; + CAssoc* m_pFreeList; + struct CPlex* m_pBlocks; + int m_nBlockSize; + + CAssoc* NewAssoc(); + void FreeAssoc(CAssoc*); + CAssoc* GetAssocAt(void*, UINT&) const; + +public: + ~CMapPtrToPtr(); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + + void* GetValueAt(void* key) const; + + +protected: + // local typedefs for CTypedPtrMap class template + typedef void* BASE_KEY; + typedef void* BASE_ARG_KEY; + typedef void* BASE_VALUE; + typedef void* BASE_ARG_VALUE; +}; + + +///////////////////////////////////////////////////////////////////////////// + +class CMapWordToOb : public CObject +{ + + DECLARE_SERIAL(CMapWordToOb) +protected: + // Association + struct CAssoc + { + CAssoc* pNext; + + WORD key; + CObject* value; + }; + +public: + +// Construction + CMapWordToOb(int nBlockSize = 10); + +// Attributes + // number of elements + int GetCount() const; + BOOL IsEmpty() const; + + // Lookup + BOOL Lookup(WORD key, CObject*& rValue) const; + +// Operations + // Lookup and add if not there + CObject*& operator[](WORD key); + + // add a new (key, value) pair + void SetAt(WORD key, CObject* newValue); + + // removing existing (key, ?) pair + BOOL RemoveKey(WORD key); + void RemoveAll(); + + // iterating all (key, value) pairs + POSITION GetStartPosition() const; + void GetNextAssoc(POSITION& rNextPosition, WORD& rKey, CObject*& rValue) const; + + // advanced features for derived classes + UINT GetHashTableSize() const; + void InitHashTable(UINT hashSize, BOOL bAllocNow = TRUE); + +// Overridables: special non-virtual (see map implementation for details) + // Routine used to user-provided hash keys + UINT HashKey(WORD key) const; + +// Implementation +protected: + CAssoc** m_pHashTable; + UINT m_nHashTableSize; + int m_nCount; + CAssoc* m_pFreeList; + struct CPlex* m_pBlocks; + int m_nBlockSize; + + CAssoc* NewAssoc(); + void FreeAssoc(CAssoc*); + CAssoc* GetAssocAt(WORD, UINT&) const; + +public: + ~CMapWordToOb(); + + void Serialize(CArchive&); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + + +protected: + // local typedefs for CTypedPtrMap class template + typedef WORD BASE_KEY; + typedef WORD BASE_ARG_KEY; + typedef CObject* BASE_VALUE; + typedef CObject* BASE_ARG_VALUE; +}; + + +///////////////////////////////////////////////////////////////////////////// + +class CMapStringToPtr : public CObject +{ + + DECLARE_DYNAMIC(CMapStringToPtr) +protected: + // Association + struct CAssoc + { + CAssoc* pNext; + UINT nHashValue; // needed for efficient iteration + CString key; + void* value; + }; + +public: + +// Construction + CMapStringToPtr(int nBlockSize = 10); + +// Attributes + // number of elements + int GetCount() const; + BOOL IsEmpty() const; + + // Lookup + BOOL Lookup(LPCTSTR key, void*& rValue) const; + BOOL LookupKey(LPCTSTR key, LPCTSTR& rKey) const; + +// Operations + // Lookup and add if not there + void*& operator[](LPCTSTR key); + + // add a new (key, value) pair + void SetAt(LPCTSTR key, void* newValue); + + // removing existing (key, ?) pair + BOOL RemoveKey(LPCTSTR key); + void RemoveAll(); + + // iterating all (key, value) pairs + POSITION GetStartPosition() const; + void GetNextAssoc(POSITION& rNextPosition, CString& rKey, void*& rValue) const; + + // advanced features for derived classes + UINT GetHashTableSize() const; + void InitHashTable(UINT hashSize, BOOL bAllocNow = TRUE); + +// Overridables: special non-virtual (see map implementation for details) + // Routine used to user-provided hash keys + UINT HashKey(LPCTSTR key) const; + +// Implementation +protected: + CAssoc** m_pHashTable; + UINT m_nHashTableSize; + int m_nCount; + CAssoc* m_pFreeList; + struct CPlex* m_pBlocks; + int m_nBlockSize; + + CAssoc* NewAssoc(); + void FreeAssoc(CAssoc*); + CAssoc* GetAssocAt(LPCTSTR, UINT&) const; + +public: + ~CMapStringToPtr(); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + +protected: + // local typedefs for CTypedPtrMap class template + typedef CString BASE_KEY; + typedef LPCTSTR BASE_ARG_KEY; + typedef void* BASE_VALUE; + typedef void* BASE_ARG_VALUE; +}; + + +///////////////////////////////////////////////////////////////////////////// + +class CMapStringToOb : public CObject +{ + + DECLARE_SERIAL(CMapStringToOb) +protected: + // Association + struct CAssoc + { + CAssoc* pNext; + UINT nHashValue; // needed for efficient iteration + CString key; + CObject* value; + }; + +public: + +// Construction + CMapStringToOb(int nBlockSize = 10); + +// Attributes + // number of elements + int GetCount() const; + BOOL IsEmpty() const; + + // Lookup + BOOL Lookup(LPCTSTR key, CObject*& rValue) const; + BOOL LookupKey(LPCTSTR key, LPCTSTR& rKey) const; + +// Operations + // Lookup and add if not there + CObject*& operator[](LPCTSTR key); + + // add a new (key, value) pair + void SetAt(LPCTSTR key, CObject* newValue); + + // removing existing (key, ?) pair + BOOL RemoveKey(LPCTSTR key); + void RemoveAll(); + + // iterating all (key, value) pairs + POSITION GetStartPosition() const; + void GetNextAssoc(POSITION& rNextPosition, CString& rKey, CObject*& rValue) const; + + // advanced features for derived classes + UINT GetHashTableSize() const; + void InitHashTable(UINT hashSize, BOOL bAllocNow = TRUE); + +// Overridables: special non-virtual (see map implementation for details) + // Routine used to user-provided hash keys + UINT HashKey(LPCTSTR key) const; + +// Implementation +protected: + CAssoc** m_pHashTable; + UINT m_nHashTableSize; + int m_nCount; + CAssoc* m_pFreeList; + struct CPlex* m_pBlocks; + int m_nBlockSize; + + CAssoc* NewAssoc(); + void FreeAssoc(CAssoc*); + CAssoc* GetAssocAt(LPCTSTR, UINT&) const; + +public: + ~CMapStringToOb(); + + void Serialize(CArchive&); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + +protected: + // local typedefs for CTypedPtrMap class template + typedef CString BASE_KEY; + typedef LPCTSTR BASE_ARG_KEY; + typedef CObject* BASE_VALUE; + typedef CObject* BASE_ARG_VALUE; +}; + + +///////////////////////////////////////////////////////////////////////////// + +class CMapStringToString : public CObject +{ + + DECLARE_SERIAL(CMapStringToString) +protected: + // Association + struct CAssoc + { + CAssoc* pNext; + UINT nHashValue; // needed for efficient iteration + CString key; + CString value; + }; + +public: + +// Construction + CMapStringToString(int nBlockSize = 10); + +// Attributes + // number of elements + int GetCount() const; + BOOL IsEmpty() const; + + // Lookup + BOOL Lookup(LPCTSTR key, CString& rValue) const; + BOOL LookupKey(LPCTSTR key, LPCTSTR& rKey) const; + +// Operations + // Lookup and add if not there + CString& operator[](LPCTSTR key); + + // add a new (key, value) pair + void SetAt(LPCTSTR key, LPCTSTR newValue); + + // removing existing (key, ?) pair + BOOL RemoveKey(LPCTSTR key); + void RemoveAll(); + + // iterating all (key, value) pairs + POSITION GetStartPosition() const; + void GetNextAssoc(POSITION& rNextPosition, CString& rKey, CString& rValue) const; + + // advanced features for derived classes + UINT GetHashTableSize() const; + void InitHashTable(UINT hashSize, BOOL bAllocNow = TRUE); + +// Overridables: special non-virtual (see map implementation for details) + // Routine used to user-provided hash keys + UINT HashKey(LPCTSTR key) const; + +// Implementation +protected: + CAssoc** m_pHashTable; + UINT m_nHashTableSize; + int m_nCount; + CAssoc* m_pFreeList; + struct CPlex* m_pBlocks; + int m_nBlockSize; + + CAssoc* NewAssoc(); + void FreeAssoc(CAssoc*); + CAssoc* GetAssocAt(LPCTSTR, UINT&) const; + +public: + ~CMapStringToString(); + + void Serialize(CArchive&); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif + +protected: + // local typedefs for CTypedPtrMap class template + typedef CString BASE_KEY; + typedef LPCTSTR BASE_ARG_KEY; + typedef CString BASE_VALUE; + typedef LPCTSTR BASE_ARG_VALUE; +}; + +///////////////////////////////////////////////////////////////////////////// +// Special include for Win32s compatibility +// +// 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. + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifndef __AFXSTATE_H__ + #include <afxstat_.h> // for MFC private state structures +#endif + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_ENABLE_INLINES +#define _AFXCOLL_INLINE inline +#include <afxcoll.inl> +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif //!__AFXCOLL_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxcoll.inl b/public/sdk/inc/mfc42/afxcoll.inl new file mode 100644 index 000000000..171167c9a --- /dev/null +++ b/public/sdk/inc/mfc42/afxcoll.inl @@ -0,0 +1,496 @@ +// 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. + +// Inlines for AFXCOLL.H + +#ifdef _AFXCOLL_INLINE + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CByteArray::GetSize() const + { return m_nSize; } +_AFXCOLL_INLINE int CByteArray::GetUpperBound() const + { return m_nSize-1; } +_AFXCOLL_INLINE void CByteArray::RemoveAll() + { SetSize(0); } +_AFXCOLL_INLINE BYTE CByteArray::GetAt(int nIndex) const + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE void CByteArray::SetAt(int nIndex, BYTE newElement) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + m_pData[nIndex] = newElement; } +_AFXCOLL_INLINE BYTE& CByteArray::ElementAt(int nIndex) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE const BYTE* CByteArray::GetData() const + { return (const BYTE*)m_pData; } +_AFXCOLL_INLINE BYTE* CByteArray::GetData() + { return (BYTE*)m_pData; } +_AFXCOLL_INLINE int CByteArray::Add(BYTE newElement) + { int nIndex = m_nSize; + SetAtGrow(nIndex, newElement); + return nIndex; } +_AFXCOLL_INLINE BYTE CByteArray::operator[](int nIndex) const + { return GetAt(nIndex); } +_AFXCOLL_INLINE BYTE& CByteArray::operator[](int nIndex) + { return ElementAt(nIndex); } + + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CWordArray::GetSize() const + { return m_nSize; } +_AFXCOLL_INLINE int CWordArray::GetUpperBound() const + { return m_nSize-1; } +_AFXCOLL_INLINE void CWordArray::RemoveAll() + { SetSize(0); } +_AFXCOLL_INLINE WORD CWordArray::GetAt(int nIndex) const + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE void CWordArray::SetAt(int nIndex, WORD newElement) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + m_pData[nIndex] = newElement; } +_AFXCOLL_INLINE WORD& CWordArray::ElementAt(int nIndex) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE const WORD* CWordArray::GetData() const + { return (const WORD*)m_pData; } +_AFXCOLL_INLINE WORD* CWordArray::GetData() + { return (WORD*)m_pData; } +_AFXCOLL_INLINE int CWordArray::Add(WORD newElement) + { int nIndex = m_nSize; + SetAtGrow(nIndex, newElement); + return nIndex; } +_AFXCOLL_INLINE WORD CWordArray::operator[](int nIndex) const + { return GetAt(nIndex); } +_AFXCOLL_INLINE WORD& CWordArray::operator[](int nIndex) + { return ElementAt(nIndex); } + + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CDWordArray::GetSize() const + { return m_nSize; } +_AFXCOLL_INLINE int CDWordArray::GetUpperBound() const + { return m_nSize-1; } +_AFXCOLL_INLINE void CDWordArray::RemoveAll() + { SetSize(0); } +_AFXCOLL_INLINE DWORD CDWordArray::GetAt(int nIndex) const + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE void CDWordArray::SetAt(int nIndex, DWORD newElement) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + m_pData[nIndex] = newElement; } +_AFXCOLL_INLINE DWORD& CDWordArray::ElementAt(int nIndex) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE const DWORD* CDWordArray::GetData() const + { return (const DWORD*)m_pData; } +_AFXCOLL_INLINE DWORD* CDWordArray::GetData() + { return (DWORD*)m_pData; } +_AFXCOLL_INLINE int CDWordArray::Add(DWORD newElement) + { int nIndex = m_nSize; + SetAtGrow(nIndex, newElement); + return nIndex; } +_AFXCOLL_INLINE DWORD CDWordArray::operator[](int nIndex) const + { return GetAt(nIndex); } +_AFXCOLL_INLINE DWORD& CDWordArray::operator[](int nIndex) + { return ElementAt(nIndex); } + + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CUIntArray::GetSize() const + { return m_nSize; } +_AFXCOLL_INLINE int CUIntArray::GetUpperBound() const + { return m_nSize-1; } +_AFXCOLL_INLINE void CUIntArray::RemoveAll() + { SetSize(0); } +_AFXCOLL_INLINE UINT CUIntArray::GetAt(int nIndex) const + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE void CUIntArray::SetAt(int nIndex, UINT newElement) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + m_pData[nIndex] = newElement; } +_AFXCOLL_INLINE UINT& CUIntArray::ElementAt(int nIndex) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE const UINT* CUIntArray::GetData() const + { return (const UINT*)m_pData; } +_AFXCOLL_INLINE UINT* CUIntArray::GetData() + { return (UINT*)m_pData; } +_AFXCOLL_INLINE int CUIntArray::Add(UINT newElement) + { int nIndex = m_nSize; + SetAtGrow(nIndex, newElement); + return nIndex; } +_AFXCOLL_INLINE UINT CUIntArray::operator[](int nIndex) const + { return GetAt(nIndex); } +_AFXCOLL_INLINE UINT& CUIntArray::operator[](int nIndex) + { return ElementAt(nIndex); } + + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CPtrArray::GetSize() const + { return m_nSize; } +_AFXCOLL_INLINE int CPtrArray::GetUpperBound() const + { return m_nSize-1; } +_AFXCOLL_INLINE void CPtrArray::RemoveAll() + { SetSize(0); } +_AFXCOLL_INLINE void* CPtrArray::GetAt(int nIndex) const + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE void CPtrArray::SetAt(int nIndex, void* newElement) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + m_pData[nIndex] = newElement; } +_AFXCOLL_INLINE void*& CPtrArray::ElementAt(int nIndex) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE const void** CPtrArray::GetData() const + { return (const void**)m_pData; } +_AFXCOLL_INLINE void** CPtrArray::GetData() + { return (void**)m_pData; } +_AFXCOLL_INLINE int CPtrArray::Add(void* newElement) + { int nIndex = m_nSize; + SetAtGrow(nIndex, newElement); + return nIndex; } +_AFXCOLL_INLINE void* CPtrArray::operator[](int nIndex) const + { return GetAt(nIndex); } +_AFXCOLL_INLINE void*& CPtrArray::operator[](int nIndex) + { return ElementAt(nIndex); } + + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CObArray::GetSize() const + { return m_nSize; } +_AFXCOLL_INLINE int CObArray::GetUpperBound() const + { return m_nSize-1; } +_AFXCOLL_INLINE void CObArray::RemoveAll() + { SetSize(0); } +_AFXCOLL_INLINE CObject* CObArray::GetAt(int nIndex) const + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE void CObArray::SetAt(int nIndex, CObject* newElement) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + m_pData[nIndex] = newElement; } +_AFXCOLL_INLINE CObject*& CObArray::ElementAt(int nIndex) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE const CObject** CObArray::GetData() const + { return (const CObject**)m_pData; } +_AFXCOLL_INLINE CObject** CObArray::GetData() + { return (CObject**)m_pData; } +_AFXCOLL_INLINE int CObArray::Add(CObject* newElement) + { int nIndex = m_nSize; + SetAtGrow(nIndex, newElement); + return nIndex; } +_AFXCOLL_INLINE CObject* CObArray::operator[](int nIndex) const + { return GetAt(nIndex); } +_AFXCOLL_INLINE CObject*& CObArray::operator[](int nIndex) + { return ElementAt(nIndex); } + + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CStringArray::GetSize() const + { return m_nSize; } +_AFXCOLL_INLINE int CStringArray::GetUpperBound() const + { return m_nSize-1; } +_AFXCOLL_INLINE void CStringArray::RemoveAll() + { SetSize(0); } +_AFXCOLL_INLINE CString CStringArray::GetAt(int nIndex) const + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE void CStringArray::SetAt(int nIndex, LPCTSTR newElement) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + m_pData[nIndex] = newElement; } +_AFXCOLL_INLINE CString& CStringArray::ElementAt(int nIndex) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +_AFXCOLL_INLINE const CString* CStringArray::GetData() const + { return (const CString*)m_pData; } +_AFXCOLL_INLINE CString* CStringArray::GetData() + { return (CString*)m_pData; } +_AFXCOLL_INLINE int CStringArray::Add(LPCTSTR newElement) + { int nIndex = m_nSize; + SetAtGrow(nIndex, newElement); + return nIndex; } +_AFXCOLL_INLINE CString CStringArray::operator[](int nIndex) const + { return GetAt(nIndex); } +_AFXCOLL_INLINE CString& CStringArray::operator[](int nIndex) + { return ElementAt(nIndex); } + + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CPtrList::GetCount() const + { return m_nCount; } +_AFXCOLL_INLINE BOOL CPtrList::IsEmpty() const + { return m_nCount == 0; } +_AFXCOLL_INLINE void*& CPtrList::GetHead() + { ASSERT(m_pNodeHead != NULL); + return m_pNodeHead->data; } +_AFXCOLL_INLINE void* CPtrList::GetHead() const + { ASSERT(m_pNodeHead != NULL); + return m_pNodeHead->data; } +_AFXCOLL_INLINE void*& CPtrList::GetTail() + { ASSERT(m_pNodeTail != NULL); + return m_pNodeTail->data; } +_AFXCOLL_INLINE void* CPtrList::GetTail() const + { ASSERT(m_pNodeTail != NULL); + return m_pNodeTail->data; } +_AFXCOLL_INLINE POSITION CPtrList::GetHeadPosition() const + { return (POSITION) m_pNodeHead; } +_AFXCOLL_INLINE POSITION CPtrList::GetTailPosition() const + { return (POSITION) m_pNodeTail; } +_AFXCOLL_INLINE void*& CPtrList::GetNext(POSITION& rPosition) // return *Position++ + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pNext; + return pNode->data; } +_AFXCOLL_INLINE void* CPtrList::GetNext(POSITION& rPosition) const // return *Position++ + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pNext; + return pNode->data; } +_AFXCOLL_INLINE void*& CPtrList::GetPrev(POSITION& rPosition) // return *Position-- + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pPrev; + return pNode->data; } +_AFXCOLL_INLINE void* CPtrList::GetPrev(POSITION& rPosition) const // return *Position-- + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pPrev; + return pNode->data; } +_AFXCOLL_INLINE void*& CPtrList::GetAt(POSITION position) + { CNode* pNode = (CNode*) position; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + return pNode->data; } +_AFXCOLL_INLINE void* CPtrList::GetAt(POSITION position) const + { CNode* pNode = (CNode*) position; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + return pNode->data; } +_AFXCOLL_INLINE void CPtrList::SetAt(POSITION pos, void* newElement) + { CNode* pNode = (CNode*) pos; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + pNode->data = newElement; } + + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CObList::GetCount() const + { return m_nCount; } +_AFXCOLL_INLINE BOOL CObList::IsEmpty() const + { return m_nCount == 0; } +_AFXCOLL_INLINE CObject*& CObList::GetHead() + { ASSERT(m_pNodeHead != NULL); + return m_pNodeHead->data; } +_AFXCOLL_INLINE CObject* CObList::GetHead() const + { ASSERT(m_pNodeHead != NULL); + return m_pNodeHead->data; } +_AFXCOLL_INLINE CObject*& CObList::GetTail() + { ASSERT(m_pNodeTail != NULL); + return m_pNodeTail->data; } +_AFXCOLL_INLINE CObject* CObList::GetTail() const + { ASSERT(m_pNodeTail != NULL); + return m_pNodeTail->data; } +_AFXCOLL_INLINE POSITION CObList::GetHeadPosition() const + { return (POSITION) m_pNodeHead; } +_AFXCOLL_INLINE POSITION CObList::GetTailPosition() const + { return (POSITION) m_pNodeTail; } +_AFXCOLL_INLINE CObject*& CObList::GetNext(POSITION& rPosition) // return *Position++ + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pNext; + return pNode->data; } +_AFXCOLL_INLINE CObject* CObList::GetNext(POSITION& rPosition) const // return *Position++ + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pNext; + return pNode->data; } +_AFXCOLL_INLINE CObject*& CObList::GetPrev(POSITION& rPosition) // return *Position-- + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pPrev; + return pNode->data; } +_AFXCOLL_INLINE CObject* CObList::GetPrev(POSITION& rPosition) const // return *Position-- + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pPrev; + return pNode->data; } +_AFXCOLL_INLINE CObject*& CObList::GetAt(POSITION position) + { CNode* pNode = (CNode*) position; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + return pNode->data; } +_AFXCOLL_INLINE CObject* CObList::GetAt(POSITION position) const + { CNode* pNode = (CNode*) position; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + return pNode->data; } +_AFXCOLL_INLINE void CObList::SetAt(POSITION pos, CObject* newElement) + { CNode* pNode = (CNode*) pos; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + pNode->data = newElement; } + + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CStringList::GetCount() const + { return m_nCount; } +_AFXCOLL_INLINE BOOL CStringList::IsEmpty() const + { return m_nCount == 0; } +_AFXCOLL_INLINE CString& CStringList::GetHead() + { ASSERT(m_pNodeHead != NULL); + return m_pNodeHead->data; } +_AFXCOLL_INLINE CString CStringList::GetHead() const + { ASSERT(m_pNodeHead != NULL); + return m_pNodeHead->data; } +_AFXCOLL_INLINE CString& CStringList::GetTail() + { ASSERT(m_pNodeTail != NULL); + return m_pNodeTail->data; } +_AFXCOLL_INLINE CString CStringList::GetTail() const + { ASSERT(m_pNodeTail != NULL); + return m_pNodeTail->data; } +_AFXCOLL_INLINE POSITION CStringList::GetHeadPosition() const + { return (POSITION) m_pNodeHead; } +_AFXCOLL_INLINE POSITION CStringList::GetTailPosition() const + { return (POSITION) m_pNodeTail; } +_AFXCOLL_INLINE CString& CStringList::GetNext(POSITION& rPosition) // return *Position++ + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pNext; + return pNode->data; } +_AFXCOLL_INLINE CString CStringList::GetNext(POSITION& rPosition) const // return *Position++ + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pNext; + return pNode->data; } +_AFXCOLL_INLINE CString& CStringList::GetPrev(POSITION& rPosition) // return *Position-- + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pPrev; + return pNode->data; } +_AFXCOLL_INLINE CString CStringList::GetPrev(POSITION& rPosition) const // return *Position-- + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pPrev; + return pNode->data; } +_AFXCOLL_INLINE CString& CStringList::GetAt(POSITION position) + { CNode* pNode = (CNode*) position; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + return pNode->data; } +_AFXCOLL_INLINE CString CStringList::GetAt(POSITION position) const + { CNode* pNode = (CNode*) position; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + return pNode->data; } +_AFXCOLL_INLINE void CStringList::SetAt(POSITION pos, LPCTSTR newElement) + { CNode* pNode = (CNode*) pos; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + pNode->data = newElement; } + + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CMapWordToPtr::GetCount() const + { return m_nCount; } +_AFXCOLL_INLINE BOOL CMapWordToPtr::IsEmpty() const + { return m_nCount == 0; } +_AFXCOLL_INLINE void CMapWordToPtr::SetAt(WORD key, void* newValue) + { (*this)[key] = newValue; } +_AFXCOLL_INLINE POSITION CMapWordToPtr::GetStartPosition() const + { return (m_nCount == 0) ? NULL : BEFORE_START_POSITION; } +_AFXCOLL_INLINE UINT CMapWordToPtr::GetHashTableSize() const + { return m_nHashTableSize; } + + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CMapPtrToWord::GetCount() const + { return m_nCount; } +_AFXCOLL_INLINE BOOL CMapPtrToWord::IsEmpty() const + { return m_nCount == 0; } +_AFXCOLL_INLINE void CMapPtrToWord::SetAt(void* key, WORD newValue) + { (*this)[key] = newValue; } +_AFXCOLL_INLINE POSITION CMapPtrToWord::GetStartPosition() const + { return (m_nCount == 0) ? NULL : BEFORE_START_POSITION; } +_AFXCOLL_INLINE UINT CMapPtrToWord::GetHashTableSize() const + { return m_nHashTableSize; } + + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CMapPtrToPtr::GetCount() const + { return m_nCount; } +_AFXCOLL_INLINE BOOL CMapPtrToPtr::IsEmpty() const + { return m_nCount == 0; } +_AFXCOLL_INLINE void CMapPtrToPtr::SetAt(void* key, void* newValue) + { (*this)[key] = newValue; } +_AFXCOLL_INLINE POSITION CMapPtrToPtr::GetStartPosition() const + { return (m_nCount == 0) ? NULL : BEFORE_START_POSITION; } +_AFXCOLL_INLINE UINT CMapPtrToPtr::GetHashTableSize() const + { return m_nHashTableSize; } + + +//////////////////////////////////////////////////////////////////////////// + +_AFXCOLL_INLINE int CMapWordToOb::GetCount() const + { return m_nCount; } +_AFXCOLL_INLINE BOOL CMapWordToOb::IsEmpty() const + { return m_nCount == 0; } +_AFXCOLL_INLINE void CMapWordToOb::SetAt(WORD key, CObject* newValue) + { (*this)[key] = newValue; } +_AFXCOLL_INLINE POSITION CMapWordToOb::GetStartPosition() const + { return (m_nCount == 0) ? NULL : BEFORE_START_POSITION; } +_AFXCOLL_INLINE UINT CMapWordToOb::GetHashTableSize() const + { return m_nHashTableSize; } + + +//////////////////////////////////////////////////////////////////////////// +_AFXCOLL_INLINE int CMapStringToPtr::GetCount() const + { return m_nCount; } +_AFXCOLL_INLINE BOOL CMapStringToPtr::IsEmpty() const + { return m_nCount == 0; } +_AFXCOLL_INLINE void CMapStringToPtr::SetAt(LPCTSTR key, void* newValue) + { (*this)[key] = newValue; } +_AFXCOLL_INLINE POSITION CMapStringToPtr::GetStartPosition() const + { return (m_nCount == 0) ? NULL : BEFORE_START_POSITION; } +_AFXCOLL_INLINE UINT CMapStringToPtr::GetHashTableSize() const + { return m_nHashTableSize; } + + +//////////////////////////////////////////////////////////////////////////// +_AFXCOLL_INLINE int CMapStringToOb::GetCount() const + { return m_nCount; } +_AFXCOLL_INLINE BOOL CMapStringToOb::IsEmpty() const + { return m_nCount == 0; } +_AFXCOLL_INLINE void CMapStringToOb::SetAt(LPCTSTR key, CObject* newValue) + { (*this)[key] = newValue; } +_AFXCOLL_INLINE POSITION CMapStringToOb::GetStartPosition() const + { return (m_nCount == 0) ? NULL : BEFORE_START_POSITION; } +_AFXCOLL_INLINE UINT CMapStringToOb::GetHashTableSize() const + { return m_nHashTableSize; } + + +//////////////////////////////////////////////////////////////////////////// +_AFXCOLL_INLINE int CMapStringToString::GetCount() const + { return m_nCount; } +_AFXCOLL_INLINE BOOL CMapStringToString::IsEmpty() const + { return m_nCount == 0; } +_AFXCOLL_INLINE void CMapStringToString::SetAt(LPCTSTR key, LPCTSTR newValue) + { (*this)[key] = newValue; } +_AFXCOLL_INLINE POSITION CMapStringToString::GetStartPosition() const + { return (m_nCount == 0) ? NULL : BEFORE_START_POSITION; } +_AFXCOLL_INLINE UINT CMapStringToString::GetHashTableSize() const + { return m_nHashTableSize; } + +///////////////////////////////////////////////////////////////////////////// + +#endif //_AFXCOLL_INLINE diff --git a/public/sdk/inc/mfc42/afxcom_.h b/public/sdk/inc/mfc42/afxcom_.h new file mode 100644 index 000000000..26de5fd26 --- /dev/null +++ b/public/sdk/inc/mfc42/afxcom_.h @@ -0,0 +1,463 @@ +// 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. + +///////////////////////////////////////////////////////////////////////////// +// AFXCOM_.H +// +// THIS FILE IS FOR MFC IMPLEMENTATION ONLY. + +#ifndef __AFXCOM_H__ +#define __AFXCOM_H__ + +#ifndef _OBJBASE_H_ +#include <objbase.h> +#endif + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +///////////////////////////////////////////////////////////////////////////// + +#ifndef _AFX_NOFORCE_LIBS +#pragma comment(lib, "uuid.lib") +#endif + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +#ifndef ASSERT +#ifndef _INC_CRTDBG +#include <crtdbg.h> +#endif // _INC_CRTDBG +#define ASSERT(x) _ASSERT(x) +#endif // ASSERT + +///////////////////////////////////////////////////////////////////////////// + +template<class _Interface, const IID* _IID> +class _CIP +{ +public: + // Declare interface type so that the type may be available outside + // the scope of this template. + typedef _Interface Interface; + + // When the compiler supports references in template params, + // _CLSID will be changed to a reference. To avoid conversion + // difficulties this function should be used to obtain the + // CLSID. + static const IID& GetIID() + { ASSERT(_IID != NULL); return *_IID; } + + // Construct empty in preperation for assignment. + _CIP() : _pInterface(NULL) { } + + // Copy the pointer and AddRef(). + _CIP(const _CIP& cp) : _pInterface(cp._pInterface) + { _AddRef(); } + + // Saves and AddRef()'s the interface + _CIP(Interface* pInterface) : _pInterface(pInterface) + { _AddRef(); } + + // Copies the pointer. If bAddRef is TRUE, the interface will + // be AddRef()ed. + _CIP(Interface* pInterface, BOOL bAddRef) + : _pInterface(pInterface) + { + if (bAddRef) + { + ASSERT(pInterface != NULL); + _AddRef(); + } + } + + // Calls CoCreateClass with the provided CLSID. + _CIP(const CLSID& clsid, DWORD dwClsContext = CLSCTX_INPROC_SERVER) + : _pInterface(NULL) + { + HRESULT hr = CreateObject(clsid, dwClsContext); + ASSERT(SUCCEEDED(hr)); + } + + // Calls CoCreateClass with the provided CLSID retrieved from + // the string. + _CIP(LPOLESTR str, DWORD dwClsContext = CLSCTX_INPROC_SERVER) + : _pInterface(NULL) + { + HRESULT hr = CreateObject(str, dwClsContext); + ASSERT(SUCCEEDED(hr)); + } + + // Saves and AddRef()s the interface. + _CIP& operator=(Interface* pInterface) + { + if (_pInterface != pInterface) + { + Interface* pOldInterface = _pInterface; + _pInterface = pInterface; + _AddRef(); + if (pOldInterface != NULL) + pOldInterface->Release(); + } + return *this; + } + + // Copies and AddRef()'s the interface. + _CIP& operator=(const _CIP& cp) + { return operator=(cp._pInterface); } + + // Releases any current interface and loads the class with the + // provided CLSID. + _CIP& operator=(const CLSID& clsid) + { + HRESULT hr = CreateObject(clsid); + ASSERT(SUCCEEDED(hr)); + return *this; + } + + // Calls CoCreateClass with the provided CLSID retrieved from + // the string. + _CIP& operator=(LPOLESTR str) + { + HRESULT hr = CreateObject(str); + ASSERT(SUCCEEDED(hr)); + return *this; + } + + // If we still have an interface then Release() it. The interface + // may be NULL if Detach() has previosly been called, or if it was + // never set. + ~_CIP() + { _Release(); } + + // Saves/sets the interface without AddRef()ing. This call + // will release any previously aquired interface. + void Attach(Interface* pInterface) + { + _Release(); + _pInterface = pInterface; + } + + // Saves/sets the interface only AddRef()ing if bAddRef is TRUE. + // This call will release any previously aquired interface. + void Attach(Interface* pInterface, BOOL bAddRef) + { + _Release(); + _pInterface = pInterface; + if (bAddRef) + { + ASSERT(pInterface != NULL); + pInterface->AddRef(); + } + } + + // Simply NULL the interface pointer so that it isn't Released()'ed. + void Detach() + { + ASSERT(_pInterface); + _pInterface = NULL; + } + + // Return the interface. This value may be NULL + operator Interface*() const + { return _pInterface; } + + // Queries for the unknown and return it + operator IUnknown*() + { return _pInterface; } + + // Provides minimal level assertion before use. + operator Interface&() const + { ASSERT(_pInterface); return *_pInterface; } + + // Allows an instance of this class to act as though it were the + // actual interface. Also provides minimal assertion verification. + Interface& operator*() const + { ASSERT(_pInterface); return *_pInterface; } + + // Returns the address of the interface pointer contained in this + // class. This is useful when using the COM/OLE interfaces to create + // this interface. + Interface** operator&() + { + _Release(); + _pInterface = NULL; + return &_pInterface; + } + + // Allows this class to be used as the interface itself. + // Also provides simple assertion verification. + Interface* operator->() const + { ASSERT(_pInterface != NULL); return _pInterface; } + + // This operator is provided so that simple boolean expressions will + // work. For example: "if (p) ...". + // Returns TRUE if the pointer is not NULL. + operator BOOL() const + { return _pInterface != NULL; } + + // Returns TRUE if the interface is NULL. + // This operator will be removed when support for type bool + // is added to the compiler. + BOOL operator!() + { return _pInterface == NULL; } + + // Provides assertion verified, Release()ing of this interface. + void Release() + { + ASSERT(_pInterface != NULL); + _pInterface->Release(); + _pInterface = NULL; + } + + // Provides assertion verified AddRef()ing of this interface. + void AddRef() + { ASSERT(_pInterface != NULL); _pInterface->AddRef(); } + + // Another way to get the interface pointer without casting. + Interface* GetInterfacePtr() const + { return _pInterface; } + + // Loads an interface for the provided CLSID. + // Returns an HRESULT. Any previous interface is released. + HRESULT CreateObject( + const CLSID& clsid, DWORD dwClsContext=CLSCTX_INPROC_SERVER) + { + _Release(); + HRESULT hr = CoCreateInstance(clsid, NULL, dwClsContext, + GetIID(), reinterpret_cast<void**>(&_pInterface)); + ASSERT(SUCCEEDED(hr)); + return hr; + } + + // Creates the class specified by clsidString. clsidString may + // contain a class id, or a prog id string. + HRESULT CreateObject( + LPOLESTR clsidString, DWORD dwClsContext=CLSCTX_INPROC_SERVER) + { + ASSERT(clsidString != NULL); + CLSID clsid; + HRESULT hr; + if (clsidString[0] == '{') + hr = CLSIDFromString(clsidString, &clsid); + else + hr = CLSIDFromProgID(clsidString, &clsid); + ASSERT(SUCCEEDED(hr)); + if (FAILED(hr)) + return hr; + return CreateObject(clsid, dwClsContext); + } + + // Performs a QI on pUnknown for the interface type returned + // for this class. The interface is stored. If pUnknown is + // NULL, or the QI fails, E_NOINTERFACE is returned and + // _pInterface is set to NULL. + HRESULT QueryInterface(IUnknown* pUnknown) + { + if (pUnknown == NULL) // Can't QI NULL + { + operator=(static_cast<Interface*>(NULL)); + return E_NOINTERFACE; + } + + // Query for this interface + Interface* pInterface; + HRESULT hr = pUnknown->QueryInterface(GetIID(), + reinterpret_cast<void**>(&pInterface)); + if (FAILED(hr)) + { + // If failed intialize interface to NULL and return HRESULT. + Attach(NULL); + return hr; + } + + // Save the interface without AddRef()ing. + Attach(pInterface); + return hr; + } + +private: + // Releases only if the interface is not null. + // The interface is not set to NULL. + void _Release() + { + if (_pInterface != NULL) + _pInterface->Release(); + } + + // AddRefs only if the interface is not NULL + void _AddRef() + { + if (_pInterface != NULL) + _pInterface->AddRef(); + } + + // The Interface. + Interface* _pInterface; +}; // class _CIP + +template<class _Interface, const IID* _IID> +class CIP : public _CIP<_Interface, _IID> +{ +public: + // Simplified name for base class and provide derived classes + // access to base type + typedef _CIP<_Interface, _IID> BC; + + // Provideds derived classes access to the interface type. + typedef _Interface Interface; + + // Construct empty in preperation for assignment. + CIP() { } + + // Copy the pointer and AddRef(). + CIP(const CIP& cp) : _CIP<_Interface, _IID>(cp) { } + + // Saves and AddRef()s the interface. + CIP(Interface* pInterface) : _CIP<_Interface, _IID>(pInterface) { } + + // Saves the interface and AddRef()s only if bAddRef is TRUE. + CIP(Interface* pInterface, BOOL bAddRef) + : _CIP<_Interface, _IID>(pInterface, bAddRef) { } + + // Queries for this interface. + CIP(IUnknown* pUnknown) + { + if (pUnknown == NULL) + return; + Interface* pInterface; + HRESULT hr = pUnknown->QueryInterface(GetIID(), + reinterpret_cast<void**>(&pInterface)); + ASSERT(SUCCEEDED(hr)); + Attach(pInterface); + } + + // Creates the interface from the CLSID. + CIP(const CLSID& clsid) : _CIP<_Interface, _IID>(clsid) { } + + // Creates the interface from the CLSID. + CIP(LPOLESTR str) : _CIP<_Interface, _IID>(str) { } + + // Copies and AddRef()'s the interface. + CIP& operator=(const CIP& cp) + { _CIP<_Interface, _IID>::operator=(cp); return *this; } + + // Saves and AddRef()s the interface. + CIP& operator=(Interface* pInterface) + { _CIP<_Interface, _IID>::operator=(pInterface); return *this; } + + CIP& operator=(IUnknown* pUnknown) + { + HRESULT hr = QueryInterface(pUnknown); + ASSERT(SUCCEEDED(hr)); + return *this; + } + + // Releases any current interface and loads the class with the + // provided CLSID. + CIP& operator=(const CLSID& clsid) + { _CIP<_Interface, _IID>::operator=(clsid); return *this; } + + // Releases any current interface and loads the class with the + // provided CLSID. + CIP& operator=(LPOLESTR str) + { _CIP<_Interface, _IID>::operator=(str); return *this; } +}; // class CIP + +class CIP<IUnknown, &IID_IUnknown> : public _CIP<IUnknown, &IID_IUnknown> +{ +public: + // Simplified name for base class and provide derived classes + // access to base type + typedef _CIP<IUnknown, &IID_IUnknown> BC; + + // Provideds derived classes access to the interface type. + typedef IUnknown Interface; + + // Construct empty in preperation for assignment. + CIP() { } + + // Copy the pointer and AddRef(). + CIP(const CIP& cp) : _CIP<IUnknown, &IID_IUnknown>(cp) { } + + // Saves and AddRef()s the interface. + CIP(Interface* pInterface) + : _CIP<IUnknown, &IID_IUnknown>(pInterface) { } + + // Saves and then AddRef()s only if bAddRef is TRUE. + CIP(Interface* pInterface, BOOL bAddRef) + : _CIP<IUnknown, &IID_IUnknown>(pInterface, bAddRef) { } + + // Creates the interface from the CLSID. + CIP(const CLSID& clsid) : _CIP<IUnknown, &IID_IUnknown>(clsid) { } + + // Creates the interface from the CLSID. + CIP(LPOLESTR str) : _CIP<IUnknown, &IID_IUnknown>(str) { } + + // Copies and AddRef()'s the interface. + CIP& operator=(const CIP& cp) + { _CIP<IUnknown, &IID_IUnknown>::operator=(cp); return *this; } + + // Saves and AddRef()s the interface. The previously saved + // interface is released. + CIP& operator=(Interface* pInterface) + { _CIP<IUnknown, &IID_IUnknown>::operator=(pInterface); return *this; } + + // Releases any current interface and loads the class with the + // provided CLSID. + CIP& operator=(const CLSID& clsid) + { _CIP<IUnknown, &IID_IUnknown>::operator=(clsid); return *this; } + + // Releases any current interface and loads the class with the + // provided CLSID. + CIP& operator=(LPOLESTR str) + { _CIP<IUnknown, &IID_IUnknown>::operator=(str); return *this; } + + // Queries for the unknown and return it + operator IUnknown*() + { return GetInterfacePtr(); } + + // Verifies that pUnknown is not null and performs assignment. + HRESULT QueryInterface(IUnknown* pUnknown) + { + _CIP<IUnknown, &IID_IUnknown>::operator=(pUnknown); + return pUnknown != NULL ? S_OK : E_NOINTERFACE; + } +}; // CIP<IUnknown, &IID_IUnknown> + +#define IPTR(x) CIP<x, &IID_##x> +#define DEFINE_IPTR(x) typedef IPTR(x) x##Ptr; + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif // __AFXCOM_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxconv.h b/public/sdk/inc/mfc42/afxconv.h new file mode 100644 index 000000000..a401555d4 --- /dev/null +++ b/public/sdk/inc/mfc42/afxconv.h @@ -0,0 +1,148 @@ +#ifndef __AFXCONV_H__ +#define __AFXCONV_H__ + +#ifndef _OBJBASE_H_ +#include <objbase.h> +#endif + +///////////////////////////////////////////////////////////////////////////// +// Global UNICODE<>ANSI translation helpers + +LPWSTR AFXAPI AfxA2WHelper(LPWSTR lpw, LPCSTR lpa, int nChars); +LPSTR AFXAPI AfxW2AHelper(LPSTR lpa, LPCWSTR lpw, int nChars); + +#define A2CW(lpa) (\ + ((LPCSTR)lpa == NULL) ? NULL : (\ + _convert = (lstrlenA(lpa)+1),\ + (LPCWSTR)AfxA2WHelper((LPWSTR) alloca(_convert*2), lpa, _convert)\ + )\ +) + +#define A2W(lpa) (\ + ((LPCSTR)lpa == NULL) ? NULL : (\ + _convert = (lstrlenA(lpa)+1),\ + AfxA2WHelper((LPWSTR) alloca(_convert*2), lpa, _convert)\ + )\ +) + +#define W2CA(lpw) (\ + ((LPCWSTR)lpw == NULL) ? NULL : (\ + _convert = (wcslen(lpw)+1)*2,\ + (LPCSTR)AfxW2AHelper((LPSTR) alloca(_convert), lpw, _convert)\ + )\ +) + +#define W2A(lpw) (\ + ((LPCWSTR)lpw == NULL) ? NULL : (\ + _convert = (wcslen(lpw)+1)*2,\ + AfxW2AHelper((LPSTR) alloca(_convert), lpw, _convert)\ + )\ +) + +#ifndef _DEBUG +#define USES_CONVERSION int _convert; _convert +#else +#define USES_CONVERSION int _convert = 0; +#endif + +#ifdef _UNICODE + #define T2A W2A + #define T2CA W2CA + #define A2T A2W + #define A2CT A2CW + inline LPWSTR T2W(LPTSTR lp) { return lp; } + inline LPCWSTR T2CW(LPCTSTR lp) { return lp; } + inline LPTSTR W2T(LPWSTR lp) { return lp; } + inline LPCTSTR W2CT(LPCWSTR lp) { return lp; } +#else + #define T2W A2W + #define T2CW A2CW + #define W2T W2A + #define W2CT W2CA + inline LPSTR T2A(LPTSTR lp) { return lp; } + inline LPCSTR T2CA(LPCTSTR lp) { return lp; } + inline LPTSTR A2T(LPSTR lp) { return lp; } + inline LPCTSTR A2CT(LPCSTR lp) { return lp; } +#endif + +#define OLESTDDELIMOLE OLESTR("\\") + +#if defined(_UNICODE) +// in these cases the default (TCHAR) is the same as OLECHAR + #define DEVMODEOLE DEVMODEW + #define LPDEVMODEOLE LPDEVMODEW + #define TEXTMETRICOLE TEXTMETRICW + #define LPTEXTMETRICOLE LPTEXTMETRICW + inline size_t ocslen(LPCOLESTR x) { return wcslen(x); } + inline OLECHAR* ocscpy(LPOLESTR dest, LPCOLESTR src) { return wcscpy(dest, src); } + inline LPCOLESTR T2COLE(LPCTSTR lp) { return lp; } + inline LPCTSTR OLE2CT(LPCOLESTR lp) { return lp; } + inline LPOLESTR T2OLE(LPTSTR lp) { return lp; } + inline LPTSTR OLE2T(LPOLESTR lp) { return lp; } + inline LPOLESTR TASKSTRINGT2OLE(LPOLESTR lp) { return lp; } + inline LPTSTR TASKSTRINGOLE2T(LPOLESTR lp) { return lp; } + inline LPDEVMODEW DEVMODEOLE2T(LPDEVMODEOLE lp) { return lp; } + inline LPDEVMODEOLE DEVMODET2OLE(LPDEVMODEW lp) { return lp; } + inline LPTEXTMETRICW TEXTMETRICOLE2T(LPTEXTMETRICOLE lp) { return lp; } + inline LPTEXTMETRICOLE TEXTMETRICT2OLE(LPTEXTMETRICW lp) { return lp; } + inline BSTR BSTR2TBSTR(BSTR bstr) { return bstr;} +#elif defined(OLE2ANSI) +// in these cases the default (TCHAR) is the same as OLECHAR + #define DEVMODEOLE DEVMODEA + #define LPDEVMODEOLE LPDEVMODEA + #define TEXTMETRICOLE TEXTMETRICA + #define LPTEXTMETRICOLE LPTEXTMETRICA + inline size_t ocslen(LPCOLESTR x) { return lstrlenA(x); } + inline OLECHAR* ocscpy(LPOLESTR dest, LPCOLESTR src) { return lstrcpyA(dest, src); } + inline LPCOLESTR T2COLE(LPCTSTR lp) { return lp; } + inline LPCTSTR OLE2CT(LPCOLESTR lp) { return lp; } + inline LPOLESTR T2OLE(LPTSTR lp) { return lp; } + inline LPTSTR OLE2T(LPOLESTR lp) { return lp; } + inline LPOLESTR TASKSTRINGT2OLE(LPOLESTR lp) { return lp; } + inline LPTSTR TASKSTRINGOLE2T(LPOLESTR lp) { return lp; } + inline LPDEVMODE DEVMODEOLE2T(LPDEVMODEOLE lp) { return lp; } + inline LPDEVMODEOLE DEVMODET2OLE(LPDEVMODE lp) { return lp; } + inline LPTEXTMETRIC TEXTMETRICOLE2T(LPTEXTMETRICOLE lp) { return lp; } + inline LPTEXTMETRICOLE TEXTMETRICT2OLE(LPTEXTMETRIC lp) { return lp; } + inline BSTR BSTR2TBSTR(BSTR bstr) { return bstr; } +#else + #define DEVMODEOLE DEVMODEW + #define LPDEVMODEOLE LPDEVMODEW + #define TEXTMETRICOLE TEXTMETRICW + #define LPTEXTMETRICOLE LPTEXTMETRICW + inline size_t ocslen(LPCOLESTR x) { return wcslen(x); } + inline OLECHAR* ocscpy(LPOLESTR dest, LPCOLESTR src) { return wcscpy(dest, src); } + #define T2COLE(lpa) A2CW(lpa) + #define T2OLE(lpa) A2W(lpa) + #define OLE2CT(lpo) W2CA(lpo) + #define OLE2T(lpo) W2A(lpo) + #define TASKSTRINGT2OLE(lpa) AfxTaskStringA2W(lpa) + #define TASKSTRINGOLE2T(lpo) AfxTaskStringW2A(lpo) + #define DEVMODEOLE2T(lpo) DEVMODEW2A(lpo) + #define DEVMODET2OLE(lpa) DEVMODEA2W(lpa) + #define TEXTMETRICOLE2T(lptmw) TEXTMETRICW2A(lptmw) + #define TEXTMETRICT2OLE(lptma) TEXTMETRICA2W(lptma) + #define BSTR2TBSTR(bstr) AfxBSTR2ABSTR(bstr) +#endif + +#ifdef OLE2ANSI + #define W2OLE W2A + #define W2COLE W2CA + #define OLE2W A2W + #define OLE2CW A2CW + inline LPOLESTR A2OLE(LPSTR lp) { return lp; } + inline LPCOLESTR A2COLE(LPCSTR lp) { return lp; } + inline LPSTR OLE2A(LPOLESTR lp) { return lp; } + inline LPCSTR OLE2CA(LPCOLESTR lp) { return lp; } +#else + #define A2OLE A2W + #define A2COLE A2CW + #define OLE2A W2A + #define OLE2CA W2CA + inline LPOLESTR W2OLE(LPWSTR lp) { return lp; } + inline LPCOLESTR W2COLE(LPCWSTR lp) { return lp; } + inline LPWSTR OLE2W(LPOLESTR lp) { return lp; } + inline LPCWSTR OLE2CW(LPCOLESTR lp) { return lp; } +#endif + +#endif //__AFXCONV_H__ diff --git a/public/sdk/inc/mfc42/afxctl.h b/public/sdk/inc/mfc42/afxctl.h new file mode 100644 index 000000000..16cc70aa0 --- /dev/null +++ b/public/sdk/inc/mfc42/afxctl.h @@ -0,0 +1,1673 @@ +// 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. + +///////////////////////////////////////////////////////////////////////////// +// AFXCTL.H - MFC OLE Control support + +#ifndef __AFXCTL_H__ +#define __AFXCTL_H__ + +// make sure afxole.h is included first +#ifndef __AFXOLE_H__ + #include <afxole.h> +#endif + +// REVIEW: integration of INetSDK with main SDK may make this unnecessary +#if (!defined(DISPID_READYSTATE)) || (!defined(DISPID_READYSTATECHANGE)) + #include <idispids.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +///////////////////////////////////////////////////////////////////////////// +// Classes declared in this file + +//CWinApp + class COleControlModule; // Module housekeeping for an .OCX + +class CFontHolder; // For manipulating font objects +class CPictureHolder; // For manipulating picture objects + +//CWnd + class COleControl; // OLE Control + +//CDialog + class COlePropertyPage; // OLE Property page + +class CPropExchange; // Abstract base for property exchange + +#ifndef _MAC +//CAsyncMonikerFile + class CDataPathProperty; // Asynchronous properties for OLE Controls + class CCachedDataPathProperty; // Cached asynchronous properties for OLE Controls +#endif + +///////////////////////////////////////////////////////////////////////////// +// Set structure packing + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// MFC data definition for data exported from the runtime DLL + +#undef AFX_DATA +#define AFX_DATA AFX_OLE_DATA + +///////////////////////////////////////////////////////////////////////////// +// COleControlModule - base class for .OCX module +// This object is statically linked into the control. + +class COleControlModule : public CWinApp +{ + DECLARE_DYNAMIC(COleControlModule) +public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); +}; + +///////////////////////////////////////////////////////////////////////////// +// Module state macro + +#define AfxGetControlModuleContext AfxGetStaticModuleState +#define _afxModuleAddrThis AfxGetStaticModuleState() + +///////////////////////////////////////////////////////////////////////////// +// Connection helper functions + +BOOL AFXAPI AfxConnectionAdvise(LPUNKNOWN pUnkSrc, REFIID iid, + LPUNKNOWN pUnkSink, BOOL bRefCount, DWORD* pdwCookie); + +BOOL AFXAPI AfxConnectionUnadvise(LPUNKNOWN pUnkSrc, REFIID iid, + LPUNKNOWN pUnkSink, BOOL bRefCount, DWORD dwCookie); + +///////////////////////////////////////////////////////////////////////////// +// Event maps + +enum AFX_EVENTMAP_FLAGS +{ + afxEventCustom = 0, + afxEventStock = 1, +}; + +struct AFX_EVENTMAP_ENTRY +{ + AFX_EVENTMAP_FLAGS flags; + DISPID dispid; + LPCTSTR pszName; + LPCSTR lpszParams; +}; + +struct AFX_EVENTMAP +{ + const AFX_EVENTMAP* lpBaseEventMap; + const AFX_EVENTMAP_ENTRY* lpEntries; + DWORD* lpStockEventMask; +}; + +#define DECLARE_EVENT_MAP() \ +private: \ + static const AFX_DATA AFX_EVENTMAP_ENTRY _eventEntries[]; \ + static DWORD _dwStockEventMask; \ +protected: \ + static const AFX_DATA AFX_EVENTMAP eventMap; \ + virtual const AFX_EVENTMAP* GetEventMap() const; + +#define BEGIN_EVENT_MAP(theClass, baseClass) \ + const AFX_EVENTMAP* theClass::GetEventMap() const \ + { return &eventMap; } \ + const AFX_DATADEF AFX_EVENTMAP theClass::eventMap = \ + { &(baseClass::eventMap), theClass::_eventEntries, \ + &theClass::_dwStockEventMask }; \ + DWORD theClass::_dwStockEventMask = (DWORD)-1; \ + const AFX_DATADEF AFX_EVENTMAP_ENTRY theClass::_eventEntries[] = \ + { + +#define END_EVENT_MAP() \ + { afxEventCustom, DISPID_UNKNOWN, NULL, NULL }, \ + }; + +#define EVENT_CUSTOM(pszName, pfnFire, vtsParams) \ + { afxEventCustom, DISPID_UNKNOWN, _T(pszName), vtsParams }, + +#define EVENT_CUSTOM_ID(pszName, dispid, pfnFire, vtsParams) \ + { afxEventCustom, dispid, _T(pszName), vtsParams }, + +#define EVENT_PARAM(vtsParams) (BYTE*)(vtsParams) + +///////////////////////////////////////////////////////////////////////////// +// Stock events + +#define EVENT_STOCK_CLICK() \ + { afxEventStock, DISPID_CLICK, _T("Click"), VTS_NONE }, + +#define EVENT_STOCK_DBLCLICK() \ + { afxEventStock, DISPID_DBLCLICK, _T("DblClick"), VTS_NONE }, + +#define EVENT_STOCK_KEYDOWN() \ + { afxEventStock, DISPID_KEYDOWN, _T("KeyDown"), VTS_PI2 VTS_I2 }, + +#define EVENT_STOCK_KEYPRESS() \ + { afxEventStock, DISPID_KEYPRESS, _T("KeyPress"), VTS_PI2 }, + +#define EVENT_STOCK_KEYUP() \ + { afxEventStock, DISPID_KEYUP, _T("KeyUp"), VTS_PI2 VTS_I2 }, + +#define EVENT_STOCK_MOUSEDOWN() \ + { afxEventStock, DISPID_MOUSEDOWN, _T("MouseDown"), \ + VTS_I2 VTS_I2 VTS_XPOS_PIXELS VTS_YPOS_PIXELS }, + +#define EVENT_STOCK_MOUSEMOVE() \ + { afxEventStock, DISPID_MOUSEMOVE, _T("MouseMove"), \ + VTS_I2 VTS_I2 VTS_XPOS_PIXELS VTS_YPOS_PIXELS }, + +#define EVENT_STOCK_MOUSEUP() \ + { afxEventStock, DISPID_MOUSEUP, _T("MouseUp"), \ + VTS_I2 VTS_I2 VTS_XPOS_PIXELS VTS_YPOS_PIXELS }, + +#define EVENT_STOCK_ERROREVENT() \ + { afxEventStock, DISPID_ERROREVENT, _T("Error"), \ + VTS_I2 VTS_PBSTR VTS_SCODE VTS_BSTR VTS_BSTR VTS_I4 VTS_PBOOL }, + +#define EVENT_STOCK_READYSTATECHANGE() \ + { afxEventStock, DISPID_READYSTATECHANGE, _T("ReadyStateChange"), \ + VTS_I4 }, + +// Shift state values for mouse and keyboard events +#define SHIFT_MASK 0x01 +#define CTRL_MASK 0x02 +#define ALT_MASK 0x04 + +// Button values for mouse events +#define LEFT_BUTTON 0x01 +#define RIGHT_BUTTON 0x02 +#define MIDDLE_BUTTON 0x04 + +///////////////////////////////////////////////////////////////////////////// +// Stock properties + +#define DISP_PROPERTY_STOCK(theClass, szExternalName, dispid, pfnGet, pfnSet, vtPropType) \ + { _T(szExternalName), dispid, NULL, vtPropType, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnGet, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnSet, 0, afxDispStock }, \ + +#define DISP_STOCKPROP_APPEARANCE() \ + DISP_PROPERTY_STOCK(COleControl, "Appearance", DISPID_APPEARANCE, \ + COleControl::GetAppearance, COleControl::SetAppearance, VT_I2) + +#define DISP_STOCKPROP_BACKCOLOR() \ + DISP_PROPERTY_STOCK(COleControl, "BackColor", DISPID_BACKCOLOR, \ + COleControl::GetBackColor, COleControl::SetBackColor, VT_COLOR) + +#define DISP_STOCKPROP_BORDERSTYLE() \ + DISP_PROPERTY_STOCK(COleControl, "BorderStyle", DISPID_BORDERSTYLE, \ + COleControl::GetBorderStyle, COleControl::SetBorderStyle, VT_I2) + +#define DISP_STOCKPROP_CAPTION() \ + DISP_PROPERTY_STOCK(COleControl, "Caption", DISPID_CAPTION, \ + COleControl::GetText, COleControl::SetText, VT_BSTR) + +#define DISP_STOCKPROP_ENABLED() \ + DISP_PROPERTY_STOCK(COleControl, "Enabled", DISPID_ENABLED, \ + COleControl::GetEnabled, COleControl::SetEnabled, VT_BOOL) + +#define DISP_STOCKPROP_FONT() \ + DISP_PROPERTY_STOCK(COleControl, "Font", DISPID_FONT, \ + COleControl::GetFont, COleControl::SetFont, VT_FONT) + +#define DISP_STOCKPROP_FORECOLOR() \ + DISP_PROPERTY_STOCK(COleControl, "ForeColor", DISPID_FORECOLOR, \ + COleControl::GetForeColor, COleControl::SetForeColor, VT_COLOR) + +#define DISP_STOCKPROP_HWND() \ + DISP_PROPERTY_STOCK(COleControl, "hWnd", DISPID_HWND, \ + COleControl::GetHwnd, SetNotSupported, VT_HANDLE) + +#define DISP_STOCKPROP_TEXT() \ + DISP_PROPERTY_STOCK(COleControl, "Text", DISPID_TEXT, \ + COleControl::GetText, COleControl::SetText, VT_BSTR) + +#define DISP_STOCKPROP_READYSTATE() \ + DISP_PROPERTY_STOCK(COleControl, "ReadyState", DISPID_READYSTATE, \ + COleControl::GetReadyState, SetNotSupported, VT_I4) + +///////////////////////////////////////////////////////////////////////////// +// Stock methods + +#define DISP_FUNCTION_STOCK(theClass, szExternalName, dispid, pfnMember, vtRetVal, vtsParams) \ + { _T(szExternalName), dispid, vtsParams, vtRetVal, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnMember, (AFX_PMSG)0, 0, \ + afxDispStock }, \ + +#define DISP_STOCKFUNC_REFRESH() \ + DISP_FUNCTION_STOCK(COleControl, "Refresh", DISPID_REFRESH, \ + COleControl::Refresh, VT_EMPTY, VTS_NONE) + +#define DISP_STOCKFUNC_DOCLICK() \ + DISP_FUNCTION_STOCK(COleControl, "DoClick", DISPID_DOCLICK, \ + COleControl::DoClick, VT_EMPTY, VTS_NONE) + +///////////////////////////////////////////////////////////////////////////// +// Macros for object factory and class ID + +#define BEGIN_OLEFACTORY(class_name) \ +protected: \ + class class_name##Factory : public COleObjectFactoryEx \ + { \ + public: \ + class_name##Factory(REFCLSID clsid, CRuntimeClass* pRuntimeClass, \ + BOOL bMultiInstance, LPCTSTR lpszProgID) : \ + COleObjectFactoryEx(clsid, pRuntimeClass, bMultiInstance, \ + lpszProgID) {} \ + virtual BOOL UpdateRegistry(BOOL); + +#define END_OLEFACTORY(class_name) \ + }; \ + friend class class_name##Factory; \ + static AFX_DATA class_name##Factory factory; \ +public: \ + static AFX_DATA const GUID guid; \ + virtual HRESULT GetClassID(LPCLSID pclsid); + +#define DECLARE_OLECREATE_EX(class_name) \ + BEGIN_OLEFACTORY(class_name) \ + END_OLEFACTORY(class_name) + +#define IMPLEMENT_OLECREATE_EX(class_name, external_name, \ + l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ + static const TCHAR _szProgID_##class_name[] = _T(external_name); \ + AFX_DATADEF class_name::class_name##Factory class_name::factory( \ + class_name::guid, RUNTIME_CLASS(class_name), FALSE, \ + _szProgID_##class_name); \ + const AFX_DATADEF GUID class_name::guid = \ + { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }; \ + HRESULT class_name::GetClassID(LPCLSID pclsid) \ + { *pclsid = guid; return NOERROR; } + +///////////////////////////////////////////////////////////////////////////// +// Macros for type name and misc status + +#define DECLARE_OLECTLTYPE(class_name) \ + virtual UINT GetUserTypeNameID(); \ + virtual DWORD GetMiscStatus(); + +#define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) \ + UINT class_name::GetUserTypeNameID() { return idsUserTypeName; } \ + DWORD class_name::GetMiscStatus() { return dwOleMisc; } + +///////////////////////////////////////////////////////////////////////////// +// Macros for property page IDs + +#define DECLARE_PROPPAGEIDS(class_name) \ + protected: \ + virtual LPCLSID GetPropPageIDs(ULONG& cPropPages); + +#define BEGIN_PROPPAGEIDS(class_name, count) \ + static CLSID _rgPropPageIDs_##class_name[count]; \ + static ULONG _cPropPages_##class_name = (ULONG)-1; \ + LPCLSID class_name::GetPropPageIDs(ULONG& cPropPages) { \ + if (_cPropPages_##class_name == (ULONG)-1) { \ + _cPropPages_##class_name = count; \ + LPCLSID pIDs = _rgPropPageIDs_##class_name; \ + ULONG iPageMax = count; \ + ULONG iPage = 0; + +#define PROPPAGEID(clsid) \ + ASSERT(iPage < iPageMax); \ + if (iPage < iPageMax) \ + pIDs[iPage++] = clsid; + +#define END_PROPPAGEIDS(class_name) \ + ASSERT(iPage == iPageMax); \ + } \ + cPropPages = _cPropPages_##class_name; \ + return _rgPropPageIDs_##class_name; } + +///////////////////////////////////////////////////////////////////////////// +// CFontHolder - helper class for dealing with font objects + +class CFontHolder +{ +// Constructors +public: + CFontHolder(LPPROPERTYNOTIFYSINK pNotify); + +// Attributes + LPFONT m_pFont; + +// Operations + void InitializeFont( + const FONTDESC* pFontDesc = NULL, + LPDISPATCH pFontDispAmbient = NULL); + void SetFont(LPFONT pNewFont); + void ReleaseFont(); + HFONT GetFontHandle(); + HFONT GetFontHandle(long cyLogical, long cyHimetric); + CFont* Select(CDC* pDC, long cyLogical, long cyHimetric); + BOOL GetDisplayString(CString& strValue); + LPFONTDISP GetFontDispatch(); + void QueryTextMetrics(LPTEXTMETRIC lptm); + +// Implementation +public: + ~CFontHolder(); + +protected: + DWORD m_dwConnectCookie; + LPPROPERTYNOTIFYSINK m_pNotify; +}; + +///////////////////////////////////////////////////////////////////////////// +// CPictureHolder - helper class for dealing with picture objects + +class CPictureHolder +{ +// Constructors +public: + CPictureHolder(); + +// Attributes + LPPICTURE m_pPict; + +// Operations + BOOL CreateEmpty(); + + BOOL CreateFromBitmap(UINT idResource); + BOOL CreateFromBitmap(CBitmap* pBitmap, CPalette* pPal = NULL, + BOOL bTransferOwnership = TRUE); + BOOL CreateFromBitmap(HBITMAP hbm, HPALETTE hpal = NULL, + BOOL bTransferOwnership = FALSE); + + BOOL CreateFromMetafile(HMETAFILE hmf, int xExt, int yExt, + BOOL bTransferOwnership = FALSE); + + BOOL CreateFromIcon(UINT idResource); + BOOL CreateFromIcon(HICON hIcon, BOOL bTransferOwnership = FALSE); + + short GetType(); + BOOL GetDisplayString(CString& strValue); + LPPICTUREDISP GetPictureDispatch(); + void SetPictureDispatch(LPPICTUREDISP pDisp); + void Render(CDC* pDC, const CRect& rcRender, const CRect& rcWBounds); + +// Implementation +public: + ~CPictureHolder(); +}; + +///////////////////////////////////////////////////////////////////////////// +// CDataPathProperty - Asynchonous properties for OLE Controls + +#ifndef _MAC + +class CDataPathProperty: public CAsyncMonikerFile +{ + DECLARE_DYNAMIC(CDataPathProperty) +// Constructors +public: + CDataPathProperty(COleControl* pControl = NULL); + CDataPathProperty(LPCTSTR lpszPath, COleControl* pControl = NULL); + // Calls SetPath(pControl) and SetPath(lpszPath) as appropriate. + +// Attributes +public: + void SetPath(LPCTSTR lpszPath); + // Sets the path to be opened by Open(COleControl*) and Open() + // lpszPath may be NULL. + + CString GetPath() const; + // Returns the current path setting. Result may be empty. + + COleControl* GetControl(); + // Returns a Pointer to the control. Result may be NULL. + + void SetControl(COleControl* pControl); + // Sets the control which will be used with Open. pControl may be NULL. + +// Operations +public: + //REVIEW: Is this really appropriate? + using CAsyncMonikerFile::Open; + // Any of the above opens are valid. + + // Overloads of Open takings some or all of: a path, a control, + // and a CFileException + // Overloads taking a COleControl call SetControl(pControl) + // Overloads taking an LPCTSTR cal SetPath(lpszPath) + virtual BOOL Open(COleControl* pControl, CFileException* pError = NULL); + virtual BOOL Open(LPCTSTR lpszPath, COleControl* pControl, + CFileException* pError = NULL); + virtual BOOL Open(LPCTSTR lpszPath, CFileException* pError = NULL); + virtual BOOL Open(CFileException* pError = NULL); + // Attempts to obtain an IBindHost* from the control returned by + // GetControl(). Calls CAsyncMonikerFile::Open with the path returned by + // GetPath() and, if it was obtained, the IBindHost*. + // Returns TRUE if successful. + +// Overridables +public: + virtual void ResetData(); + // Derived classes should overide this. + +// Implementation +public: +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +private: + COleControl* m_pControl; + CString m_strPath; +}; + +#endif // !_MAC + +///////////////////////////////////////////////////////////////////////////// +// CCachedDataPathProperty - Cached asynchonous properties for OLE Controls + +#ifndef _MAC + +class CCachedDataPathProperty : public CDataPathProperty +{ + DECLARE_DYNAMIC(CCachedDataPathProperty) +//Constructors +public: + CCachedDataPathProperty(COleControl* pControl = NULL); + CCachedDataPathProperty(LPCTSTR lpszPath, COleControl* pControl = NULL); + +// Attributes +public: + CMemFile m_Cache; + +// Implementation +public: + virtual void OnDataAvailable(DWORD dwSize, DWORD bscfFlag); + virtual void Close(); + virtual void ResetData(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +#endif + +///////////////////////////////////////////////////////////////////////////// +// COleControl - base class for a control implemented in C++ with MFC + +struct _AFXCTL_ADVISE_INFO; // implementation class +struct _AFXCTL_UIACTIVE_INFO; // implementation class + +class COleControl : public CWnd +{ + DECLARE_DYNAMIC(COleControl) + +// Constructors +public: + COleControl(); + +// Operations + + // Initialization + void SetInitialSize(int cx, int cy); + void InitializeIIDs(const IID* piidPrimary, const IID* piidEvents); + + // Invalidating + void InvalidateControl(LPCRECT lpRect = NULL, BOOL bErase = TRUE); + + // Modified flag + BOOL IsModified(); + void SetModifiedFlag(BOOL bModified = TRUE); + + // Drawing operations + void DoSuperclassPaint(CDC* pDC, const CRect& rcBounds); + BOOL IsOptimizedDraw(); + + // Property exchange + BOOL ExchangeVersion(CPropExchange* pPX, DWORD dwVersionDefault, + BOOL bConvert = TRUE); + BOOL ExchangeExtent(CPropExchange* pPX); + void ExchangeStockProps(CPropExchange* pPX); + BOOL IsConvertingVBX(); + + DWORD SerializeVersion(CArchive& ar, DWORD dwVersionDefault, + BOOL bConvert = TRUE); + void SerializeExtent(CArchive& ar); + void SerializeStockProps(CArchive& ar); + + void ResetVersion(DWORD dwVersionDefault); + void ResetStockProps(); + + // Stock methods + void Refresh(); + void DoClick(); + + // Stock properties + short GetAppearance(); + void SetAppearance(short); + OLE_COLOR GetBackColor(); + void SetBackColor(OLE_COLOR); + short GetBorderStyle(); + void SetBorderStyle(short); + BOOL GetEnabled(); + void SetEnabled(BOOL); + CFontHolder& InternalGetFont(); + LPFONTDISP GetFont(); + void SetFont(LPFONTDISP); + OLE_COLOR GetForeColor(); + void SetForeColor(OLE_COLOR); + OLE_HANDLE GetHwnd(); + const CString& InternalGetText(); + BSTR GetText(); + void SetText(LPCTSTR); + long GetReadyState(); + void InternalSetReadyState(long lNewReadyState); + + // Using colors + COLORREF TranslateColor(OLE_COLOR clrColor, HPALETTE hpal = NULL); + + // Using fonts + CFont* SelectStockFont(CDC* pDC); + CFont* SelectFontObject(CDC* pDC, CFontHolder& fontHolder); + void GetStockTextMetrics(LPTEXTMETRIC lptm); + void GetFontTextMetrics(LPTEXTMETRIC lptm, CFontHolder& fontHolder); + + // Client site access + LPOLECLIENTSITE GetClientSite(); + + // Generic ambient property access + BOOL GetAmbientProperty(DISPID dispid, VARTYPE vtProp, void* pvProp); + BOOL WillAmbientsBeValidDuringLoad(); + + // Specific ambient properties + short AmbientAppearance(); + OLE_COLOR AmbientBackColor(); + CString AmbientDisplayName(); + LPFONTDISP AmbientFont(); + OLE_COLOR AmbientForeColor(); + LCID AmbientLocaleID(); + CString AmbientScaleUnits(); + short AmbientTextAlign(); + BOOL AmbientUserMode(); + BOOL AmbientUIDead(); + BOOL AmbientShowGrabHandles(); + BOOL AmbientShowHatching(); + + // Firing events + void AFX_CDECL FireEvent(DISPID dispid, BYTE* pbParams, ...); + + // Firing functions for stock events + void FireKeyDown(USHORT* pnChar, short nShiftState); + void FireKeyUp(USHORT* pnChar, short nShiftState); + void FireKeyPress(USHORT* pnChar); + void FireMouseDown(short nButton, short nShiftState, + OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y); + void FireMouseUp(short nButton, short nShiftState, + OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y); + void FireMouseMove(short nButton, short nShiftState, + OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y); + void FireClick(); + void FireDblClick(); + void FireError(SCODE scode, LPCTSTR lpszDescription, UINT nHelpID = 0); + void FireReadyStateChange(); + + // Changing size and/or rectangle + BOOL GetRectInContainer(LPRECT lpRect); + BOOL SetRectInContainer(LPCRECT lpRect); + void GetControlSize(int* pcx, int* pcy); + BOOL SetControlSize(int cx, int cy); + + // Window management + void RecreateControlWindow(); + + // Modal dialog operations + void PreModalDialog(HWND hWndParent = NULL); + void PostModalDialog(HWND hWndParent = NULL); + + // Data binding operations + void BoundPropertyChanged(DISPID dispid); + BOOL BoundPropertyRequestEdit(DISPID dispid); + + // Dispatch exceptions + void ThrowError(SCODE sc, UINT nDescriptionID, UINT nHelpID = -1); + void ThrowError(SCODE sc, LPCTSTR pszDescription = NULL, UINT nHelpID = 0); + void GetNotSupported(); + void SetNotSupported(); + void SetNotPermitted(); + + // Communication with the control site + void ControlInfoChanged(); + BOOL LockInPlaceActive(BOOL bLock); + LPDISPATCH GetExtendedControl(); + void TransformCoords(POINTL* lpptlHimetric, + POINTF* lpptfContainer, DWORD flags); + + // Simple frame + void EnableSimpleFrame(); + + // Windowless operations + CWnd* SetCapture(); + BOOL ReleaseCapture(); + CWnd* GetCapture(); + CWnd* SetFocus(); + CWnd* GetFocus(); + CDC* GetDC(LPCRECT lprcRect = NULL, DWORD dwFlags = OLEDC_PAINTBKGND); + int ReleaseDC(CDC* pDC); + void InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE); + void ScrollWindow(int xAmount, int yAmount, LPCRECT lpRect = NULL, + LPCRECT lpClipRect = NULL); + BOOL ClipCaretRect(LPRECT lpRect); + virtual void GetClientRect(LPRECT lpRect) const; + +// Overridables + virtual void DoPropExchange(CPropExchange* pPX); + virtual void OnResetState(); + virtual void OnDraw( + CDC* pDC, const CRect& rcBounds, const CRect& rcInvalid); + virtual void OnDrawMetafile(CDC* pDC, const CRect& rcBounds); + + // Class ID (implemented by IMPLEMENT_OLECREATE_EX macro) + virtual HRESULT GetClassID(LPCLSID pclsid) = 0; + + // For customizing the default messages on the status bar + virtual void GetMessageString(UINT nID, CString& rMessage) const; + + // Display of error events to user + virtual void DisplayError(SCODE scode, LPCTSTR lpszDescription, + LPCTSTR lpszSource, LPCTSTR lpszHelpFile, UINT nHelpID); + + // IOleObject notifications + virtual void OnSetClientSite(); + virtual BOOL OnSetExtent(LPSIZEL lpSizeL); + virtual void OnClose(DWORD dwSaveOption); + + // IOleInPlaceObject notifications + virtual BOOL OnSetObjectRects(LPCRECT lpRectPos, LPCRECT lpRectClip); + + // Event connection point notifications + virtual void OnEventAdvise(BOOL bAdvise); + + // Override to hook firing of Click event + virtual void OnClick(USHORT iButton); + + // Override to get character after key events have been processed. + virtual void OnKeyDownEvent(USHORT nChar, USHORT nShiftState); + virtual void OnKeyUpEvent(USHORT nChar, USHORT nShiftState); + virtual void OnKeyPressEvent(USHORT nChar); + + // Change notifications + virtual void OnAppearanceChanged(); + virtual void OnBackColorChanged(); + virtual void OnBorderStyleChanged(); + virtual void OnEnabledChanged(); + virtual void OnTextChanged(); + virtual void OnFontChanged(); + virtual void OnForeColorChanged(); + + // IOleControl notifications + virtual void OnGetControlInfo(LPCONTROLINFO pControlInfo); + virtual void OnMnemonic(LPMSG pMsg); + virtual void OnAmbientPropertyChange(DISPID dispid); + virtual void OnFreezeEvents(BOOL bFreeze); + + // In-place activation + virtual HMENU OnGetInPlaceMenu(); + virtual void OnShowToolBars(); + virtual void OnHideToolBars(); + + // IViewObject + virtual BOOL OnGetColorSet(DVTARGETDEVICE* ptd, HDC hicTargetDev, + LPLOGPALETTE* ppColorSet); + virtual BOOL OnGetViewExtent(DWORD dwDrawAspect, LONG lindex, + DVTARGETDEVICE* ptd, LPSIZEL lpsizel); + virtual BOOL OnGetViewRect(DWORD dwAspect, LPRECTL pRect); + virtual DWORD OnGetViewStatus(); + virtual BOOL OnQueryHitPoint(DWORD dwAspect, LPCRECT pRectBounds, + POINT ptlLoc, LONG lCloseHint, DWORD* pHitResult); + virtual BOOL OnQueryHitRect(DWORD dwAspect, LPCRECT pRectBounds, + LPCRECT prcLoc, LONG lCloseHint, DWORD* pHitResult); + virtual BOOL OnGetNaturalExtent(DWORD dwAspect, LONG lindex, + DVTARGETDEVICE* ptd, HDC hicTargetDev, DVEXTENTINFO* pExtentInfo, + LPSIZEL psizel); + + // IDataObject - see COleDataSource for a description of these overridables + virtual BOOL OnRenderGlobalData(LPFORMATETC lpFormatEtc, HGLOBAL* phGlobal); + virtual BOOL OnRenderFileData(LPFORMATETC lpFormatEtc, CFile* pFile); + virtual BOOL OnRenderData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium); + virtual BOOL OnSetData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium, + BOOL bRelease); + + // Verbs + virtual BOOL OnEnumVerbs(LPENUMOLEVERB* ppenumOleVerb); + virtual BOOL OnDoVerb(LONG iVerb, LPMSG lpMsg, HWND hWndParent, LPCRECT lpRect); + virtual BOOL OnEdit(LPMSG lpMsg, HWND hWndParent, LPCRECT lpRect); + virtual BOOL OnProperties(LPMSG lpMsg, HWND hWndParent, LPCRECT lpRect); + + // IPerPropertyBrowsing overrides + virtual BOOL OnGetDisplayString(DISPID dispid, CString& strValue); + virtual BOOL OnMapPropertyToPage(DISPID dispid, LPCLSID lpclsid, + BOOL* pbPageOptional); + virtual BOOL OnGetPredefinedStrings(DISPID dispid, + CStringArray* pStringArray, CDWordArray* pCookieArray); + virtual BOOL OnGetPredefinedValue(DISPID dispid, DWORD dwCookie, + VARIANT* lpvarOut); + + // Subclassing + virtual BOOL IsSubclassedControl(); + + // Window reparenting + virtual void ReparentControlWindow(HWND hWndOuter, HWND hWndParent); + + // Window procedure + virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam); + + // General-purpose flags + enum ControlFlags { + fastBeginPaint = 0x0001, + clipPaintDC = 0x0002, + pointerInactive = 0x0004, + noFlickerActivate = 0x0008, + windowlessActivate = 0x0010, + canOptimizeDraw = 0x0020, + }; + virtual DWORD GetControlFlags(); + + // Inactive pointer handling + virtual DWORD GetActivationPolicy(); + virtual BOOL OnInactiveSetCursor(LPCRECT lprcBounds, long x, long y, + DWORD dwMouseMsg, BOOL bSetAlways); + virtual void OnInactiveMouseMove(LPCRECT lprcBounds, long x, long y, + DWORD dwKeyState); + + // Windowless activation handling + virtual BOOL OnWindowlessMessage(UINT msg, WPARAM wParam, LPARAM lParam, + LRESULT* plResult); + virtual IDropTarget* GetWindowlessDropTarget(); + + // Inactive/windowless helper functions + virtual void GetClientOffset(long* pdxOffset, long* pdyOffset) const; + virtual UINT ParentToClient(LPCRECT lprcBounds, LPPOINT pPoint, + BOOL bHitTest = FALSE) const; + virtual void ClientToParent(LPCRECT lprcBounds, LPPOINT pPoint) const; + +#ifndef _MAC + // Asynchronous properties + void Load(LPCTSTR strNewPath, CDataPathProperty& prop); +#endif + +// Implementation +public: + ~COleControl(); + +#ifndef _MAC + void RequestAsynchronousExchange(DWORD dwVersion); +#endif + +#ifdef _DEBUG + void AssertValid() const; + void Dump(CDumpContext& dc) const; +#endif // _DEBUG + +protected: + // Friend classes + friend class COleControlInnerUnknown; + friend class CReflectorWnd; + friend class CControlFrameWnd; + + // Interface hook for primary automation interface + LPUNKNOWN GetInterfaceHook(const void* piid); + + // Shutdown + virtual void OnFinalRelease(); + + // Window management + virtual BOOL CreateControlWindow(HWND hWndParent, const CRect& rcPos, + LPCRECT prcClipped = NULL); + void CreateWindowForSubclassedControl(); + BOOL IgnoreWindowMessage(UINT msg, WPARAM wParam, LPARAM lParam, + LRESULT* plResult); + virtual LRESULT DefWindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam); + + // Serialization + HRESULT SaveState(IStream* pStm); + HRESULT LoadState(IStream* pStm); + virtual void Serialize(CArchive& ar); + + // Drawing + void DrawContent(CDC* pDC, CRect& rc); + void DrawMetafile(CDC* pDC, CRect& rc); + BOOL GetMetafileData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium); + + // Implementation of IDataObject + // CControlDataSource implements OnRender reflections to COleControl + class CControlDataSource : public COleDataSource + { + public: + CControlDataSource(COleControl* pCtrl); + protected: + virtual BOOL OnRenderGlobalData(LPFORMATETC lpFormatEtc, HGLOBAL* phGlobal); + virtual BOOL OnRenderFileData(LPFORMATETC lpFormatEtc, CFile* pFile); + virtual BOOL OnRenderData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium); + virtual BOOL OnSetData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium, + BOOL bRelease); + COleControl* m_pCtrl; + }; + friend class CControlDataSource; + + // IDataObject formats + CControlDataSource* GetDataSource(); + virtual void SetInitialDataFormats(); + BOOL GetPropsetData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium, + REFCLSID fmtid); + BOOL SetPropsetData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium, + REFCLSID fmtid); + + // Type library + BOOL GetDispatchIID(IID* pIID); + + // Connection point container + virtual LPCONNECTIONPOINT GetConnectionHook(REFIID iid); + virtual BOOL GetExtraConnectionPoints(CPtrArray* pConnPoints); + + // Events + static const AFX_DATA AFX_EVENTMAP_ENTRY _eventEntries[]; + virtual const AFX_EVENTMAP* GetEventMap() const; + static const AFX_DATA AFX_EVENTMAP eventMap; + const AFX_EVENTMAP_ENTRY* GetEventMapEntry(LPCTSTR pszName, + DISPID* pDispid) const; + void FireEventV(DISPID dispid, BYTE* pbParams, va_list argList); + + // Stock events + void KeyDown(USHORT* pnChar); + void KeyUp(USHORT* pnChar); + void ButtonDown(USHORT iButton, UINT nFlags, CPoint point); + void ButtonUp(USHORT iButton, UINT nFlags, CPoint point); + void ButtonDblClk(USHORT iButton, UINT nFlags, CPoint point); + + // Masks to identify which stock events and properties are used + void InitStockEventMask(); + void InitStockPropMask(); + DWORD GetStockEventMask() const; + DWORD GetStockPropMask() const; + + // Support for subclassing a Windows control + CWnd* GetOuterWindow() const; // m_pReflect if any, otherwise this + virtual void OnReflectorDestroyed(); + + // Aggregation of default handler + virtual BOOL OnCreateAggregates(); + LPVOID QueryDefHandler(REFIID iid); + + // State change notifications + void SendAdvise(UINT uCode); + + // Non-in-place activation + virtual HRESULT OnOpen(BOOL bTryInPlace, LPMSG pMsg); + void ResizeOpenControl(int cx, int cy); + virtual CControlFrameWnd* CreateFrameWindow(); + virtual void ResizeFrameWindow(int cx, int cy); + virtual void OnFrameClose(); + virtual HRESULT OnHide(); + + // In-place activation + virtual HRESULT OnActivateInPlace(BOOL bUIActivate, LPMSG pMsg); + void ForwardActivationMsg(LPMSG pMsg); + virtual void AddFrameLevelUI(); + virtual void RemoveFrameLevelUI(); + virtual BOOL BuildSharedMenu(); + virtual void DestroySharedMenu(); + + // Property sheet + virtual LPCLSID GetPropPageIDs(ULONG& cPropPages); + + // IOleObject implementation + void GetUserType(LPTSTR pszUserType); + virtual UINT GetUserTypeNameID() = 0; + virtual DWORD GetMiscStatus() = 0; + + // Rectangle tracker + void CreateTracker(BOOL bHandles, BOOL bHatching); + void DestroyTracker(); + + // Automation + BOOL IsInvokeAllowed(DISPID dispid); + + // Ambient property interface initialization + COleDispatchDriver* GetAmbientDispatchDriver(); + + // Data members + const IID* m_piidPrimary; // IID for control automation + const IID* m_piidEvents; // IID for control events + DWORD m_dwVersionLoaded; // Version number of loaded state + COleDispatchDriver m_ambientDispDriver; // Driver for ambient properties + ULONG m_cEventsFrozen; // Event freeze count (>0 means frozen) + union + { + CControlFrameWnd* m_pWndOpenFrame; // Open frame window. + CRectTracker* m_pRectTracker; // Tracker for UI active control + }; + CRect m_rcPos; // Control's position rectangle + CRect m_rcBounds; // Bounding rectangle for drawing + CPoint m_ptOffset; // Child window origin + long m_cxExtent; // Control's width in HIMETRIC units + long m_cyExtent; // Control's height in HIMETRIC units + class CReflectorWnd* m_pReflect; // Reflector window + UINT m_nIDTracking; // Tracking command ID or string IDS + UINT m_nIDLastMessage; // Last displayed message string IDS + unsigned m_bAutoMenuEnable : 1; // Disable menu items without handlers? + unsigned m_bFinalReleaseCalled : 1; // Are we handling the final Release? + unsigned m_bModified : 1; // "Dirty" bit. + unsigned m_bCountOnAmbients : 1; // Can we count on Ambients during load? + unsigned m_iButtonState : 3; // Which buttons are down? + unsigned m_iDblClkState : 3; // Which buttons involved in dbl click? + unsigned m_bInPlaceActive : 1; // Are we in-place active? + unsigned m_bUIActive : 1; // Are we UI active? + unsigned m_bPendingUIActivation : 1; // Are we about to become UI active? + unsigned m_bOpen : 1; // Are we open (non-in-place)? + unsigned m_bChangingExtent : 1; // Extent is currently being changed + unsigned m_bConvertVBX : 1; // VBX conversion in progress + unsigned m_bSimpleFrame : 1; // Simple frame support + unsigned m_bUIDead : 1; // UIDead ambient property value + unsigned m_bInitialized : 1; // Was IPersist*::{InitNew,Load} called? + unsigned m_bAutoClip : 1; // Does container automatically clip? + unsigned m_bMsgReflect : 1; // Does container reflect messages? + unsigned m_bInPlaceSiteEx : 1; // Extended in-place site? + unsigned m_bInPlaceSiteWndless : 1; // Windowless in-place site? + unsigned m_bNoRedraw : 1; // Should we skip OnPaint this time? + unsigned m_bOptimizedDraw : 1; // Is optimized drawing possible? + + // Stock properties + OLE_COLOR m_clrBackColor; // BackColor + OLE_COLOR m_clrForeColor; // ForeColor + CString m_strText; // Text/Caption + CFontHolder m_font; // Font + HFONT m_hFontPrev; // Previously selected font object + short m_sAppearance; // Appearance + short m_sBorderStyle; // BorderStyle + BOOL m_bEnabled; // Enabled + long m_lReadyState; // ReadyState + + // UI Active info (shared OLE menu data) + _AFXCTL_UIACTIVE_INFO* m_pUIActiveInfo; + + // Default Handler aggregation + LPUNKNOWN m_pDefIUnknown; + _AFXCTL_ADVISE_INFO* m_pAdviseInfo; + LPPERSISTSTORAGE m_pDefIPersistStorage; + LPVIEWOBJECT m_pDefIViewObject; + LPOLECACHE m_pDefIOleCache; + + // OLE client site interfaces + LPOLECLIENTSITE m_pClientSite; // Client site + union + { + LPOLEINPLACESITE m_pInPlaceSite; // In-place site + LPOLEINPLACESITEEX m_pInPlaceSiteEx; + LPOLEINPLACESITEWINDOWLESS m_pInPlaceSiteWndless; + }; + LPOLECONTROLSITE m_pControlSite; // Control site + LPOLEADVISEHOLDER m_pOleAdviseHolder; // Advise holder + LPDATAADVISEHOLDER m_pDataAdviseHolder; // Data advise holder + LPSIMPLEFRAMESITE m_pSimpleFrameSite; // Simple frame site + + // OLE in-place activation info + LPOLEINPLACEFRAME m_pInPlaceFrame; + OLEINPLACEFRAMEINFO m_frameInfo; + LPOLEINPLACEUIWINDOW m_pInPlaceDoc; + + // OLE data source + CControlDataSource* m_pDataSource; + + // OLE data path load data + BOOL m_bDataPathPropertiesLoaded; + DWORD m_dwDataPathVersionToReport; + +// Message Maps +protected: + //{{AFX_MSG(COleControl) + afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnMouseMove(UINT nFlags, CPoint point); + afx_msg void OnLButtonDown(UINT nFlags, CPoint point); + afx_msg void OnLButtonUp(UINT nFlags, CPoint point); + afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); + afx_msg void OnMButtonDown(UINT nFlags, CPoint point); + afx_msg void OnMButtonUp(UINT nFlags, CPoint point); + afx_msg void OnMButtonDblClk(UINT nFlags, CPoint point); + afx_msg void OnRButtonDown(UINT nFlags, CPoint point); + afx_msg void OnRButtonUp(UINT nFlags, CPoint point); + afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point); + afx_msg void OnInitMenuPopup(CMenu*, UINT, BOOL); + afx_msg void OnMenuSelect(UINT nItemID, UINT nFlags, HMENU hSysMenu); + afx_msg LRESULT OnSetMessageString(WPARAM wParam, LPARAM lParam); + afx_msg void OnEnterIdle(UINT nWhy, CWnd* pWho); + afx_msg void OnCancelMode(); + afx_msg void OnPaint(CDC* pDC); + afx_msg void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnSysKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg int OnMouseActivate(CWnd *pDesktopWnd, UINT nHitTest, UINT message); + afx_msg LRESULT OnSetText(WPARAM wParam, LPARAM lParam); + afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnDestroy(); + afx_msg void OnKillFocus(CWnd* pNewWnd); + afx_msg void OnSetFocus(CWnd* pOldWnd); + afx_msg void OnNcPaint(); + afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp); + afx_msg UINT OnNcHitTest(CPoint point); + afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point); + afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); + afx_msg UINT OnGetDlgCode(); + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnMove(int x, int y); + afx_msg void OnShowWindow(BOOL bShow, UINT nStatus); + //}}AFX_MSG + + afx_msg LRESULT OnOcmCtlColorBtn(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnOcmCtlColorDlg(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnOcmCtlColorEdit(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnOcmCtlColorListBox(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnOcmCtlColorMsgBox(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnOcmCtlColorScrollBar(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnOcmCtlColorStatic(WPARAM wParam, LPARAM lParam); + + DECLARE_MESSAGE_MAP() + +// Interface Maps +public: + // IPersistStorage + BEGIN_INTERFACE_PART(PersistStorage, IPersistStorage) + INIT_INTERFACE_PART(COleControl, PersistStorage) + STDMETHOD(GetClassID)(LPCLSID); + STDMETHOD(IsDirty)(); + STDMETHOD(InitNew)(LPSTORAGE); + STDMETHOD(Load)(LPSTORAGE); + STDMETHOD(Save)(LPSTORAGE, BOOL); + STDMETHOD(SaveCompleted)(LPSTORAGE); + STDMETHOD(HandsOffStorage)(); + END_INTERFACE_PART(PersistStorage) + + // IPersistStreamInit + BEGIN_INTERFACE_PART(PersistStreamInit, IPersistStreamInit) + INIT_INTERFACE_PART(COleControl, PersistStreamInit) + STDMETHOD(GetClassID)(LPCLSID); + STDMETHOD(IsDirty)(); + STDMETHOD(Load)(LPSTREAM); + STDMETHOD(Save)(LPSTREAM, BOOL); + STDMETHOD(GetSizeMax)(ULARGE_INTEGER *); + STDMETHOD(InitNew)(); + END_INTERFACE_PART(PersistStreamInit) + + // IPersistMemory + BEGIN_INTERFACE_PART(PersistMemory, IPersistMemory) + INIT_INTERFACE_PART(COleControl, PersistMemory) + STDMETHOD(GetClassID)(LPCLSID); + STDMETHOD(IsDirty)(); + STDMETHOD(Load)(LPVOID, ULONG); + STDMETHOD(Save)(LPVOID, BOOL, ULONG); + STDMETHOD(GetSizeMax)(ULONG*); + STDMETHOD(InitNew)(); + END_INTERFACE_PART(PersistMemory) + + // IPersistPropertyBag + BEGIN_INTERFACE_PART(PersistPropertyBag, IPersistPropertyBag) + INIT_INTERFACE_PART(COleControl, PersistPropertyBag) + STDMETHOD(GetClassID)(LPCLSID); + STDMETHOD(InitNew)(); + STDMETHOD(Load)(LPPROPERTYBAG, LPERRORLOG); + STDMETHOD(Save)(LPPROPERTYBAG, BOOL, BOOL); + END_INTERFACE_PART(PersistPropertyBag) + + // IOleObject + BEGIN_INTERFACE_PART(OleObject, IOleObject) + INIT_INTERFACE_PART(COleControl, OleObject) + STDMETHOD(SetClientSite)(LPOLECLIENTSITE); + STDMETHOD(GetClientSite)(LPOLECLIENTSITE*); + STDMETHOD(SetHostNames)(LPCOLESTR, LPCOLESTR); + STDMETHOD(Close)(DWORD); + STDMETHOD(SetMoniker)(DWORD, LPMONIKER); + STDMETHOD(GetMoniker)(DWORD, DWORD, LPMONIKER*); + STDMETHOD(InitFromData)(LPDATAOBJECT, BOOL, DWORD); + STDMETHOD(GetClipboardData)(DWORD, LPDATAOBJECT*); + STDMETHOD(DoVerb)(LONG, LPMSG, LPOLECLIENTSITE, LONG, HWND, LPCRECT); + STDMETHOD(EnumVerbs)(IEnumOLEVERB**); + STDMETHOD(Update)(); + STDMETHOD(IsUpToDate)(); + STDMETHOD(GetUserClassID)(CLSID*); + STDMETHOD(GetUserType)(DWORD, LPOLESTR*); + STDMETHOD(SetExtent)(DWORD, LPSIZEL); + STDMETHOD(GetExtent)(DWORD, LPSIZEL); + STDMETHOD(Advise)(LPADVISESINK, LPDWORD); + STDMETHOD(Unadvise)(DWORD); + STDMETHOD(EnumAdvise)(LPENUMSTATDATA*); + STDMETHOD(GetMiscStatus)(DWORD, LPDWORD); + STDMETHOD(SetColorScheme)(LPLOGPALETTE); + END_INTERFACE_PART(OleObject) + + // IViewObjectEx + BEGIN_INTERFACE_PART(ViewObject, IViewObjectEx) + INIT_INTERFACE_PART(COleControl, ViewObject) + STDMETHOD(Draw)(DWORD, LONG, void*, DVTARGETDEVICE*, HDC, HDC, + LPCRECTL, LPCRECTL, BOOL (CALLBACK*)(DWORD), DWORD); + STDMETHOD(GetColorSet)(DWORD, LONG, void*, DVTARGETDEVICE*, + HDC, LPLOGPALETTE*); + STDMETHOD(Freeze)(DWORD, LONG, void*, DWORD*); + STDMETHOD(Unfreeze)(DWORD); + STDMETHOD(SetAdvise)(DWORD, DWORD, LPADVISESINK); + STDMETHOD(GetAdvise)(DWORD*, DWORD*, LPADVISESINK*); + STDMETHOD(GetExtent) (DWORD, LONG, DVTARGETDEVICE*, LPSIZEL); + STDMETHOD(GetRect)(DWORD, LPRECTL); + STDMETHOD(GetViewStatus)(DWORD*); + STDMETHOD(QueryHitPoint)(DWORD, LPCRECT, POINT, LONG, DWORD*); + STDMETHOD(QueryHitRect)(DWORD, LPCRECT, LPCRECT, LONG, DWORD*); + STDMETHOD(GetNaturalExtent)(DWORD, LONG, DVTARGETDEVICE*, HDC, + DVEXTENTINFO*, LPSIZEL); + END_INTERFACE_PART(ViewObject) + + // IDataObject + BEGIN_INTERFACE_PART(DataObject, IDataObject) + INIT_INTERFACE_PART(COleControl, DataObject) + STDMETHOD(GetData)(LPFORMATETC, LPSTGMEDIUM); + STDMETHOD(GetDataHere)(LPFORMATETC, LPSTGMEDIUM); + STDMETHOD(QueryGetData)(LPFORMATETC); + STDMETHOD(GetCanonicalFormatEtc)(LPFORMATETC, LPFORMATETC); + STDMETHOD(SetData)(LPFORMATETC, LPSTGMEDIUM, BOOL); + STDMETHOD(EnumFormatEtc)(DWORD, LPENUMFORMATETC*); + STDMETHOD(DAdvise)(LPFORMATETC, DWORD, LPADVISESINK, LPDWORD); + STDMETHOD(DUnadvise)(DWORD); + STDMETHOD(EnumDAdvise)(LPENUMSTATDATA*); + END_INTERFACE_PART(DataObject) + + // IOleInPlaceObject + BEGIN_INTERFACE_PART(OleInPlaceObject, IOleInPlaceObjectWindowless) + INIT_INTERFACE_PART(COleControl, OleInPlaceObject) + STDMETHOD(GetWindow)(HWND*); + STDMETHOD(ContextSensitiveHelp)(BOOL); + STDMETHOD(InPlaceDeactivate)(); + STDMETHOD(UIDeactivate)(); + STDMETHOD(SetObjectRects)(LPCRECT, LPCRECT); + STDMETHOD(ReactivateAndUndo)(); + STDMETHOD(OnWindowMessage)(UINT msg, WPARAM wParam, LPARAM lparam, + LRESULT* plResult); + STDMETHOD(GetDropTarget)(IDropTarget **ppDropTarget); + + END_INTERFACE_PART(OleInPlaceObject) + + // IOleInPlaceActiveObject + BEGIN_INTERFACE_PART(OleInPlaceActiveObject, IOleInPlaceActiveObject) + INIT_INTERFACE_PART(COleControl, OleInPlaceActiveObject) + STDMETHOD(GetWindow)(HWND*); + STDMETHOD(ContextSensitiveHelp)(BOOL); + STDMETHOD(TranslateAccelerator)(LPMSG); + STDMETHOD(OnFrameWindowActivate)(BOOL); + STDMETHOD(OnDocWindowActivate)(BOOL); + STDMETHOD(ResizeBorder)(LPCRECT, LPOLEINPLACEUIWINDOW, BOOL); + STDMETHOD(EnableModeless)(BOOL); + END_INTERFACE_PART(OleInPlaceActiveObject) + + // IOleCache + BEGIN_INTERFACE_PART(OleCache, IOleCache) + INIT_INTERFACE_PART(COleControl, OleCache) + STDMETHOD(Cache)(LPFORMATETC, DWORD, LPDWORD); + STDMETHOD(Uncache)(DWORD); + STDMETHOD(EnumCache)(LPENUMSTATDATA*); + STDMETHOD(InitCache)(LPDATAOBJECT); + STDMETHOD(SetData)(LPFORMATETC, STGMEDIUM*, BOOL); + END_INTERFACE_PART(OleCache) + + // IOleControl + BEGIN_INTERFACE_PART(OleControl, IOleControl) + INIT_INTERFACE_PART(COleControl, OleControl) + STDMETHOD(GetControlInfo)(LPCONTROLINFO pCI); + STDMETHOD(OnMnemonic)(LPMSG pMsg); + STDMETHOD(OnAmbientPropertyChange)(DISPID dispid); + STDMETHOD(FreezeEvents)(BOOL bFreeze); + END_INTERFACE_PART(OleControl) + + // IProvideClassInfo2 + BEGIN_INTERFACE_PART(ProvideClassInfo, IProvideClassInfo2) + INIT_INTERFACE_PART(COleControl, ProvideClassInfo) + STDMETHOD(GetClassInfo)(LPTYPEINFO* ppTypeInfo); + STDMETHOD(GetGUID)(DWORD dwGuidKind, GUID* pGUID); + END_INTERFACE_PART(ProvideClassInfo) + + // ISpecifyPropertyPages + BEGIN_INTERFACE_PART(SpecifyPropertyPages, ISpecifyPropertyPages) + INIT_INTERFACE_PART(COleControl, SpecifyPropertyPages) + STDMETHOD(GetPages)(CAUUID*); + END_INTERFACE_PART(SpecifyPropertyPages) + + // IPerPropertyBrowsing + BEGIN_INTERFACE_PART(PerPropertyBrowsing, IPerPropertyBrowsing) + INIT_INTERFACE_PART(COleControl, PerPropertyBrowsing) + STDMETHOD(GetDisplayString)(DISPID dispid, BSTR* lpbstr); + STDMETHOD(MapPropertyToPage)(DISPID dispid, LPCLSID lpclsid); + STDMETHOD(GetPredefinedStrings)(DISPID dispid, + CALPOLESTR* lpcaStringsOut, CADWORD* lpcaCookiesOut); + STDMETHOD(GetPredefinedValue)(DISPID dispid, DWORD dwCookie, + VARIANT* lpvarOut); + END_INTERFACE_PART(PerPropertyBrowsing) + + // IPropertyNotifySink for font updates (not exposed via QueryInterface) + BEGIN_INTERFACE_PART(FontNotification, IPropertyNotifySink) + INIT_INTERFACE_PART(COleControl, FontNotification) + STDMETHOD(OnChanged)(DISPID dispid); + STDMETHOD(OnRequestEdit)(DISPID dispid); + END_INTERFACE_PART(FontNotification) + + // IQuickActivate + BEGIN_INTERFACE_PART(QuickActivate, IQuickActivate) + STDMETHOD(QuickActivate)(QACONTAINER *pQAContainer, QACONTROL *pqacontrol); + STDMETHOD(SetContentExtent)(LPSIZEL lpsizel); + STDMETHOD(GetContentExtent)(LPSIZEL lpsizel); + END_INTERFACE_PART(QuickActivate) + + // IPointerInactive + BEGIN_INTERFACE_PART(PointerInactive, IPointerInactive) + STDMETHOD(GetActivationPolicy)(DWORD* pdwPolicy); + STDMETHOD(OnInactiveSetCursor)(LPCRECT lprcBounds, long x, long y, + DWORD dwMouseMsg, BOOL bSetAlways); + STDMETHOD(OnInactiveMouseMove)(LPCRECT lprcBounds, long x, long y, + DWORD dwKeyState); + END_INTERFACE_PART(PointerInactive) + + DECLARE_INTERFACE_MAP() + +// Connection maps +protected: + // Connection point for events + BEGIN_CONNECTION_PART(COleControl, EventConnPt) + virtual void OnAdvise(BOOL bAdvise); + virtual REFIID GetIID(); + virtual LPUNKNOWN QuerySinkInterface(LPUNKNOWN pUnkSink); + END_CONNECTION_PART(EventConnPt) + + // Connection point for property notifications + BEGIN_CONNECTION_PART(COleControl, PropConnPt) + CONNECTION_IID(IID_IPropertyNotifySink) + END_CONNECTION_PART(PropConnPt) + + DECLARE_CONNECTION_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// Registry functions + +enum AFX_REG_FLAGS +{ + afxRegDefault = 0x0000, + afxRegInsertable = 0x0001, + afxRegApartmentThreading = 0x0002, +}; + +BOOL AFXAPI AfxOleRegisterTypeLib(HINSTANCE hInstance, REFGUID tlid, + LPCTSTR pszFileName = NULL, LPCTSTR pszHelpDir = NULL); + +BOOL AFXAPI AfxOleUnregisterTypeLib(REFGUID tlid, WORD wVerMajor = 0, + WORD wVerMinor = 0, LCID lcid = 0); + +BOOL AFXAPI AfxOleRegisterControlClass(HINSTANCE hInstance, REFCLSID clsid, + LPCTSTR pszProgID, UINT idTypeName, UINT idBitmap, int nRegFlags, + DWORD dwMiscStatus, REFGUID tlid, WORD wVerMajor, WORD wVerMinor); + +BOOL AFXAPI AfxOleUnregisterClass(REFCLSID clsid, LPCTSTR pszProgID); + +BOOL AFXAPI AfxOleRegisterPropertyPageClass(HINSTANCE hInstance, + REFCLSID clsid, UINT idTypeName); + +BOOL AFXAPI AfxOleRegisterPropertyPageClass(HINSTANCE hInstance, + REFCLSID clsid, UINT idTypeName, int nRegFlags); + +///////////////////////////////////////////////////////////////////////////// +// Licensing functions + +BOOL AFXAPI AfxVerifyLicFile(HINSTANCE hInstance, LPCTSTR pszLicFileName, + LPCOLESTR pszLicFileContents, UINT cch=-1); + +///////////////////////////////////////////////////////////////////////////// +// CPropExchange - Abstract base class for property exchange + +class CPropExchange +{ +// Operations +public: + BOOL IsLoading(); + DWORD GetVersion(); + + BOOL IsAsynchronous(); + // FALSE -> Do Sync stuff, and start async stuff if possible + // TRUE -> Do not do Sync stuff. Always start Async stuff + + virtual BOOL ExchangeVersion(DWORD& dwVersionLoaded, DWORD dwVersionDefault, + BOOL bConvert); + + virtual BOOL ExchangeProp(LPCTSTR pszPropName, VARTYPE vtProp, + void* pvProp, const void* pvDefault = NULL) = 0; + virtual BOOL ExchangeBlobProp(LPCTSTR pszPropName, HGLOBAL* phBlob, + HGLOBAL hBlobDefault = NULL) = 0; + virtual BOOL ExchangeFontProp(LPCTSTR pszPropName, CFontHolder& font, + const FONTDESC* pFontDesc, + LPFONTDISP pFontDispAmbient) = 0; + virtual BOOL ExchangePersistentProp(LPCTSTR pszPropName, + LPUNKNOWN* ppUnk, REFIID iid, LPUNKNOWN pUnkDefault) = 0; + +// Implementation +protected: + CPropExchange(); + BOOL m_bLoading; + BOOL m_bAsync; + DWORD m_dwVersion; +}; + +///////////////////////////////////////////////////////////////////////////// +// Property-exchange (PX_) helper functions + +BOOL AFX_CDECL PX_Short(CPropExchange* pPX, LPCTSTR pszPropName, short& sValue); + +BOOL AFX_CDECL PX_Short(CPropExchange* pPX, LPCTSTR pszPropName, short& sValue, + short sDefault); + +BOOL AFX_CDECL PX_UShort(CPropExchange* pPX, LPCTSTR pszPropName, USHORT& usValue); + +BOOL AFX_CDECL PX_UShort(CPropExchange* pPX, LPCTSTR pszPropName, USHORT& usValue, + USHORT usDefault); + +BOOL AFX_CDECL PX_Long(CPropExchange* pPX, LPCTSTR pszPropName, long& lValue); + +BOOL AFX_CDECL PX_Long(CPropExchange* pPX, LPCTSTR pszPropName, long& lValue, + long lDefault); + +BOOL AFX_CDECL PX_ULong(CPropExchange* pPX, LPCTSTR pszPropName, ULONG& ulValue); + +BOOL AFX_CDECL PX_ULong(CPropExchange* pPX, LPCTSTR pszPropName, ULONG& ulValue, + ULONG ulDefault); + +BOOL AFX_CDECL PX_Color(CPropExchange* pPX, LPCTSTR pszPropName, OLE_COLOR& clrValue); + +BOOL AFX_CDECL PX_Color(CPropExchange* pPX, LPCTSTR pszPropName, OLE_COLOR& clrValue, + OLE_COLOR clrDefault); + +BOOL AFX_CDECL PX_Bool(CPropExchange* pPX, LPCTSTR pszPropName, BOOL& bValue); + +BOOL AFX_CDECL PX_Bool(CPropExchange* pPX, LPCTSTR pszPropName, BOOL& bValue, + BOOL bDefault); + +BOOL AFX_CDECL PX_String(CPropExchange* pPX, LPCTSTR pszPropName, CString& strValue); + +BOOL AFX_CDECL PX_String(CPropExchange* pPX, LPCTSTR pszPropName, CString& strValue, + const CString& strDefault); +BOOL AFX_CDECL PX_String(CPropExchange* pPX, LPCTSTR pszPropName, CString& strValue, + LPCTSTR lpszDefault); + +BOOL AFX_CDECL PX_Currency(CPropExchange* pPX, LPCTSTR pszPropName, CY& cyValue); + +BOOL AFX_CDECL PX_Currency(CPropExchange* pPX, LPCTSTR pszPropName, CY& cyValue, + CY cyDefault); + +BOOL AFX_CDECL PX_Float(CPropExchange* pPX, LPCTSTR pszPropName, float& floatValue); + +BOOL AFX_CDECL PX_Float(CPropExchange* pPX, LPCTSTR pszPropName, float& floatValue, + float floatDefault); + +BOOL AFX_CDECL PX_Double(CPropExchange* pPX, LPCTSTR pszPropName, double& doubleValue); + +BOOL AFX_CDECL PX_Double(CPropExchange* pPX, LPCTSTR pszPropName, double& doubleValue, + double doubleDefault); + +BOOL AFX_CDECL PX_Blob(CPropExchange* pPX, LPCTSTR pszPropName, HGLOBAL& hBlob, + HGLOBAL hBlobDefault = NULL); + +BOOL AFX_CDECL PX_Font(CPropExchange* pPX, LPCTSTR pszPropName, CFontHolder& font, + const FONTDESC* pFontDesc = NULL, + LPFONTDISP pFontDispAmbient = NULL); + +BOOL AFX_CDECL PX_Picture(CPropExchange* pPX, LPCTSTR pszPropName, + CPictureHolder& pict); + +BOOL AFX_CDECL PX_Picture(CPropExchange* pPX, LPCTSTR pszPropName, + CPictureHolder& pict, CPictureHolder& pictDefault); + +BOOL AFX_CDECL PX_IUnknown(CPropExchange* pPX, LPCTSTR pszPropName, LPUNKNOWN& pUnk, + REFIID iid, LPUNKNOWN pUnkDefault = NULL); + +BOOL AFX_CDECL PX_VBXFontConvert(CPropExchange* pPX, CFontHolder& font); + +#ifndef _MAC +BOOL AFX_CDECL PX_DataPath(CPropExchange* pPX, LPCTSTR pszPropName, + CDataPathProperty& dataPathProp, LPCTSTR pszDefault = NULL); + +BOOL AFX_CDECL PX_DataPath(CPropExchange* pPX, LPCTSTR pszPropName, + CDataPathProperty& dataPathProp, const CString& strDefault); +#endif + +///////////////////////////////////////////////////////////////////////////// +// Structures used by COlePropertyPage + +typedef struct tagAFX_PPFIELDSTATUS +{ + UINT nID; + BOOL bDirty; + +} AFX_PPFIELDSTATUS; + +///////////////////////////////////////////////////////////////////////////// +// Property Page Dialog Class + +class COlePropertyPage : public CDialog +{ + DECLARE_DYNAMIC(COlePropertyPage) + +// Constructors +public: + COlePropertyPage(UINT idDlg, UINT idCaption); + +// Operations + LPDISPATCH* GetObjectArray(ULONG* pnObjects); + void SetModifiedFlag(BOOL bModified = TRUE); + BOOL IsModified(); + LPPROPERTYPAGESITE GetPageSite(); + void SetDialogResource(HGLOBAL hDialog); + void SetPageName(LPCTSTR lpszPageName); + void SetHelpInfo(LPCTSTR lpszDocString, LPCTSTR lpszHelpFile = NULL, + DWORD dwHelpContext = 0); + + BOOL GetControlStatus(UINT nID); + BOOL SetControlStatus(UINT nID, BOOL bDirty); + void IgnoreApply(UINT nID); + + int MessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, + UINT nType = MB_OK); + // note that this is a non-virtual override of CWnd::MessageBox() + +// Overridables + virtual void OnSetPageSite(); + virtual void OnObjectsChanged(); + virtual BOOL OnHelp(LPCTSTR lpszHelpDir); + virtual BOOL OnInitDialog(); + virtual BOOL OnEditProperty(DISPID dispid); + +// Implementation + + // DDP_ property get/set helper routines + BOOL SetPropText(LPCTSTR pszPropName, BYTE &Value); + BOOL GetPropText(LPCTSTR pszPropName, BYTE* pValue); + BOOL SetPropText(LPCTSTR pszPropName, short &Value); + BOOL GetPropText(LPCTSTR pszPropName, short* pValue); + BOOL SetPropText(LPCTSTR pszPropName, int &Value); + BOOL GetPropText(LPCTSTR pszPropName, int* pValue); + BOOL SetPropText(LPCTSTR pszPropName, UINT &Value); + BOOL GetPropText(LPCTSTR pszPropName, UINT* pValue); + BOOL SetPropText(LPCTSTR pszPropName, long &Value); + BOOL GetPropText(LPCTSTR pszPropName, long* pValue); + BOOL SetPropText(LPCTSTR pszPropName, DWORD &Value); + BOOL GetPropText(LPCTSTR pszPropName, DWORD* pValue); + BOOL SetPropText(LPCTSTR pszPropName, CString &Value); + BOOL GetPropText(LPCTSTR pszPropName, CString* pValue); + BOOL SetPropText(LPCTSTR pszPropName, float &Value); + BOOL GetPropText(LPCTSTR pszPropName, float* pValue); + BOOL SetPropText(LPCTSTR pszPropName, double &Value); + BOOL GetPropText(LPCTSTR pszPropName, double* pValue); + BOOL SetPropCheck(LPCTSTR pszPropName, int Value); + BOOL GetPropCheck(LPCTSTR pszPropName, int* pValue); + BOOL SetPropRadio(LPCTSTR pszPropName, int Value); + BOOL GetPropRadio(LPCTSTR pszPropName, int* pValue); + BOOL SetPropIndex(LPCTSTR pszPropName, int Value); + BOOL GetPropIndex(LPCTSTR pszPropName, int* pValue); + CPtrArray m_arrayDDP; // pending DDP data + + // Destructors + ~COlePropertyPage(); + +protected: + LRESULT WindowProc(UINT msg, WPARAM wParam, LPARAM lParam); + BOOL OnCommand(WPARAM wParam, LPARAM lParam); + BOOL PreTranslateMessage(LPMSG lpMsg); + virtual void OnFinalRelease(); + void CleanupObjectArray(); + static BOOL CALLBACK EnumChildProc(HWND hWnd, LPARAM lParam); + static BOOL CALLBACK EnumControls(HWND hWnd, LPARAM lParam); + +private: + BOOL m_bDirty; + UINT m_idDlg; + UINT m_idCaption; + CString m_strPageName; + SIZE m_sizePage; + CString m_strDocString; + CString m_strHelpFile; + DWORD m_dwHelpContext; + LPPROPERTYPAGESITE m_pPageSite; + + LPDISPATCH* m_ppDisp; // Array of IDispatch pointers, used to + // access the properties of each control + + LPDWORD m_pAdvisors; // Array of connection tokens used by + // IConnecitonPoint::Advise/UnAdvise. + + BOOL m_bPropsChanged; // IPropertyNotifySink::OnChanged has been + // called, but not acted upon yet. + + ULONG m_nObjects; // Objects in m_ppDisp, m_ppDataObj, m_pAdvisors + + BOOL m_bInitializing; // TRUE if the contents of the fields of + // the dialog box are being initialized + + int m_nControls; // Number of fields on this property page + + AFX_PPFIELDSTATUS* m_pStatus; // Array containing information on + // which fields are dirty + + CDWordArray m_IDArray; // Array containing information on which + // controls to ignore when deciding if + // the apply button is to be enabled + + HGLOBAL m_hDialog; // Handle of the dialog resource + +#ifdef _DEBUG + BOOL m_bNonStandardSize; +#endif + +protected: + // Generated message map functions + //{{AFX_MSG(COlePropertyPage) + afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +// Interface Maps +public: + BEGIN_INTERFACE_PART(PropertyPage, IPropertyPage2) + INIT_INTERFACE_PART(COlePropertyPage, PropertyPage) + STDMETHOD(SetPageSite)(LPPROPERTYPAGESITE); + STDMETHOD(Activate)(HWND, LPCRECT, BOOL); + STDMETHOD(Deactivate)(); + STDMETHOD(GetPageInfo)(LPPROPPAGEINFO); + STDMETHOD(SetObjects)(ULONG, LPUNKNOWN*); + STDMETHOD(Show)(UINT); + STDMETHOD(Move)(LPCRECT); + STDMETHOD(IsPageDirty)(); + STDMETHOD(Apply)(); + STDMETHOD(Help)(LPCOLESTR); + STDMETHOD(TranslateAccelerator)(LPMSG); + STDMETHOD(EditProperty)(DISPID); + END_INTERFACE_PART(PropertyPage) + + BEGIN_INTERFACE_PART(PropNotifySink, IPropertyNotifySink) + INIT_INTERFACE_PART(COlePropertyPage, PropNotifySink) + STDMETHOD(OnRequestEdit)(DISPID); + STDMETHOD(OnChanged)(DISPID); + END_INTERFACE_PART(PropNotifySink) + + DECLARE_INTERFACE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// Property Page Dialog Data Exchange routines + +// simple text operations +void AFXAPI DDP_Text(CDataExchange*pDX, int id, BYTE& member, LPCTSTR pszPropName); +void AFXAPI DDP_Text(CDataExchange*pDX, int id, short& member, LPCTSTR pszPropName); +void AFXAPI DDP_Text(CDataExchange*pDX, int id, int& member, LPCTSTR pszPropName); +void AFXAPI DDP_Text(CDataExchange*pDX, int id, UINT& member, LPCTSTR pszPropName); +void AFXAPI DDP_Text(CDataExchange*pDX, int id, long& member, LPCTSTR pszPropName); +void AFXAPI DDP_Text(CDataExchange*pDX, int id, DWORD& member, LPCTSTR pszPropName); +void AFXAPI DDP_Text(CDataExchange*pDX, int id, float& member, LPCTSTR pszPropName); +void AFXAPI DDP_Text(CDataExchange*pDX, int id, double& member, LPCTSTR pszPropName); +void AFXAPI DDP_Text(CDataExchange*pDX, int id, CString& member, LPCTSTR pszPropName); +void AFXAPI DDP_Check(CDataExchange*pDX, int id, int& member, LPCTSTR pszPropName); +void AFXAPI DDP_Radio(CDataExchange*pDX, int id, int& member, LPCTSTR pszPropName); +void AFXAPI DDP_LBString(CDataExchange* pDX, int id, CString& member, LPCTSTR pszPropName); +void AFXAPI DDP_LBStringExact(CDataExchange* pDX, int id, CString& member, LPCTSTR pszPropName); +void AFXAPI DDP_LBIndex(CDataExchange* pDX, int id, int& member, LPCTSTR pszPropName); +void AFXAPI DDP_CBString(CDataExchange* pDX, int id, CString& member, LPCTSTR pszPropName); +void AFXAPI DDP_CBStringExact(CDataExchange* pDX, int id, CString& member, LPCTSTR pszPropName); +void AFXAPI DDP_CBIndex(CDataExchange* pDX, int id, int& member, LPCTSTR pszPropName); +void AFXAPI DDP_PostProcessing(CDataExchange *pDX); + +//////////////////////////////////////////////////////////////////////////// +// AfxOleTypeMatchGuid - Tests whether a given TYPEDESC matches a type with a +// given GUID, when all aliases have been expanded. + +BOOL AFXAPI AfxOleTypeMatchGuid(LPTYPEINFO pTypeInfo, + TYPEDESC* pTypeDesc, REFGUID guidType, ULONG cIndirectionLevels); + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXCTL_INLINE inline +#include <afxctl.inl> +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif // __AFXCTL_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxctl.inl b/public/sdk/inc/mfc42/afxctl.inl new file mode 100644 index 000000000..85927c3d5 --- /dev/null +++ b/public/sdk/inc/mfc42/afxctl.inl @@ -0,0 +1,117 @@ +// 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. + +// Inlines for AFXCTL.H + +#ifdef _AFXCTL_INLINE + +///////////////////////////////////////////////////////////////////////////// + +// COleControl inlines +_AFXCTL_INLINE BOOL COleControl::IsOptimizedDraw() + { return m_bOptimizedDraw; } +_AFXCTL_INLINE BOOL COleControl::IsConvertingVBX() + { return m_bConvertVBX; } +_AFXCTL_INLINE void COleControl::FireKeyDown(USHORT* pnChar, short nShiftState) + { FireEvent(DISPID_KEYDOWN, EVENT_PARAM(VTS_PI2 VTS_I2), pnChar, + nShiftState); } +_AFXCTL_INLINE void COleControl::FireKeyUp(USHORT* pnChar, short nShiftState) + { FireEvent(DISPID_KEYUP, EVENT_PARAM(VTS_PI2 VTS_I2), pnChar, + nShiftState); } +_AFXCTL_INLINE void COleControl::FireKeyPress(USHORT* pnChar) + { FireEvent(DISPID_KEYPRESS, EVENT_PARAM(VTS_PI2), pnChar); } +_AFXCTL_INLINE void COleControl::FireMouseDown(short nButton, + short nShiftState, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y) + { FireEvent(DISPID_MOUSEDOWN, + EVENT_PARAM(VTS_I2 VTS_I2 VTS_XPOS_PIXELS VTS_YPOS_PIXELS), + nButton, nShiftState, x, y); } +_AFXCTL_INLINE void COleControl::FireMouseUp(short nButton, + short nShiftState, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y) + { FireEvent(DISPID_MOUSEUP, + EVENT_PARAM(VTS_I2 VTS_I2 VTS_XPOS_PIXELS VTS_YPOS_PIXELS), + nButton, nShiftState, x, y); } +_AFXCTL_INLINE void COleControl::FireMouseMove(short nButton, + short nShiftState, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y) + { FireEvent(DISPID_MOUSEMOVE, + EVENT_PARAM(VTS_I2 VTS_I2 VTS_XPOS_PIXELS VTS_YPOS_PIXELS), + nButton, nShiftState, x, y); } +_AFXCTL_INLINE void COleControl::FireClick() + { FireEvent(DISPID_CLICK, EVENT_PARAM(VTS_NONE)); } +_AFXCTL_INLINE void COleControl::FireDblClick() + { FireEvent(DISPID_DBLCLICK, EVENT_PARAM(VTS_NONE)); } +_AFXCTL_INLINE void COleControl::FireReadyStateChange() + { FireEvent(DISPID_READYSTATECHANGE, EVENT_PARAM(VTS_I4), m_lReadyState); } +_AFXCTL_INLINE void COleControl::InternalSetReadyState(long lNewReadyState) + { ASSERT((lNewReadyState >=0) && (lNewReadyState <= READYSTATE_COMPLETE)); + if (m_lReadyState != lNewReadyState) + {m_lReadyState = lNewReadyState; FireReadyStateChange(); } } +_AFXCTL_INLINE BOOL COleControl::ExchangeVersion( + CPropExchange* pPX, DWORD dwVersionDefault, BOOL bConvert) + { return pPX->ExchangeVersion(m_dwVersionLoaded, dwVersionDefault, bConvert); } +_AFXCTL_INLINE DWORD COleControl::GetStockEventMask() const + { return *GetEventMap()->lpStockEventMask; } +_AFXCTL_INLINE DWORD COleControl::GetStockPropMask() const + { return *GetDispatchMap()->lpStockPropMask; } +_AFXCTL_INLINE void COleControl::RequestAsynchronousExchange(DWORD dwVersion) + { m_bDataPathPropertiesLoaded = FALSE; m_dwDataPathVersionToReport = dwVersion; } + +// CPropExchange inlines +_AFXCTL_INLINE CPropExchange::CPropExchange() : m_dwVersion(0), m_bAsync(FALSE) + { } +_AFXCTL_INLINE BOOL CPropExchange::IsLoading() + { return m_bLoading; } +_AFXCTL_INLINE DWORD CPropExchange::GetVersion() + { return m_dwVersion; } +_AFXCTL_INLINE BOOL CPropExchange::IsAsynchronous() + { return m_bAsync; } + +#ifndef _MAC +// CDataPathProperty inlines +_AFXCTL_INLINE CDataPathProperty::CDataPathProperty(COleControl* pControl) + : m_pControl(pControl) {} +_AFXCTL_INLINE CDataPathProperty::CDataPathProperty(LPCTSTR lpszPath, COleControl* pControl) + : m_pControl(pControl), m_strPath(lpszPath) {} +_AFXCTL_INLINE void CDataPathProperty::SetPath(LPCTSTR lpszPath) + { ASSERT_VALID(this); m_strPath = lpszPath; } +_AFXCTL_INLINE CString CDataPathProperty::GetPath() const + { ASSERT_VALID(this); return m_strPath; } +_AFXCTL_INLINE COleControl* CDataPathProperty::GetControl() + { ASSERT_VALID(this); return m_pControl; } +_AFXCTL_INLINE void CDataPathProperty::SetControl(COleControl* pControl) + { ASSERT_VALID(this); m_pControl=pControl; } + +// CCachedDataPathProperty inlines +_AFXCTL_INLINE CCachedDataPathProperty::CCachedDataPathProperty(COleControl* pControl) + : CDataPathProperty(pControl) {} +_AFXCTL_INLINE CCachedDataPathProperty::CCachedDataPathProperty(LPCTSTR lpszPath, COleControl* pControl) + : CDataPathProperty(lpszPath, pControl) {} +#endif // !_MAC + +// inline DDP_ routines +_AFXCTL_INLINE void AFXAPI DDP_LBString(CDataExchange* pDX, int id, + CString& member, LPCTSTR pszPropName) + { DDP_Text(pDX, id, member, pszPropName); } +_AFXCTL_INLINE void AFXAPI DDP_LBStringExact(CDataExchange* pDX, int id, + CString& member, LPCTSTR pszPropName) + { DDP_Text(pDX, id, member, pszPropName); } +_AFXCTL_INLINE void AFXAPI DDP_LBIndex(CDataExchange* pDX, int id, + int& member, LPCTSTR pszPropName) + { DDP_Text(pDX, id, member, pszPropName); } +_AFXCTL_INLINE void AFXAPI DDP_CBString(CDataExchange* pDX, int id, + CString& member, LPCTSTR pszPropName) + { DDP_Text(pDX, id, member, pszPropName); } +_AFXCTL_INLINE void AFXAPI DDP_CBStringExact(CDataExchange* pDX, int id, + CString& member, LPCTSTR pszPropName) + { DDP_Text(pDX, id, member, pszPropName); } +_AFXCTL_INLINE void AFXAPI DDP_CBIndex(CDataExchange* pDX, int id, + int& member, LPCTSTR pszPropName) + { DDP_Text(pDX, id, member, pszPropName); } + +#endif //_AFXCTL_INLINE diff --git a/public/sdk/inc/mfc42/afxctl.rc b/public/sdk/inc/mfc42/afxctl.rc new file mode 100644 index 000000000..0173b2420 --- /dev/null +++ b/public/sdk/inc/mfc42/afxctl.rc @@ -0,0 +1,284 @@ +// 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. + +#ifndef __AFXCTL_RC__ +#define __AFXCTL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Control Resources + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +AFX_IDB_TRUETYPE BITMAP DISCARDABLE "RES\\TRUETYPE.BMP" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +AFX_IDD_PROPPAGE_FONT DIALOG DISCARDABLE 13, 54, 250, 110 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Property &Name:",IDC_STATIC,3,5,61,8 + COMBOBOX AFX_IDC_FONTPROP,65,3,100,71,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + LTEXT "&Font:",IDC_STATIC,3,19,91,8 + COMBOBOX AFX_IDC_FONTNAMES,3,29,91,77,CBS_SIMPLE | + CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | + CBS_HASSTRINGS | CBS_DISABLENOSCROLL | WS_VSCROLL | + WS_TABSTOP + LTEXT "Font St&yle:",IDC_STATIC,102,19,53,8 + COMBOBOX AFX_IDC_FONTSTYLES,104,29,53,53,CBS_DROPDOWNLIST | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + LTEXT "&Size:",IDC_STATIC,167,19,40,8 + COMBOBOX AFX_IDC_FONTSIZES,167,29,36,53,CBS_DROPDOWN | CBS_SORT | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Effects",IDC_STATIC,104,44,142,24,WS_GROUP + CONTROL "Stri&keout",AFX_IDC_STRIKEOUT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,109,55,65,10 + CONTROL "&Underline",AFX_IDC_UNDERLINE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,175,55,65,10 + GROUPBOX "Sample",IDC_STATIC,104,71,142,36,WS_GROUP + CTEXT "AaBbYyZz",AFX_IDC_SAMPLEBOX,110,80,130,22,SS_NOPREFIX | + NOT WS_VISIBLE +END + +AFX_IDD_PROPPAGE_COLOR DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Property &Name:",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_COLORPROP,3,13,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "System &Color:",IDC_STATIC,3,29,100,8 + COMBOBOX AFX_IDC_SYSTEMCOLORS,3,39,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + CONTROL "",AFX_IDC_COLOR_BLACK,"Button",BS_OWNERDRAW | WS_GROUP | + WS_TABSTOP,118,4,15,11 + CONTROL "",AFX_IDC_COLOR_BLUE,"Button",BS_OWNERDRAW,138,4,15,11 + CONTROL "",AFX_IDC_COLOR_CYAN,"Button",BS_OWNERDRAW,158,4,15,11 + CONTROL "",AFX_IDC_COLOR_DARKBLUE,"Button",BS_OWNERDRAW,178,4,15, + 11 + CONTROL "",AFX_IDC_COLOR_DARKCYAN,"Button",BS_OWNERDRAW,118,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKGREEN,"Button",BS_OWNERDRAW,138,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKMAGENTA,"Button",BS_OWNERDRAW,158, + 18,15,11 + CONTROL "",AFX_IDC_COLOR_GRAY,"Button",BS_OWNERDRAW,178,18,15,11 + CONTROL "",AFX_IDC_COLOR_DARKRED,"Button",BS_OWNERDRAW,118,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_GREEN,"Button",BS_OWNERDRAW,138,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_LIGHTBROWN,"Button",BS_OWNERDRAW,158,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_LIGHTGRAY,"Button",BS_OWNERDRAW,178,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_MAGENTA,"Button",BS_OWNERDRAW,118,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_RED,"Button",BS_OWNERDRAW,138,46,15,11 + CONTROL "",AFX_IDC_COLOR_WHITE,"Button",BS_OWNERDRAW,158,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_YELLOW,"Button",BS_OWNERDRAW,178,46,15, + 11 +END + +AFX_IDD_PROPPAGE_PICTURE DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Property &Name:",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_PROPNAME,3,13,100,30,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "&Browse...",AFX_IDC_BROWSE,3,35,54,14 + PUSHBUTTON "&Clear",AFX_IDC_CLEAR,61,35,54,14 + RTEXT "Preview:",IDC_STATIC,107,3,42,16 + CONTROL "",AFX_IDC_PICTURE,"Static",SS_BLACKFRAME,151,4,93,54 +END + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +AFX_IDD_PROPPAGE_FONT DLGINIT +BEGIN + 1002, 0x403, 12, 0 +0x6f42, 0x646c, 0x4920, 0x6174, 0x696c, 0x0063, + 0 +END + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PROPPAGE_UNKNOWN "(Unknown)" + AFX_IDS_COLOR_DESKTOP "Desktop" + AFX_IDS_COLOR_APPWORKSPACE "Application Workspace" + AFX_IDS_COLOR_WNDBACKGND "Window Background" + AFX_IDS_COLOR_WNDTEXT "Window Text" + AFX_IDS_COLOR_MENUBAR "Menu Bar" + AFX_IDS_COLOR_MENUTEXT "Menu Text" + AFX_IDS_COLOR_ACTIVEBAR "Active Title Bar" + AFX_IDS_COLOR_INACTIVEBAR "Inactive Title Bar" + AFX_IDS_COLOR_ACTIVETEXT "Active Title Bar Text" + AFX_IDS_COLOR_INACTIVETEXT "Inactive Title Bar Text" + AFX_IDS_COLOR_ACTIVEBORDER "Active Border" + AFX_IDS_COLOR_INACTIVEBORDER "Inactive Border" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_WNDFRAME "Window Frame" + AFX_IDS_COLOR_SCROLLBARS "Scroll Bars" + AFX_IDS_COLOR_BTNFACE "Button Face" + AFX_IDS_COLOR_BTNSHADOW "Button Shadow" + AFX_IDS_COLOR_BTNTEXT "Button Text" + AFX_IDS_COLOR_BTNHIGHLIGHT "Button Highlight" + AFX_IDS_COLOR_DISABLEDTEXT "Disabled Text" + AFX_IDS_COLOR_HIGHLIGHT "Highlight" + AFX_IDS_COLOR_HIGHLIGHTTEXT "Highlighted Text" + AFX_IDS_REGULAR "Regular" + AFX_IDS_BOLD "Bold" + AFX_IDS_ITALIC "Italic" + AFX_IDS_BOLDITALIC "Bold Italic" + AFX_IDS_SAMPLETEXT "AaBbYyZz" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_DISPLAYSTRING_FONT "(Font)" + AFX_IDS_DISPLAYSTRING_COLOR "(Color)" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_DISPLAYSTRING_PICTURE "(Picture - %s)" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTUREFILTER "All Picture Types|*.bmp;*.cur;*.dib;*.emf;*.ico;*.wmf|Bitmaps (*.bmp;*.dib)|*.bmp;*.dib|Icons/Cursors (*.ico;*.cur)|*.ico;*.cur|Metafiles (*.wmf;*.emf)|*.wmf;*.emf|All files (*.*)|*.*||" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTYPE_UNKNOWN "Unknown" + AFX_IDS_PICTYPE_NONE "None" + AFX_IDS_PICTYPE_BITMAP "Bitmap" + AFX_IDS_PICTYPE_METAFILE "Metafile" + AFX_IDS_PICTYPE_ICON "Icon" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_PPG "Color Property Page" + AFX_IDS_COLOR_PPG_CAPTION "Colors" + AFX_IDS_FONT_PPG "Font Property Page" + AFX_IDS_FONT_PPG_CAPTION "Fonts" + AFX_IDS_PICTURE_PPG "Picture Property Page" + AFX_IDS_PICTURE_PPG_CAPTION "Pictures" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_BORDERSTYLE_0 "0 - None" + AFX_IDS_BORDERSTYLE_1 "1 - Fixed Single" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_VERB_EDIT "&Edit" + AFX_IDS_VERB_PROPERTIES "&Properties..." +END + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_PICTURECANTOPEN "Unable to open the picture file %1. The file may not exist, or may not be readable." + AFX_IDP_PICTURECANTLOAD "Unable to load the picture file %1. The file may have an invalid format." + AFX_IDP_PICTURETOOLARGE "Unable to load the picture file %1. The file is too large to fit in memory." + AFX_IDP_PICTUREREADFAILED + "Unable to load the picture file %1. Unexplained read failure." +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PICTUREBROWSETITLE "Browse Pictures" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +#ifndef _AFX_NO_CTLERROR_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_ILLEGALFUNCTIONCALL "Illegal function call" + AFX_IDP_E_OVERFLOW "Overflow" + AFX_IDP_E_OUTOFMEMORY "Out of memory" + AFX_IDP_E_DIVISIONBYZERO "Division by zero" + AFX_IDP_E_OUTOFSTRINGSPACE "Out of string space" + AFX_IDP_E_OUTOFSTACKSPACE "Out of stack space" + AFX_IDP_E_BADFILENAMEORNUMBER "Bad file name or number" + AFX_IDP_E_FILENOTFOUND "File not found" + AFX_IDP_E_BADFILEMODE "Bad file mode" + AFX_IDP_E_FILEALREADYOPEN "File already open" + AFX_IDP_E_DEVICEIOERROR "Device I/O error" + AFX_IDP_E_FILEALREADYEXISTS "File already exists" + AFX_IDP_E_BADRECORDLENGTH "Bad record length" + AFX_IDP_E_DISKFULL "Disk full" + AFX_IDP_E_BADRECORDNUMBER "Bad record number" + AFX_IDP_E_BADFILENAME "Bad file name" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_TOOMANYFILES "Too many files" + AFX_IDP_E_DEVICEUNAVAILABLE "Device unavailable" + AFX_IDP_E_PERMISSIONDENIED "Permission denied" + AFX_IDP_E_DISKNOTREADY "Disk not ready" + AFX_IDP_E_PATHFILEACCESSERROR "Path/File access error" + AFX_IDP_E_PATHNOTFOUND "Path not found" + AFX_IDP_E_INVALIDPATTERNSTRING "Invalid pattern string" + AFX_IDP_E_INVALIDUSEOFNULL "Invalid use of null" + AFX_IDP_E_INVALIDFILEFORMAT "Invalid file format" + AFX_IDP_E_INVALIDPROPERTYVALUE "Invalid property value" + AFX_IDP_E_INVALIDPROPERTYARRAYINDEX "Invalid array index" + AFX_IDP_E_SETNOTSUPPORTEDATRUNTIME "Property cannot be set at run time" + AFX_IDP_E_SETNOTSUPPORTED "Property is read-only" + AFX_IDP_E_NEEDPROPERTYARRAYINDEX + "Must specify array index when using property array" + AFX_IDP_E_SETNOTPERMITTED "Property cannot be set on this control" + AFX_IDP_E_GETNOTSUPPORTEDATRUNTIME "Property cannot be read at run time" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_GETNOTSUPPORTED "Property is write-only" + AFX_IDP_E_PROPERTYNOTFOUND "Property not found" + AFX_IDP_E_INVALIDCLIPBOARDFORMAT "Invalid clipboard format" + AFX_IDP_E_INVALIDPICTURE "Invalid picture" + AFX_IDP_E_PRINTERERROR "Printer error" + AFX_IDP_E_CANTSAVEFILETOTEMP + "Cannot create temporary file necessary to save" + AFX_IDP_E_SEARCHTEXTNOTFOUND "Search text not found" + AFX_IDP_E_REPLACEMENTSTOOLONG "Replacement text too long" +END +#endif //!_AFX_NO_CTLERROR_RESOURCES + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/afxcview.h b/public/sdk/inc/mfc42/afxcview.h new file mode 100644 index 000000000..a53a580b1 --- /dev/null +++ b/public/sdk/inc/mfc42/afxcview.h @@ -0,0 +1,135 @@ +// 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. + +#ifndef __AFXCVIEW_H__ +#define __AFXCVIEW_H__ + +#ifdef _AFX_NO_AFXCMN_SUPPORT + #error Windows common control classes not supported in this library variant. +#endif + +#ifndef __AFXWIN_H__ + #include <afxwin.h> +#endif + +#ifndef __AFXCMN_H__ + #include <afxcmn.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// AFXRICH - MFC RichEdit classes + +// Classes declared in this file + +//CObject + //CCmdTarget; + //CWnd + //CView + //CCtrlView + class CListView;// list control view + class CTreeView;// tree control view + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +///////////////////////////////////////////////////////////////////////////// +// CListView + +class CListView : public CCtrlView +{ + DECLARE_DYNCREATE(CListView) + +// Construction +public: + CListView(); + +// Attributes +public: + CListCtrl& GetListCtrl() const; + +// Overridables + virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); + +protected: + void RemoveImageList(int nImageList); + virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); + +public: + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + + //{{AFX_MSG(CListView) + afx_msg void OnNcDestroy(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// CTreeView + +class CTreeView : public CCtrlView +{ + DECLARE_DYNCREATE(CTreeView) + +// Construction +public: + CTreeView(); + +// Attributes +public: + CTreeCtrl& GetTreeCtrl() const; + +protected: + void RemoveImageList(int nImageList); + +public: + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + + //{{AFX_MSG(CTreeView) + afx_msg void OnDestroy(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXCVIEW_INLINE inline +#include <afxcview.inl> +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif //__AFXCVIEW_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxcview.inl b/public/sdk/inc/mfc42/afxcview.inl new file mode 100644 index 000000000..40274d4c0 --- /dev/null +++ b/public/sdk/inc/mfc42/afxcview.inl @@ -0,0 +1,29 @@ +// 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. + +// Inlines for AFXCVIEW.H + +#ifdef _AFXCVIEW_INLINE + +// CListView +_AFXCVIEW_INLINE CListView::CListView() : CCtrlView(WC_LISTVIEW, + AFX_WS_DEFAULT_VIEW) + { } +_AFXCVIEW_INLINE CListCtrl& CListView::GetListCtrl() const + { return *(CListCtrl*)this; } +_AFXCVIEW_INLINE CTreeView::CTreeView() : CCtrlView(WC_TREEVIEW, + AFX_WS_DEFAULT_VIEW) + { } +_AFXCVIEW_INLINE CTreeCtrl& CTreeView::GetTreeCtrl() const + { return *(CTreeCtrl*)this; } + +#endif //_AFXCVIEW_INLINE + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxdao.h b/public/sdk/inc/mfc42/afxdao.h new file mode 100644 index 000000000..7475c9f13 --- /dev/null +++ b/public/sdk/inc/mfc42/afxdao.h @@ -0,0 +1,1325 @@ +// 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. + +#ifndef __AFXDAO_H +#define __AFXDAO_H + +#ifdef _AFX_NO_DAO_SUPPORT + #error DAO Database classes not supported in this library variant. +#endif + +#ifndef __AFXDISP_H__ + #include <afxdisp.h> // Must include this before dao headers +#endif +#ifndef _DBDAOINT_H_ + #include <dbdaoint.h> +#endif +#ifndef _DAOGETRW_H_ + #include <daogetrw.h> +#endif +#ifndef _DBDAOID_H_ + #include <dbdaoid.h> +#endif +#ifndef _DBDAOERR_H_ + #include <dbdaoerr.h> +#endif + +#ifndef __AFXDB__H__ + #include <afxdb_.h> // shared header with ODBC database classes +#endif + +#ifndef __AFXEXT_H__ + #include <afxext.h> // for CFormView +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifndef _AFX_NOFORCE_LIBS +#ifndef _MAC + +///////////////////////////////////////////////////////////////////////////// +// Win32 libraries + +#ifdef _AFXDLL + #if defined(_DEBUG) && !defined(_AFX_MONOLITHIC) + #ifndef _UNICODE + #pragma comment(lib, "mfco42d.lib") + #pragma comment(lib, "mfcd42d.lib") + #else + #pragma comment(lib, "mfco42ud.lib") + #pragma comment(lib, "mfcd42ud.lib") + #endif + #endif + +#endif + +#pragma comment(lib, "daouuid.lib") + +#else //!_MAC + +///////////////////////////////////////////////////////////////////////////// +// Macintosh libraries + +#endif //_MAC +#endif //!_AFX_NOFORCE_LIBS + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +//////////////////////////////////////////////////////////////////////// +// AFXDAO - MFC Database support using DAO + +// Classes declared in this file + + // CException + class CDaoException; // DAO error/exception handling + + // CObject + class CDaoRecordView; + class CDaoWorkspace; // DAO engine/transaction/security manager + class CDaoDatabase; // DAO database manager + class CDaoRecordset; // DAO result set manager + class CDaoTableDef; // DAO base table manager + class CDaoQueryDef; // DAO query manager + + // Non-CObject classes + class CDaoFieldExchange; + struct CDaoFieldCache; + struct CDaoErrorInfo; + struct CDaoWorkspaceInfo; + struct CDaoDatabaseInfo; + struct CDaoTableDefInfo; + struct CDaoFieldInfo; + struct CDaoIndexInfo; + struct CDaoRelationInfo; + struct CDaoQueryDefInfo; + struct CDaoParameterInfo; + +///////////////////////////////////////////////////////////////////////////// +// AFXDLL support + +#undef AFX_DATA +#define AFX_DATA AFX_DB_DATA + +//////////////////////////////////////////////////////////////////////// +// Data caching structures +struct CDaoFieldCache +{ + void* m_pvData; // Pointer to cached data of any supported type. + BYTE m_nStatus; // (NULL) status cache. + BYTE m_nDataType; // Type of data cached. +}; + +//////////////////////////////////////////////////////////////////////// +// Info structures + +struct CDaoErrorInfo +{ +// Attributes + long m_lErrorCode; + CString m_strSource; + CString m_strDescription; + CString m_strHelpFile; + long m_lHelpContext; + +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +struct CDaoWorkspaceInfo +{ +// Attributes + CString m_strName; // Primary + CString m_strUserName; // Secondary + BOOL m_bIsolateODBCTrans; // All + +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +struct CDaoDatabaseInfo +{ +// Attributes + CString m_strName; // Primary + BOOL m_bUpdatable; // Primary + BOOL m_bTransactions; // Primary + CString m_strVersion; // Secondary + long m_lCollatingOrder; // Secondary + short m_nQueryTimeout; // Secondary + CString m_strConnect; // All + +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +struct CDaoTableDefInfo +{ +// Attributes + CString m_strName; // Primary + BOOL m_bUpdatable; // Primary + long m_lAttributes; // Primary + COleDateTime m_dateCreated; // Secondary + COleDateTime m_dateLastUpdated; // Secondary + CString m_strSrcTableName; // Secondary + CString m_strConnect; // Secondary + CString m_strValidationRule; // All + CString m_strValidationText; // All + long m_lRecordCount; // All + +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +struct CDaoFieldInfo +{ +// Attributes + CString m_strName; // Primary + short m_nType; // Primary + long m_lSize; // Primary + long m_lAttributes; // Primary + short m_nOrdinalPosition; // Secondary + BOOL m_bRequired; // Secondary + BOOL m_bAllowZeroLength; // Secondary + long m_lCollatingOrder; // Secondary + CString m_strForeignName; // Secondary + CString m_strSourceField; // Secondary + CString m_strSourceTable; // Secondary + CString m_strValidationRule; // All + CString m_strValidationText; // All + CString m_strDefaultValue; // All + +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +struct CDaoIndexFieldInfo +{ +// Attributes + CString m_strName; // Primary + BOOL m_bDescending; // Primary + +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +struct CDaoIndexInfo +{ +// Constructors + CDaoIndexInfo(); + +// Attributes + CString m_strName; // Primary + CDaoIndexFieldInfo* m_pFieldInfos; // Primary + short m_nFields; // Primary + BOOL m_bPrimary; // Secondary + BOOL m_bUnique; // Secondary + BOOL m_bClustered; // Secondary + BOOL m_bIgnoreNulls; // Secondary + BOOL m_bRequired; // Secondary + BOOL m_bForeign; // Secondary + long m_lDistinctCount; // All + +// Implementation + virtual ~CDaoIndexInfo(); + BOOL m_bCleanupFieldInfo; + +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +struct CDaoRelationFieldInfo +{ +// Attributes + CString m_strName; // Primary + CString m_strForeignName; // Primary + +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +struct CDaoRelationInfo +{ +// Constructor + CDaoRelationInfo(); + +// Attributes + CString m_strName; // Primary + CString m_strTable; // Primary + CString m_strForeignTable; // Primary + long m_lAttributes; // Secondary + CDaoRelationFieldInfo* m_pFieldInfos; // Secondary + short m_nFields; // Secondary + +// Implementation + virtual ~CDaoRelationInfo(); + BOOL m_bCleanupFieldInfo; + +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +struct CDaoQueryDefInfo +{ +// Attributes + CString m_strName; // Primary + short m_nType; // Primary + COleDateTime m_dateCreated; // Secondary + COleDateTime m_dateLastUpdated; // Secondary + BOOL m_bUpdatable; // Secondary + BOOL m_bReturnsRecords; // Secondary + CString m_strSQL; // All + CString m_strConnect; // All + short m_nODBCTimeout; // See readme + +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +struct CDaoParameterInfo +{ +// Attributes + CString m_strName; // Primary + short m_nType; // Primary + COleVariant m_varValue; // Secondary + +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +//////////////////////////////////////////////////////////////////////// +// DAO Helpers +// + +// Flags for getting and/or setting object properties +#define AFX_DAO_PRIMARY_INFO 0x00000001 // Get only primary +#define AFX_DAO_SECONDARY_INFO 0x00000002 // Get primary & secondary +#define AFX_DAO_ALL_INFO 0x00000004 // Get All info + +// Jet engine TRUE/FALSE definitions +#define AFX_DAO_TRUE (-1L) +#define AFX_DAO_FALSE 0 + +// Set CDaoRecordset::Open option to use m_nDefaultType +#define AFX_DAO_USE_DEFAULT_TYPE (-1L) + +// Flags used for Move/Find +#define AFX_DAO_NEXT (+1L) +#define AFX_DAO_PREV (-1L) +#define AFX_DAO_FIRST LONG_MIN +#define AFX_DAO_LAST LONG_MAX + +// Default sizes for DFX function PreAlloc sizes +#define AFX_DAO_TEXT_DEFAULT_SIZE 255 +#define AFX_DAO_BINARY_DEFAULT_SIZE 2048 +#define AFX_DAO_LONGBINARY_DEFAULT_SIZE 32768 + +// Flag used for DFX functions dwBindOptions bitmask +#define AFX_DAO_ENABLE_FIELD_CACHE 0x01 +#define AFX_DAO_DISABLE_FIELD_CACHE 0 +#define AFX_DAO_CACHE_BY_VALUE 0x80 // MFC Internal + +// Field Flags, used to indicate status of fields +#define AFX_DAO_FIELD_FLAG_DIRTY 0x01 +#define AFX_DAO_FIELD_FLAG_NULL 0x02 +#define AFX_DAO_FIELD_FLAG_NULLABLE_KNOWN 0x04 +#define AFX_DAO_FIELD_FLAG_NULLABLE 0x08 + +// Extended error codes +#define NO_AFX_DAO_ERROR 0 +#define AFX_DAO_ERROR_MIN 2000 +#define AFX_DAO_ERROR_ENGINE_INITIALIZATION AFX_DAO_ERROR_MIN + 0 +#define AFX_DAO_ERROR_DFX_BIND AFX_DAO_ERROR_MIN + 1 +#define AFX_DAO_ERROR_OBJECT_NOT_OPEN AFX_DAO_ERROR_MIN + 2 +#define AFX_DAO_ERROR_MAX AFX_DAO_ERROR_MIN + 2 + +// Object status flags +#define AFX_DAO_IMPLICIT_WS 0x01 +#define AFX_DAO_IMPLICIT_DB 0x02 +#define AFX_DAO_IMPLICIT_QD 0x04 +#define AFX_DAO_IMPLICIT_TD 0x08 +#define AFX_DAO_IMPLICIT_CLOSE 0x40 +#define AFX_DAO_DEFAULT_WS 0x80 + +// CDaoRecordView status flags +#define AFX_DAOVIEW_SCROLL_NEXT 0x01 +#define AFX_DAOVIEW_SCROLL_LAST 0x02 +#define AFX_DAOVIEW_SCROLL_BACKWARD 0x04 + +// Logging helpers +void AFXAPI AfxDaoCheck(SCODE scode, LPCSTR lpszDaoCall, + LPCSTR lpszFile, int nLine, int nError = NO_AFX_DAO_ERROR, + BOOL bMemOnly = FALSE); + +#ifdef _DEBUG +void AFXAPI AfxDaoTrace(SCODE scode, LPCSTR lpszDaoCall, + LPCSTR lpszFile, int nLine); +#endif + +#ifdef _DEBUG +#define DAO_CHECK(f) AfxDaoCheck(f, #f, THIS_FILE, __LINE__) +#define DAO_CHECK_ERROR(f, err) AfxDaoCheck(f, #f, THIS_FILE, __LINE__, err) +#define DAO_CHECK_MEM(f) AfxDaoCheck(f, #f, THIS_FILE, __LINE__, \ + NO_AFX_DAO_ERROR, TRUE) +#define DAO_TRACE(f) AfxDaoTrace(f, #f, THIS_FILE, __LINE__) +#else +#define DAO_CHECK(f) AfxDaoCheck(f, NULL, NULL, 0) +#define DAO_CHECK_ERROR(f, err) AfxDaoCheck(f, NULL, NULL, 0, err) +#define DAO_CHECK_MEM(f) AfxDaoCheck(f, NULL, NULL, 0, \ + NO_AFX_DAO_ERROR, TRUE) +#define DAO_TRACE(f) f +#endif + +///////////////////////////////////////////////////////////////////////////// +// CDaoFieldExchange - for field exchange +class CDaoFieldExchange +{ +// Attributes +public: + enum DFX_Operation + { + AddToParameterList, // builds PARAMETERS clause + AddToSelectList, // builds SELECT clause + BindField, // sets up binding structure + BindParam, // sets parameter values + Fixup, // sets NULL status + AllocCache, // allocates cache used for dirty check + StoreField, // saves current record to cache + LoadField, // restores cached data to member vars + FreeCache, // frees cache + SetFieldNull, // sets field status & value to NULL + MarkForAddNew, // marks fields dirty if not PSEUDO NULL + MarkForEdit, // marks fields dirty if don't match cache + SetDirtyField, // sets field values marked as dirty +#ifdef _DEBUG + DumpField, +#endif + MaxDFXOperation, // dummy operation type for input checking + }; + + UINT m_nOperation; // type of exchange operation + CDaoRecordset* m_prs; // recordset handle + +// Operations +public: + enum FieldType + { + none, + outputColumn, + param, + }; + + void SetFieldType(UINT nFieldType); + BOOL IsValidOperation(); + +// Implementation +public: + CDaoFieldExchange(UINT nOperation, CDaoRecordset* prs, + void* pvField = NULL); + + void Default(LPCTSTR lpszName, void* pv, DWORD dwFieldType, + DWORD dwBindOptions = 0); + + static void PASCAL AppendParamType(CString& strParamList, DWORD dwParamType); + static CDaoFieldCache* PASCAL GetCacheValue(CDaoRecordset* prs, void* pv); + static void PASCAL SetNullValue(void* pv, DWORD dwDataType); + static BOOL PASCAL IsNullValue(void* pv, DWORD dwDataType); + static void PASCAL AllocCacheValue(CDaoFieldCache*& pCache, DWORD dwDataType); + static void PASCAL DeleteCacheValue(CDaoFieldCache* pCache, DWORD dwDataType); + static void PASCAL CopyValue(void* pvSrc, void* pvDest, DWORD dwDataType); + static BOOL PASCAL CompareValue(void* pvSrc, void* pvDest, DWORD dwDataType); + static void PASCAL FillVariant(void* pvValue, DWORD dwDataType, COleVariant** ppVar); + + // Current type of field + UINT m_nFieldType; + void* m_pvField; + UINT m_nField; + UINT m_nParam; + UINT m_nFieldFound; + +#ifdef _DEBUG + CDumpContext* m_pdcDump; +#endif //_DEBUG +}; + +///////////////////////////////////////////////////////////////////////////// +// Standard RecordSet Field Exchange routines + +// variable length data +void AFXAPI DFX_Text(CDaoFieldExchange* pFX, LPCTSTR lpszName, + CString& value, int nPreAllocSize = AFX_DAO_TEXT_DEFAULT_SIZE, + DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE); +void AFXAPI DFX_Binary(CDaoFieldExchange* pFX, LPCTSTR lpszName, + CByteArray& value, int nPreAllocSize = AFX_DAO_BINARY_DEFAULT_SIZE, + DWORD dwBindOptions = 0); +void AFXAPI DFX_LongBinary(CDaoFieldExchange* pFX, LPCTSTR lpszName, + CLongBinary& value, DWORD dwPreAllocSize = AFX_DAO_LONGBINARY_DEFAULT_SIZE, + DWORD dwBndOptions = 0); + +//fixed length data +void AFXAPI DFX_Bool(CDaoFieldExchange* pFX, LPCTSTR lpszName, + BOOL& value, DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE); +void AFXAPI DFX_Byte(CDaoFieldExchange* pFX, LPCTSTR lpszName, + BYTE& value, DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE); +void AFXAPI DFX_Short(CDaoFieldExchange* pFX, LPCTSTR lpszName, + short& value, DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE); +void AFXAPI DFX_Long(CDaoFieldExchange* pFX, LPCTSTR lpszName, + long& value, DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE); +void AFXAPI DFX_Currency(CDaoFieldExchange* pFX, LPCTSTR lpszName, + COleCurrency& value, DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE); +void AFXAPI DFX_Single(CDaoFieldExchange* pFX, LPCTSTR lpszName, + float& value, DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE); +void AFXAPI DFX_Double(CDaoFieldExchange* pFX, LPCTSTR lpszName, + double& value, DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE); +void AFXAPI DFX_DateTime(CDaoFieldExchange* pFX, LPCTSTR lpszName, + COleDateTime& value, DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE); + +////////////////////////////////////////////////////////////////////////// +// Database Dialog Data Exchange cover routines +// Cover routines provide database semantics on top of DDX routines + +// simple text operations +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, BOOL& value, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, BYTE& value, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, short& value, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, long& value, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, COleCurrency& value, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, DWORD& value, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, float& value, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, double& value, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, COleDateTime& value, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, CString& value, + CDaoRecordset* pRecordset); + +// special control types +void AFXAPI DDX_FieldCheck(CDataExchange* pDX, int nIDC, int& value, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldRadio(CDataExchange* pDX, int nIDC, int& value, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldLBString(CDataExchange* pDX, int nIDC, + CString& value, CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldCBString(CDataExchange* pDX, int nIDC, + CString& value, CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldLBStringExact(CDataExchange* pDX, int nIDC, + CString& value, CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldCBStringExact(CDataExchange* pDX, int nIDC, + CString& value, CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldLBIndex(CDataExchange* pDX, int nIDC, int& index, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldCBIndex(CDataExchange* pDX, int nIDC, int& index, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldLBStringExact(CDataExchange* pDX, int nIDC, CString& value, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldCBStringExact(CDataExchange* pDX, int nIDC, CString& value, + CDaoRecordset* pRecordset); +void AFXAPI DDX_FieldScroll(CDataExchange* pDX, int nIDC, int& value, + CDaoRecordset* pRecordset); + +//////////////////////////////////////////////////////////////////////// +// CDaoWorkspace - a DAO Workspace + +class CDaoWorkspace : public CObject +{ + DECLARE_DYNAMIC(CDaoWorkspace) + +// Constructors +public: + CDaoWorkspace(); + + virtual void Create(LPCTSTR lpszName, LPCTSTR lpszUserName, + LPCTSTR lpszPassword); + virtual void Append(); + + virtual void Open(LPCTSTR lpszName = NULL); + virtual void Close(); + +// Attributes +public: + DAOWorkspace* m_pDAOWorkspace; + + static CString PASCAL GetVersion(); + static CString PASCAL GetIniPath(); + static void PASCAL SetIniPath(LPCTSTR lpszRegistrySubKey); + static void PASCAL SetDefaultUser(LPCTSTR lpszDefaultUser); + static void PASCAL SetDefaultPassword(LPCTSTR lpszPassword); + static short PASCAL GetLoginTimeout(); + static void PASCAL SetLoginTimeout(short nSeconds); + + CString GetName(); + CString GetUserName(); + void SetIsolateODBCTrans(BOOL bIsolateODBCTrans); + BOOL GetIsolateODBCTrans(); + + BOOL IsOpen() const; + +// Operations +public: + void BeginTrans(); + void CommitTrans(); + void Rollback(); + + static void PASCAL CompactDatabase(LPCTSTR lpszSrcName, + LPCTSTR lpszDestName, LPCTSTR lpszLocale = dbLangGeneral, + int nOptions = 0); + // Password parameter added late in dev cycle, new interface req'd + static void PASCAL CompactDatabase(LPCTSTR lpszSrcName, + LPCTSTR lpszDestName, LPCTSTR lpszLocale, int nOptions, + LPCTSTR lpszPassword); + static void PASCAL RepairDatabase(LPCTSTR lpszName); + + static void PASCAL Idle(int nAction = dbFreeLocks); + + short GetWorkspaceCount(); + void GetWorkspaceInfo(int nIndex, CDaoWorkspaceInfo& wkspcinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + void GetWorkspaceInfo(LPCTSTR lpszName, CDaoWorkspaceInfo& wkspcinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + + short GetDatabaseCount(); + void GetDatabaseInfo(int nIndex, CDaoDatabaseInfo& dbinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + void GetDatabaseInfo(LPCTSTR lpszName, CDaoDatabaseInfo& dbinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + +// Overridables +public: + +// Implementation +public: + virtual ~CDaoWorkspace(); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + DAOWorkspaces* m_pDAOWorkspaces; + DAODatabases* m_pDAODatabases; + int m_nStatus; + + CMapPtrToPtr m_mapDatabases; // Map of all Open CDaoDatabases + BOOL IsNew() const; + +protected: + BOOL m_bOpen; + BOOL m_bNew; + + static void AFX_CDECL InitializeEngine(); + + void InitWorkspacesCollection(); + void FillWorkspaceInfo(DAOWorkspace* pDAOWorkspace, + CDaoWorkspaceInfo& wsinfo, DWORD dwOptions); + + void InitDatabasesCollection(); + void FillDatabaseInfo(DAODatabase* pDAODatabase, + CDaoDatabaseInfo& dbinfo, DWORD dwOptions); + + virtual void ThrowDaoException(int nError = NO_AFX_DAO_ERROR); +}; + +//////////////////////////////////////////////////////////////////////// +// CDaoException - DAO error trapping mechanism +class CDaoException : public CException +{ + DECLARE_DYNAMIC(CDaoException) + +// Constructors +public: + CDaoException(); + +// Attributes +public: + CDaoErrorInfo* m_pErrorInfo; + + SCODE m_scode; + int m_nAfxDaoError; // DAO class extended error code + +// Operations +public: + short GetErrorCount(); + void GetErrorInfo(int nIndex); + +// Implementation +public: + virtual ~CDaoException(); + + DAOError* m_pDAOError; + DAOErrors* m_pDAOErrors; + + virtual BOOL GetErrorMessage(LPTSTR lpszError, UINT nMaxError, + PUINT pnHelpContext = NULL); + +protected: + void InitErrorsCollection(); + void FillErrorInfo(); +}; + +void AFXAPI AfxThrowDaoException(int nAfxDaoError = NO_AFX_DAO_ERROR, + SCODE scode = S_OK); + + +//////////////////////////////////////////////////////////////////////// +// CDaoDatabase - a DAO Database + +class CDaoDatabase : public CObject +{ + DECLARE_DYNAMIC(CDaoDatabase) + +// Constructors +public: + CDaoDatabase(CDaoWorkspace* pWorkspace = NULL); + + virtual void Create(LPCTSTR lpszName, + LPCTSTR lpszLocale = dbLangGeneral, int dwOptions = 0); + + virtual void Open(LPCTSTR lpszName, BOOL bExclusive = FALSE, + BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = _T("")); + virtual void Close(); + +// Attributes +public: + CDaoWorkspace* m_pWorkspace; + DAODatabase* m_pDAODatabase; + + BOOL IsOpen() const; + + BOOL CanUpdate(); + BOOL CanTransact(); + + CString GetName(); + CString GetConnect(); + + CString GetVersion(); + short GetQueryTimeout(); + void SetQueryTimeout(short nSeconds); + long GetRecordsAffected(); + +// Operations +public: + void Execute(LPCTSTR lpszSQL, int nOptions = dbFailOnError); + + void DeleteTableDef(LPCTSTR lpszName); + void DeleteQueryDef(LPCTSTR lpszName); + + void CreateRelation(LPCTSTR lpszName, LPCTSTR lpszTable, + LPCTSTR lpszForeignTable, long lAttributes, + LPCTSTR lpszField, LPCTSTR lpszForeignField); + void CreateRelation(CDaoRelationInfo& relinfo); + void DeleteRelation(LPCTSTR lpszName); + + short GetTableDefCount(); + void GetTableDefInfo(int nIndex, CDaoTableDefInfo& tabledefinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + void GetTableDefInfo(LPCTSTR lpszName, CDaoTableDefInfo& tabledefinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + + short GetRelationCount(); + void GetRelationInfo(int nIndex, CDaoRelationInfo& relinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + void GetRelationInfo(LPCTSTR lpszName, CDaoRelationInfo& relinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + + short GetQueryDefCount(); + void GetQueryDefInfo(int nIndex, CDaoQueryDefInfo& querydefinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + void GetQueryDefInfo(LPCTSTR lpszName, CDaoQueryDefInfo& querydefinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + +// Overridables +public: + +// Implementation +public: + virtual ~CDaoDatabase(); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + DAOTableDefs* m_pDAOTableDefs; + DAORelations* m_pDAORelations; + DAOQueryDefs* m_pDAOQueryDefs; + DAORecordsets* m_pDAORecordsets; + int m_nStatus; + + CMapPtrToPtr m_mapTableDefs; // Map of all Open CDaoTableDefs + CMapPtrToPtr m_mapQueryDefs; // Map of all Open CDaoQueryDefs + CMapPtrToPtr m_mapRecordsets; // Map of all Open CDaoRecordsets + +protected: + BOOL m_bOpen; + + void InitWorkspace(); + void InitTableDefsCollection(); + void FillTableDefInfo(DAOTableDef* pDAOTableDef, + CDaoTableDefInfo& tabledefinfo, DWORD dwOptions); + void InitRelationsCollection(); + void FillRelationInfo(DAORelation* pDAORelation, + CDaoRelationInfo& relinfo, DWORD dwOptions); + void InitQueryDefsCollection(); + void FillQueryDefInfo(DAOQueryDef* pDAOQueryDef, + CDaoQueryDefInfo& querydefinfo, DWORD dwOptions); + + virtual void ThrowDaoException(int nError = NO_AFX_DAO_ERROR); +}; + + +//////////////////////////////////////////////////////////////////////// +// CDaoTableDef - a DAO TableDef + +class CDaoTableDef : public CObject +{ + DECLARE_DYNAMIC(CDaoTableDef) + +// Constructors +public: + CDaoTableDef(CDaoDatabase* pDatabase); + + virtual void Create(LPCTSTR lpszName, long lAttributes = 0, + LPCTSTR lpszSrcTable = NULL, LPCTSTR lpszConnect = NULL); + virtual void Append(); + + virtual void Open(LPCTSTR lpszName); + virtual void Close(); + +// Attributes +public: + CDaoDatabase* m_pDatabase; + DAOTableDef* m_pDAOTableDef; + + BOOL IsOpen() const; + BOOL CanUpdate(); + + void SetName(LPCTSTR lpszName); + CString GetName(); + void SetSourceTableName(LPCTSTR lpszSrcTableName); + CString GetSourceTableName(); + void SetConnect(LPCTSTR lpszConnect); + CString GetConnect(); + void SetAttributes(long lAttributes); + long GetAttributes(); + COleDateTime GetDateCreated(); + COleDateTime GetDateLastUpdated(); + void SetValidationRule(LPCTSTR lpszValidationRule); + CString GetValidationRule(); + void SetValidationText(LPCTSTR lpszValidationText); + CString GetValidationText(); + long GetRecordCount(); + +// Overridables +public: + +// Operations +public: + void CreateField(LPCTSTR lpszName, short nType, long lSize, + long lAttributes = 0); + void CreateField(CDaoFieldInfo& fieldinfo); + void DeleteField(LPCTSTR lpszName); + void DeleteField(int nIndex); + + void CreateIndex(CDaoIndexInfo& indexinfo); + void DeleteIndex(LPCTSTR lpszName); + void DeleteIndex(int nIndex); + + short GetFieldCount(); + void GetFieldInfo(int nIndex, CDaoFieldInfo& fieldinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + void GetFieldInfo(LPCTSTR lpszName, CDaoFieldInfo& fieldinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + + short GetIndexCount(); + void GetIndexInfo(int nIndex, CDaoIndexInfo& indexinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + void GetIndexInfo(LPCTSTR lpszName, CDaoIndexInfo& indexinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + + void RefreshLink(); + +// Implementation +public: + ~CDaoTableDef(); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + DAOFields* m_pDAOFields; + DAOIndexes* m_pDAOIndexes; + +protected: + BOOL m_bOpen; + BOOL m_bNew; + + void InitFieldsCollection(); + void InitIndexesCollection(); + + virtual void ThrowDaoException(int nError = NO_AFX_DAO_ERROR); +}; + + +//////////////////////////////////////////////////////////////////////// +// CDaoQueryDef - a DAO QueryDef + +class CDaoQueryDef : public CObject +{ + DECLARE_DYNAMIC(CDaoQueryDef) + +// Constructors +public: + CDaoQueryDef(CDaoDatabase* pDatabase); + + virtual void Create(LPCTSTR lpszName = NULL, + LPCTSTR lpszSQL = NULL); + virtual void Append(); + + virtual void Open(LPCTSTR lpszName = NULL); + virtual void Close(); + +// Attributes +public: + CDaoDatabase* m_pDatabase; + DAOQueryDef* m_pDAOQueryDef; + + BOOL CanUpdate(); + + CString GetName(); + void SetName(LPCTSTR lpszName); + CString GetSQL(); + void SetSQL(LPCTSTR lpszSQL); + short GetType(); + COleDateTime GetDateCreated(); + COleDateTime GetDateLastUpdated(); + CString GetConnect(); + void SetConnect(LPCTSTR lpszConnect); + short GetODBCTimeout(); + void SetODBCTimeout(short nODBCTimeout); + BOOL GetReturnsRecords(); + void SetReturnsRecords(BOOL bReturnsRecords); + long GetRecordsAffected(); + + BOOL IsOpen() const; + +// Operations +public: + virtual void Execute(int nOptions = dbFailOnError); + + virtual COleVariant GetParamValue(LPCTSTR lpszName); + virtual COleVariant GetParamValue(int nIndex); + virtual void SetParamValue(LPCTSTR lpszName, + const COleVariant& varValue); + virtual void SetParamValue(int nIndex, + const COleVariant& varValue); + void SetParamValueNull(LPCTSTR lpszName); + void SetParamValueNull(int nIndex); + + short GetFieldCount(); + void GetFieldInfo(int nIndex, CDaoFieldInfo& fieldinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + void GetFieldInfo(LPCTSTR lpszName, CDaoFieldInfo& fieldinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + + short GetParameterCount(); + void GetParameterInfo(int nIndex, CDaoParameterInfo& paraminfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + void GetParameterInfo(LPCTSTR lpszName, + CDaoParameterInfo& paraminfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + +// Overridables +public: + +// Implementation +public: + ~CDaoQueryDef(); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + DAOFields* m_pDAOFields; + DAOParameters* m_pDAOParameters; + +protected: + BOOL m_bOpen; + BOOL m_bNew; + + void InitFieldsCollection(); + void InitParametersCollection(); + void FillParameterInfo(DAOParameter* pDAOParameter, + CDaoParameterInfo& paraminfo, DWORD dwInfoOptions); + + virtual void ThrowDaoException(int nError = NO_AFX_DAO_ERROR); +}; + + +//////////////////////////////////////////////////////////////////////// +// CDaoRecordset - the result of a query or base table browse + +class CDaoRecordset : public CObject +{ + DECLARE_DYNAMIC(CDaoRecordset) + +// Constructor +public: + CDaoRecordset(CDaoDatabase* pDatabase = NULL); + + virtual void Open(int nOpenType = AFX_DAO_USE_DEFAULT_TYPE, + LPCTSTR lpszSQL = NULL, int nOptions = 0); + virtual void Open(CDaoQueryDef* pQueryDef, + int nOpenType = dbOpenDynaset, int nOptions = 0); + virtual void Open(CDaoTableDef* pTableDef, + int nOpenType = dbOpenTable, int nOptions = 0); + virtual void Close(); + +// Attributes +public: + CDaoDatabase* m_pDatabase; // Source database for this result set + DAORecordset* m_pDAORecordset; + + CString m_strFilter; // Filter string used when constructing SQL + CString m_strSort; // Sort string used when constructing SQL + + int m_nFields; + int m_nParams; + + BOOL m_bCheckCacheForDirtyFields; // Switch for dirty field checking. + + BOOL CanUpdate() const; + BOOL CanAppend() const; + BOOL CanScroll() const; + BOOL CanRestart(); + BOOL CanTransact(); + BOOL CanBookmark(); + + BOOL IsOpen() const; + BOOL IsBOF(); + BOOL IsEOF(); + BOOL IsDeleted() const; + + BOOL IsFieldDirty(void* pv); + BOOL IsFieldNull(void* pv); + BOOL IsFieldNullable(void* pv); + + CString GetName(); + short GetType(); + short GetEditMode(); + CString GetSQL() const; + + COleDateTime GetDateCreated(); + COleDateTime GetDateLastUpdated(); + COleVariant GetLastModifiedBookmark(); + CString GetValidationRule(); + CString GetValidationText(); + CString GetCurrentIndex(); + void SetCurrentIndex(LPCTSTR lpszIndex); + + long GetRecordCount(); + +// Operations +public: + // Cursor operations + void MoveNext(); + void MovePrev(); + void MoveFirst(); + void MoveLast(); + virtual void Move(long lRows); + + BOOL FindNext(LPCTSTR lpszFilter); + BOOL FindPrev(LPCTSTR lpszFilter); + BOOL FindFirst(LPCTSTR lpszFilter); + BOOL FindLast(LPCTSTR lpszFilter); + virtual BOOL Find(long lFindType, LPCTSTR lpszFilter); + + COleVariant GetBookmark(); + void SetBookmark(COleVariant varBookmark); + long GetAbsolutePosition(); + void SetAbsolutePosition(long lPosition); + float GetPercentPosition(); + void SetPercentPosition(float fPosition); + + // seek allowed on recordset opened as tables (max keys = 13) + BOOL Seek(LPCTSTR lpszComparison, COleVariant* pKey1, + COleVariant* pKey2 = NULL, COleVariant* pKey3 = NULL); + BOOL Seek(LPCTSTR lpszComparison, COleVariant* pKeyArray, WORD nKeys); + + // edit buffer operations + virtual void AddNew(); + virtual void Edit(); + virtual void Update(); + virtual void Delete(); + virtual void CancelUpdate(); + + // field operations + virtual void GetFieldValue(LPCTSTR lpszName, COleVariant& varValue); + virtual void GetFieldValue(int nIndex, COleVariant& varValue); + virtual void SetFieldValue(LPCTSTR lpszName, + const COleVariant& varValue); + virtual void SetFieldValue(int nIndex, + const COleVariant& varValue); + void SetFieldValue(int nIndex, LPCTSTR lpszValue); + void SetFieldValue(LPCTSTR lpszName, LPCTSTR lpszValue); + void SetFieldValueNull(LPCTSTR lpszName); + void SetFieldValueNull(int nIndex); + + virtual COleVariant GetParamValue(LPCTSTR lpszName); + virtual COleVariant GetParamValue(int nIndex); + virtual void SetParamValue(LPCTSTR lpszName, + const COleVariant& varValue); + virtual void SetParamValue(int nIndex, + const COleVariant& varValue); + void SetParamValueNull(LPCTSTR lpszName); + void SetParamValueNull(int nIndex); + + void SetFieldDirty(void* pv, BOOL bDirty = TRUE); + void SetFieldNull(void* pv, BOOL bNull = TRUE); + + void SetLockingMode(BOOL bPessimistic); + BOOL GetLockingMode(); + + // Recordset operations + virtual void Requery(); + + // Jet's remote data caching operations + void SetCacheStart(COleVariant varBookmark); + COleVariant GetCacheStart(); + void SetCacheSize(long lSize); + long GetCacheSize(); + void FillCache(long* pSize = NULL, COleVariant* pBookmark = NULL); + + short GetFieldCount(); + void GetFieldInfo(int nIndex, CDaoFieldInfo& fieldinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + void GetFieldInfo(LPCTSTR lpszName, CDaoFieldInfo& fieldinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + + short GetIndexCount(); + void GetIndexInfo(int nIndex, CDaoIndexInfo& indexinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + void GetIndexInfo(LPCTSTR lpszName, CDaoIndexInfo& indexinfo, + DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO); + +// Overridables +public: + virtual CString GetDefaultDBName(); + virtual CString GetDefaultSQL(); + + // for recordset field exchange + virtual void DoFieldExchange(CDaoFieldExchange* pFX); + +// Implementation +public: + virtual ~CDaoRecordset(); + + // Out-of-date functions kept for backward compatability + virtual COleVariant GetFieldValue(LPCTSTR lpszName); + virtual COleVariant GetFieldValue(int nIndex); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + CString m_strSQL; + + CDaoQueryDef* m_pQueryDef; // Source query for this result set + CDaoTableDef* m_pTableDef; + ICDAORecordset* m_pICDAORecordsetGetRows; + DAOFields* m_pDAOFields; + DAOIndexes* m_pDAOIndexes; + + void SetCursorAttributes(); + void GetDataAndFixupNulls(); + DWORD GetFieldLength(int nFieldIndex); + + BOOL IsFieldStatusDirty(UINT nField); + void SetDirtyFieldStatus(UINT nField); + void ClearDirtyFieldStatus(UINT nField); + + BOOL IsFieldStatusNull(UINT nField); + void SetNullFieldStatus(UINT nField); + void ClearNullFieldStatus(UINT nField); + + BOOL IsFieldStatusNullable(UINT nField); + void SetNullableFieldStatus(UINT nField); + + BOOL IsFieldStatusNullableKnown(UINT nField); + void SetNullableKnownFieldStatus(UINT nField); + + void ClearFieldStatusFlags(); + BOOL IsMatch(); + + DWORD m_cbFixedLengthFields; + DAOCOLUMNBINDING* m_prgDaoColBindInfo; + DWORD* m_pulColumnLengths; + DAOFETCHROWS m_DaoFetchRows; + BYTE* m_pbFieldFlags; + BYTE* m_pbParamFlags; + + CMapPtrToPtr* m_pMapFieldCache; + CMapPtrToPtr* m_pMapFieldIndex; + + static void AFX_CDECL StripBrackets(LPCTSTR lpszSrc, LPTSTR lpszDest); + +protected: + BOOL m_bOpen; + int m_nStatus; + + BOOL m_bAppendable; + BOOL m_bScrollable; + BOOL m_bDeleted; + + int m_nOpenType; + int m_nDefaultType; + int m_nOptions; + + CString m_strRequerySQL; + CString m_strRequeryFilter; + CString m_strRequerySort; + + void BuildSQL(); + void AllocDatabase(); + + // RFX Operation Cover Functions + void BuildSelectList(); + void BuildParameterList(); + void BindFields(); + void BindParameters(); + void Fixup(); + void AllocCache(); + void StoreFields(); + void LoadFields(); + void FreeCache(); + void MarkForEdit(); + void MarkForAddNew(); + int GetFieldIndex(void* pv); + virtual void SetDirtyFields(); + + void InitFieldsCollection(); + void InitIndexesCollection(); + + virtual void ThrowDaoException(int nError = NO_AFX_DAO_ERROR); + + friend class CDaoFieldExchange; + friend class CDaoRecordView; +}; + +///////////////////////////////////////////////////////////////////////////// +// CDaoRecordView - form for viewing data records + +class CDaoRecordView : public CFormView +{ + DECLARE_DYNAMIC(CDaoRecordView) + +// Construction +protected: // must derive your own class + CDaoRecordView(LPCTSTR lpszTemplateName); + CDaoRecordView(UINT nIDTemplate); + +// Attributes +public: + virtual CDaoRecordset* OnGetRecordset() = 0; + + BOOL IsOnLastRecord(); + BOOL IsOnFirstRecord(); + +// Operations +public: + virtual BOOL OnMove(UINT nIDMoveCommand); + +// Implementation +public: + virtual ~CDaoRecordView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual void OnInitialUpdate(); + +protected: + int m_nStatus; + COleVariant m_varBookmarkCurrent; + COleVariant m_varBookmarkFirst; + COleVariant m_varBookmarkLast; + + //{{AFX_MSG(CDaoRecordView) + afx_msg void OnUpdateRecordFirst(CCmdUI* pCmdUI); + afx_msg void OnUpdateRecordPrev(CCmdUI* pCmdUI); + afx_msg void OnUpdateRecordNext(CCmdUI* pCmdUI); + afx_msg void OnUpdateRecordLast(CCmdUI* pCmdUI); + //}}AFX_MSG + afx_msg void OnMove(int cx, int cy); + + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// DAODBEngine helpers - implementation specific and undocumented +void AFXAPI AfxDaoInit(); +DAODBEngine* AFXAPI AfxDaoGetEngine(); +void AFXAPI AfxDaoTerm(); + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXDAOCORE_INLINE inline +#define _AFXDAODFX_INLINE inline +#define _AFXDAOVIEW_INLINE inline +#include <afxdao.inl> +#undef _AFXDAOCORE_INLINE +#undef _AFXDAODFX_INLINE +#undef _AFXDAOVIEW_INLINE +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif //__AFXDAO_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxdao.inl b/public/sdk/inc/mfc42/afxdao.inl new file mode 100644 index 000000000..07eddacf2 --- /dev/null +++ b/public/sdk/inc/mfc42/afxdao.inl @@ -0,0 +1,77 @@ +// 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. + +// Inlines for AFXDAO.H + +///////////////////////////////////////////////////////////////////////////// +// General database inlines + +#ifdef _AFXDAOCORE_INLINE + +// CDaoWorkspace inlines +_AFXDAOCORE_INLINE BOOL CDaoWorkspace::IsOpen() const + { ASSERT_VALID(this); return m_bOpen; } +_AFXDAOCORE_INLINE BOOL CDaoWorkspace::IsNew() const + { ASSERT_VALID(this); return m_bNew; } + +// CDaoDatabase inlines +_AFXDAOCORE_INLINE BOOL CDaoDatabase::IsOpen() const + { ASSERT_VALID(this); return m_bOpen; } + +// CDaoTableDef inlines +_AFXDAOCORE_INLINE BOOL CDaoTableDef::IsOpen() const + { ASSERT_VALID(this); return m_bOpen; } + +// CDaoQueryDef inlines +_AFXDAOCORE_INLINE BOOL CDaoQueryDef::IsOpen() const + { ASSERT_VALID(this); return m_bOpen; } + +// CDaoRecordset inlines +_AFXDAOCORE_INLINE BOOL CDaoRecordset::IsOpen() const + { ASSERT_VALID(this); return m_bOpen; } + +#endif // _AFXDAOCORE_INLINE + + +#ifdef _AFXDAODFX_INLINE + +// CDaoFieldExchange +_AFXDAODFX_INLINE void CDaoFieldExchange::SetFieldType(UINT nFieldType) +{ ASSERT(nFieldType == outputColumn || nFieldType == param); + m_nFieldType = nFieldType; } + +#endif // _AFXDAODFX_INLINE + + +#ifdef _AFXDAOVIEW_INLINE + +// CDaoRecordView inlines +_AFXDAOVIEW_INLINE void CDaoRecordView::OnUpdateRecordFirst(CCmdUI* pCmdUI) + { ASSERT_VALID(this); + pCmdUI->Enable(m_nStatus & AFX_DAOVIEW_SCROLL_BACKWARD); } + +_AFXDAOVIEW_INLINE void CDaoRecordView::OnUpdateRecordNext(CCmdUI* pCmdUI) + { ASSERT_VALID(this); + pCmdUI->Enable(m_nStatus & AFX_DAOVIEW_SCROLL_NEXT); } + +_AFXDAOVIEW_INLINE void CDaoRecordView::OnUpdateRecordPrev(CCmdUI* pCmdUI) + { ASSERT_VALID(this); + pCmdUI->Enable(m_nStatus & AFX_DAOVIEW_SCROLL_BACKWARD); } + +_AFXDAOVIEW_INLINE void CDaoRecordView::OnUpdateRecordLast(CCmdUI* pCmdUI) + { ASSERT_VALID(this); + pCmdUI->Enable(m_nStatus & AFX_DAOVIEW_SCROLL_LAST); } + +_AFXDAOVIEW_INLINE void CDaoRecordView::OnMove(int cx, int cy) + { CFormView::OnMove(cx, cy); } + +#endif // _AFXDAOVIEW_INLINE + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxdb.h b/public/sdk/inc/mfc42/afxdb.h new file mode 100644 index 000000000..dd8f6abb2 --- /dev/null +++ b/public/sdk/inc/mfc42/afxdb.h @@ -0,0 +1,1042 @@ +// 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. + +#ifndef __AFXDB_H__ +#define __AFXDB_H__ + +#ifdef _AFX_NO_DB_SUPPORT + #error Database classes not supported in this library variant. +#endif + +#ifndef __AFXEXT_H__ + #include <afxext.h> +#endif + +#ifndef __AFXDB__H__ + #include <afxdb_.h> // shared header DAO database classes +#endif + +// include standard SQL/ODBC "C" APIs +#ifndef __SQL + #include <sql.h> // core +#endif +#ifndef __SQLEXT + #include <sqlext.h> // extensions +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifndef _AFX_NOFORCE_LIBS +#ifndef _MAC + +///////////////////////////////////////////////////////////////////////////// +// Win32 libraries + +#ifdef _AFXDLL + #if defined(_DEBUG) && !defined(_AFX_MONOLITHIC) + #ifndef _UNICODE + #pragma comment(lib, "mfcd42d.lib") + #else + #pragma comment(lib, "mfcd42ud.lib") + #endif + #endif +#endif + +#pragma comment(lib, "odbc32.lib") +#pragma comment(lib, "odbccp32.lib") + +#else //!_MAC + +///////////////////////////////////////////////////////////////////////////// +// Macintosh libraries + +#ifdef _AFXDLL + #ifdef _DEBUG + #pragma comment(lib, "mfcd42pd.lib") + #else + #pragma comment(lib, "mfcd42p.lib") + #endif +#endif + +#ifdef _MPPC_ +#pragma comment(lib, "odbccfgp.lib") +#pragma comment(lib, "odbcdrvp.lib") +#else +#pragma comment(lib, "odbccfgm.lib") +#pragma comment(lib, "odbcdrvm.lib") +#ifdef _DEBUG +#pragma comment (lib, "aslmd.lib") +#else +#pragma comment (lib, "aslm.lib") +#endif +#endif + +#endif //_MAC +#endif //!_AFX_NOFORCE_LIBS + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// AFXDB - MFC SQL/ODBC/Database support + +// Classes declared in this file + + //CException + class CDBException; // abnormal return value + + //CFieldExchange + class CFieldExchange; // Recordset Field Exchange + + //CObject + class CDatabase; // Connecting to databases + class CRecordset; // Data result sets + +//CObject + //CCmdTarget; + //CWnd + //CView + //CScrollView + //CFormView + class CRecordView; // view records with a form + +// Non CObject classes +class CDBVariant; +struct CRecordsetStatus; +struct CFieldInfo; +struct CODBCFieldInfo; +struct CODBCParamInfo; + +///////////////////////////////////////////////////////////////////////////// + +// ODBC helpers +// return code left in 'nRetCode' + +// This MACRO is now out-of-date (kept for backward compatibility) +#define AFX_ODBC_CALL(SQLFunc) \ + do \ + { \ + } while ((nRetCode = (SQLFunc)) == SQL_STILL_EXECUTING) + +// Not really required, but kept for compatibilty +#define AFX_SQL_SYNC(SQLFunc) \ + do \ + { \ + nRetCode = SQLFunc; \ + } while (0) + +// Now out-of-date (prs not used) but kept for compatibility +#define AFX_SQL_ASYNC(prs, SQLFunc) AFX_ODBC_CALL(SQLFunc) + +// Max display length in chars of timestamp (date & time) value +#define TIMESTAMP_PRECISION 23 + +// AFXDLL support +#undef AFX_DATA +#define AFX_DATA AFX_DB_DATA + +// Miscellaneous sizing info +#define MAX_CURRENCY 30 // Max size of Currency($) string +#define MAX_TNAME_LEN 64 // Max size of table names +#define MAX_FNAME_LEN 64 // Max size of field names +#define MAX_DBNAME_LEN 32 // Max size of a database name +#define MAX_DNAME_LEN 256 // Max size of Recordset names +#define MAX_CONNECT_LEN 512 // Max size of Connect string +#define MAX_CURSOR_NAME 18 // Max size of a cursor name +#define DEFAULT_FIELD_TYPE SQL_TYPE_NULL // pick "C" data type to match SQL data type + +// Timeout and net wait defaults +#define DEFAULT_LOGIN_TIMEOUT 15 // seconds to before fail on connect +#define DEFAULT_QUERY_TIMEOUT 15 // seconds to before fail waiting for results + +// Field Flags, used to indicate status of fields +#define AFX_SQL_FIELD_FLAG_DIRTY 0x1 +#define AFX_SQL_FIELD_FLAG_NULL 0x2 + +// Update options flags +#define AFX_SQL_SETPOSUPDATES 0x0001 +#define AFX_SQL_POSITIONEDSQL 0x0002 +#define AFX_SQL_GDBOUND 0x0004 + +///////////////////////////////////////////////////////////////////////////// +// CDBException - something gone wrong + +// Dbkit extended error codes +#define AFX_SQL_ERROR 1000 +#define AFX_SQL_ERROR_CONNECT_FAIL AFX_SQL_ERROR+1 +#define AFX_SQL_ERROR_RECORDSET_FORWARD_ONLY AFX_SQL_ERROR+2 +#define AFX_SQL_ERROR_EMPTY_COLUMN_LIST AFX_SQL_ERROR+3 +#define AFX_SQL_ERROR_FIELD_SCHEMA_MISMATCH AFX_SQL_ERROR+4 +#define AFX_SQL_ERROR_ILLEGAL_MODE AFX_SQL_ERROR+5 +#define AFX_SQL_ERROR_MULTIPLE_ROWS_AFFECTED AFX_SQL_ERROR+6 +#define AFX_SQL_ERROR_NO_CURRENT_RECORD AFX_SQL_ERROR+7 +#define AFX_SQL_ERROR_NO_ROWS_AFFECTED AFX_SQL_ERROR+8 +#define AFX_SQL_ERROR_RECORDSET_READONLY AFX_SQL_ERROR+9 +#define AFX_SQL_ERROR_SQL_NO_TOTAL AFX_SQL_ERROR+10 +#define AFX_SQL_ERROR_ODBC_LOAD_FAILED AFX_SQL_ERROR+11 +#define AFX_SQL_ERROR_DYNASET_NOT_SUPPORTED AFX_SQL_ERROR+12 +#define AFX_SQL_ERROR_SNAPSHOT_NOT_SUPPORTED AFX_SQL_ERROR+13 +#define AFX_SQL_ERROR_API_CONFORMANCE AFX_SQL_ERROR+14 +#define AFX_SQL_ERROR_SQL_CONFORMANCE AFX_SQL_ERROR+15 +#define AFX_SQL_ERROR_NO_DATA_FOUND AFX_SQL_ERROR+16 +#define AFX_SQL_ERROR_ROW_UPDATE_NOT_SUPPORTED AFX_SQL_ERROR+17 +#define AFX_SQL_ERROR_ODBC_V2_REQUIRED AFX_SQL_ERROR+18 +#define AFX_SQL_ERROR_NO_POSITIONED_UPDATES AFX_SQL_ERROR+19 +#define AFX_SQL_ERROR_LOCK_MODE_NOT_SUPPORTED AFX_SQL_ERROR+20 +#define AFX_SQL_ERROR_DATA_TRUNCATED AFX_SQL_ERROR+21 +#define AFX_SQL_ERROR_ROW_FETCH AFX_SQL_ERROR+22 +#define AFX_SQL_ERROR_INCORRECT_ODBC AFX_SQL_ERROR+23 +#define AFX_SQL_ERROR_UPDATE_DELETE_FAILED AFX_SQL_ERROR+24 +#define AFX_SQL_ERROR_DYNAMIC_CURSOR_NOT_SUPPORTED AFX_SQL_ERROR+25 +#define AFX_SQL_ERROR_FIELD_NOT_FOUND AFX_SQL_ERROR+26 +#define AFX_SQL_ERROR_BOOKMARKS_NOT_SUPPORTED AFX_SQL_ERROR+27 +#define AFX_SQL_ERROR_BOOKMARKS_NOT_ENABLED AFX_SQL_ERROR+28 +#define AFX_SQL_ERROR_MAX AFX_SQL_ERROR+29 + +class CDBException : public CException +{ + DECLARE_DYNAMIC(CDBException) + +// Attributes +public: + RETCODE m_nRetCode; + CString m_strError; + CString m_strStateNativeOrigin; + +// Implementation (use AfxThrowDBException to create) +public: + CDBException(RETCODE nRetCode = SQL_SUCCESS); + + virtual void BuildErrorString(CDatabase* pdb, HSTMT hstmt, + BOOL bTrace = TRUE); + void Empty(); + virtual ~CDBException(); + + virtual BOOL GetErrorMessage(LPTSTR lpszError, UINT nMaxError, + PUINT pnHelpContext = NULL); + +#ifdef _DEBUG + void TraceErrorMessage(LPCTSTR szTrace) const; +#endif // DEBUG + +}; + +void AFXAPI AfxThrowDBException(RETCODE nRetCode, CDatabase* pdb, HSTMT hstmt); + +////////////////////////////////////////////////////////////////////////////// +// CDatabase - a SQL Database + +class CDatabase : public CObject +{ + DECLARE_DYNAMIC(CDatabase) + +// Constructors +public: + CDatabase(); + + enum DbOpenOptions + { + openExclusive = 0x0001, // Not implemented + openReadOnly = 0x0002, // Open database read only + useCursorLib = 0x0004, // Use ODBC cursor lib + noOdbcDialog = 0x0008, // Don't display ODBC Connect dialog + forceOdbcDialog = 0x0010, // Always display ODBC connect dialog + }; + + virtual BOOL Open(LPCTSTR lpszDSN, BOOL bExclusive = FALSE, + BOOL bReadonly = FALSE, LPCTSTR lpszConnect = _T("ODBC;"), + BOOL bUseCursorLib = TRUE); + virtual BOOL OpenEx(LPCTSTR lpszConnectString, DWORD dwOptions = 0); + virtual void Close(); + +// Attributes +public: + HDBC m_hdbc; + + BOOL IsOpen() const; // Database successfully opened? + BOOL CanUpdate() const; + BOOL CanTransact() const; // Are Transactions supported? + + CString GetDatabaseName() const; + const CString& GetConnect() const; + + DWORD GetBookmarkPersistence() const; + int GetCursorCommitBehavior() const; + int GetCursorRollbackBehavior() const; + +// Operations +public: + void SetLoginTimeout(DWORD dwSeconds); + void SetQueryTimeout(DWORD dwSeconds); + + // transaction control + BOOL BeginTrans(); + BOOL CommitTrans(); + BOOL Rollback(); + + void ExecuteSQL(LPCTSTR lpszSQL); + + // Cancel asynchronous operation + void Cancel(); + +// Overridables +public: + // set special options + virtual void OnSetOptions(HSTMT hstmt); + +// Implementation +public: + virtual ~CDatabase(); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; + + BOOL m_bTransactionPending; +#endif //_DEBUG + + // general error check + virtual BOOL Check(RETCODE nRetCode) const; + + virtual void BindParameters(HSTMT hstmt); + + void ReplaceBrackets(LPTSTR lpchSQL); + BOOL m_bStripTrailingSpaces; + BOOL m_bIncRecordCountOnAdd; + BOOL m_bAddForUpdate; + char m_chIDQuoteChar; + char m_reserved1[3]; // pad to even 4 bytes + + void SetSynchronousMode(BOOL bSynchronous); // Obsolete, doe nothing + +protected: + CString m_strConnect; + + CPtrList m_listRecordsets; // maintain list to ensure CRecordsets all closed + + int nRefCount; + BOOL m_bUpdatable; + + BOOL m_bTransactions; + SWORD m_nTransactionCapable; + SWORD m_nCursorCommitBehavior; + SWORD m_nCursorRollbackBehavior; + DWORD m_dwUpdateOptions; + DWORD m_dwBookmarkAttributes; // cache driver bookmark persistence + + DWORD m_dwLoginTimeout; + HSTMT m_hstmt; + + DWORD m_dwQueryTimeout; + + virtual void ThrowDBException(RETCODE nRetCode); + void AllocConnect(DWORD dwOptions); + BOOL Connect(DWORD dwOptions); + void VerifyConnect(); + void GetConnectInfo(); + void Free(); + + // friend classes that call protected CDatabase overridables + friend class CRecordset; + friend class CFieldExchange; + friend class CDBException; +}; + +////////////////////////////////////////////////////////////////////////////// +// CFieldExchange - for field exchange +class CFieldExchange +{ +// Attributes +public: + enum RFX_Operation + { + BindParam, // register users parameters with ODBC SQLBindParameter + RebindParam, // migrate param values to proxy array before Requery + BindFieldToColumn, // register users fields with ODBC SQLBindCol + BindFieldForUpdate, // temporarily bind columns before update (via SQLSetPos) + UnbindFieldForUpdate, // unbind columns after update (via SQLSetPos) + Fixup, // Set string lengths, clear status bits + MarkForAddNew, // Prepare fields and flags for addnew operation + MarkForUpdate, // Prepare fields and flags for update operation + Name, // append dirty field name + NameValue, // append dirty name=value + Value, // append dirty value or parameter marker + SetFieldNull, // Set status bit for null value + StoreField, // archive values of current record + LoadField, // reload archived values into current record + AllocCache, // allocate cache used for dirty field check + AllocMultiRowBuffer, // allocate buffer holding multi rows of data + DeleteMultiRowBuffer, // delete buffer holding multi rows of data +#ifdef _DEBUG + DumpField, // dump bound field name and value +#endif + }; + UINT m_nOperation; // Type of exchange operation + CRecordset* m_prs; // recordset handle + +// Operations + enum FieldType + { + noFieldType = -1, + outputColumn = 0, + param = SQL_PARAM_INPUT, + inputParam = param, + outputParam = SQL_PARAM_OUTPUT, + inoutParam = SQL_PARAM_INPUT_OUTPUT, + }; + +// Operations (for implementors of RFX procs) + BOOL IsFieldType(UINT* pnField); + + // Indicate purpose of subsequent RFX calls + void SetFieldType(UINT nFieldType); + +// Implementation + CFieldExchange(UINT nOperation, CRecordset* prs, void* pvField = NULL); + + void Default(LPCTSTR szName, + void* pv, LONG* plLength, int nCType, UINT cbValue, UINT cbPrecision); + + // long binary helpers + long GetLongBinarySize(int nField); + void GetLongBinaryData(int nField, CLongBinary& lb, long* plSize); + BYTE* ReallocLongBinary(CLongBinary& lb, long lSizeRequired, + long lReallocSize); + + // Current type of field + UINT m_nFieldType; + + UINT m_nFieldFound; + + CString* m_pstr; // Field name or destination for building various SQL clauses + BOOL m_bField; // Value to set for SetField operation + void* m_pvField; // For indicating an operation on a specific field + LPCTSTR m_lpszSeparator; // append after field names + UINT m_nFields; // count of fields for various operations + UINT m_nParams; // count of fields for various operations + UINT m_nParamFields; // count of fields for various operations + HSTMT m_hstmt; // For SQLBindParameter on update statement + long m_lDefaultLBFetchSize; // For fetching CLongBinary data of unknown len + long m_lDefaultLBReallocSize; // For fetching CLongBinary data of unknown len + +#ifdef _DEBUG + CDumpContext* m_pdcDump; +#endif //_DEBUG + +}; + +///////////////////////////////////////////////////////////////////////////// +// Recordset Field Exchange helpers +void AFXAPI AfxStoreField(CRecordset& rs, UINT nField, void* pvField); +void AFXAPI AfxLoadField(CRecordset& rs, UINT nField, + void* pvField, long* plLength); +BOOL AFXAPI AfxCompareValueByRef(void* pvData, void* pvCache, int nDataType); +void AFXAPI AfxCopyValueByRef(void* pvCache, void* pvData, + long* plLength, int nDataType); + +///////////////////////////////////////////////////////////////////////////// +// Standard Recordset Field Exchange routines + +// text data +void AFXAPI RFX_Text(CFieldExchange* pFX, LPCTSTR szName, CString& value, + // Default max length for char and varchar, default datasource type + int nMaxLength = 255, int nColumnType = SQL_VARCHAR, short nScale = 0); + +// boolean data +void AFXAPI RFX_Bool(CFieldExchange* pFX, LPCTSTR szName, BOOL& value); + +// integer data +void AFXAPI RFX_Long(CFieldExchange* pFX, LPCTSTR szName, long& value); +void AFXAPI RFX_Int(CFieldExchange* pFX, LPCTSTR szName, int& value); +void AFXAPI RFX_Single(CFieldExchange* pFX, LPCTSTR szName, float& value); +void AFXAPI RFX_Double(CFieldExchange* pFX, LPCTSTR szName, double& value); + +// date and time +void AFXAPI RFX_Date(CFieldExchange* pFX, LPCTSTR szName, CTime& value); +void AFXAPI RFX_Date(CFieldExchange* pFX, LPCTSTR szName, TIMESTAMP_STRUCT& value); + +// Binary data +void AFXAPI RFX_Binary(CFieldExchange* pFX, LPCTSTR szName, CByteArray& value, + // Default max length is for binary and varbinary + int nMaxLength = 255); +void AFXAPI RFX_Byte(CFieldExchange* pFX, LPCTSTR szName, BYTE& value); +void AFXAPI RFX_LongBinary(CFieldExchange* pFX, LPCTSTR szName, CLongBinary& value); + +///////////////////////////////////////////////////////////////////////////// +// Bulk Recordset Field Exchange helpers +void AFXAPI AfxRFXBulkDefault(CFieldExchange* pFX, LPCTSTR szName, + void* pv, long* rgLengths, int nCType, UINT cbValue); + +///////////////////////////////////////////////////////////////////////////// +// Bulk Recordset Field Exchange routines + +void AFXAPI RFX_Text_Bulk(CFieldExchange* pFX, LPCTSTR szName, + LPSTR* prgStrVals, long** prgLengths, int nMaxLength); + +void AFXAPI RFX_Bool_Bulk(CFieldExchange* pFX, LPCTSTR szName, + BOOL** prgBoolVals, long** prgLengths); +void AFXAPI RFX_Int_Bulk(CFieldExchange* pFX, LPCTSTR szName, + int** prgIntVals, long** prgLengths); +void AFXAPI RFX_Long_Bulk(CFieldExchange* pFX, LPCTSTR szName, + long** prgLongVals, long** prgLengths); + +void AFXAPI RFX_Single_Bulk(CFieldExchange* pFX, LPCTSTR szName, + float** prgFltVals, long** prgLengths); +void AFXAPI RFX_Double_Bulk(CFieldExchange* pFX, LPCTSTR szName, + double** prgDblVals, long** prgLengths); + +void AFXAPI RFX_Date_Bulk(CFieldExchange* pFX, LPCTSTR szName, + TIMESTAMP_STRUCT** prgTSVals, long** prgLengths); + +void AFXAPI RFX_Byte_Bulk(CFieldExchange* pFX, LPCTSTR szName, + BYTE** prgByteVals, long** prgLengths); +void AFXAPI RFX_Binary_Bulk(CFieldExchange* pFX, LPCTSTR szName, + BYTE** prgByteVals, long** prgLengths, int nMaxLength); + +///////////////////////////////////////////////////////////////////////////// +// Database Dialog Data Exchange cover routines +// Cover routines provide database semantics on top of DDX routines + +// simple text operations +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, BYTE& value, CRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, int& value, CRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, UINT& value, CRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, long& value, CRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, DWORD& value, CRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, CString& value, CRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, double& value, CRecordset* pRecordset); +void AFXAPI DDX_FieldText(CDataExchange* pDX, int nIDC, float& value, CRecordset* pRecordset); + +// special control types +void AFXAPI DDX_FieldCheck(CDataExchange* pDX, int nIDC, int& value, CRecordset* pRecordset); +void AFXAPI DDX_FieldRadio(CDataExchange* pDX, int nIDC, int& value, CRecordset* pRecordset); +void AFXAPI DDX_FieldLBString(CDataExchange* pDX, int nIDC, CString& value, CRecordset* pRecordset); +void AFXAPI DDX_FieldCBString(CDataExchange* pDX, int nIDC, CString& value, CRecordset* pRecordset); +void AFXAPI DDX_FieldLBIndex(CDataExchange* pDX, int nIDC, int& index, CRecordset* pRecordset); +void AFXAPI DDX_FieldCBIndex(CDataExchange* pDX, int nIDC, int& index, CRecordset* pRecordset); +void AFXAPI DDX_FieldLBStringExact(CDataExchange* pDX, int nIDC, CString& value, CRecordset* pRecordset); +void AFXAPI DDX_FieldCBStringExact(CDataExchange* pDX, int nIDC, CString& value, CRecordset* pRecordset); +void AFXAPI DDX_FieldScroll(CDataExchange* pDX, int nIDC, int& value, CRecordset* pRecordset); + +////////////////////////////////////////////////////////////////////////////// +// CRecordset - the result of a SQL Statement + +#define AFX_DB_USE_DEFAULT_TYPE (0xFFFFFFFF) + +// Most Move constants out of date +// #define AFX_MOVE_FIRST 0x80000000L +// #define AFX_MOVE_PREVIOUS (-1L) +#define AFX_MOVE_REFRESH 0L +// #define AFX_MOVE_NEXT (+1L) +// #define AFX_MOVE_LAST 0x7fffffffL + +#define AFX_RECORDSET_STATUS_OPEN (+1L) +#define AFX_RECORDSET_STATUS_CLOSED 0L +#define AFX_RECORDSET_STATUS_UNKNOWN (-1L) + +class CRecordset : public CObject +{ + DECLARE_DYNAMIC(CRecordset) + +// Constructor +public: + CRecordset(CDatabase* pDatabase = NULL); + +public: + virtual ~CRecordset(); + + enum OpenType + { + dynaset, // uses SQLExtendedFetch, keyset driven cursor + snapshot, // uses SQLExtendedFetch, static cursor + forwardOnly, // uses SQLFetch + dynamic // uses SQLExtendedFetch, dynamic cursor + }; + + enum OpenOptions + { + none = 0x0, + readOnly = 0x0004, + appendOnly = 0x0008, + skipDeletedRecords = 0x0010, // turn on skipping of deleted records, Will slow Move(n). + noDirtyFieldCheck = 0x0020, // disable automatic dirty field checking + useBookmarks = 0x0100, // turn on bookmark support + useMultiRowFetch = 0x0200, // turn on multi-row fetch model + userAllocMultiRowBuffers = 0x0400, // if multi-row fetch on, user will alloc memory for buffers + useExtendedFetch = 0x0800, // use SQLExtendedFetch with forwardOnly type recordsets + executeDirect = 0x2000, // Directly execute SQL rather than prepared execute + optimizeBulkAdd = 0x4000, // Use prepared HSTMT for multiple AddNews, dirty fields must not change. + firstBulkAdd = 0x8000, // INTERNAL to MFC, don't specify on Open. + }; + virtual BOOL Open(UINT nOpenType = AFX_DB_USE_DEFAULT_TYPE, + LPCTSTR lpszSQL = NULL, DWORD dwOptions = none); + virtual void Close(); + +// Attributes +public: + HSTMT m_hstmt; // Source statement for this resultset + CDatabase* m_pDatabase; // Source database for this resultset + + CString m_strFilter; // Where clause + CString m_strSort; // Order By Clause + + BOOL CanAppend() const; // Can AddNew be called? + BOOL CanRestart() const; // Can Requery be called to restart a query? + BOOL CanScroll() const; // Can MovePrev and MoveFirst be called? + BOOL CanTransact() const; // Are Transactions supported? + BOOL CanUpdate() const; // Can Edit/AddNew/Delete be called? + BOOL CanBookmark() const; // Can Get/SetBookmark be called? + + const CString& GetSQL() const; // SQL executed for this recordset + const CString& GetTableName() const; // Table name + + BOOL IsOpen() const; // Recordset successfully opened? + BOOL IsBOF() const; // Beginning Of File + BOOL IsEOF() const; // End Of File + BOOL IsDeleted() const; // On a deleted record + + BOOL IsFieldDirty(void *pv); // has field been updated? + BOOL IsFieldNull(void *pv); // is field NULL valued? + BOOL IsFieldNullable(void *pv); // can field be set to a NULL value + + long GetRecordCount() const; // Records seen so far or -1 if unknown + void GetStatus(CRecordsetStatus& rStatus) const; + +// Operations +public: + // cursor operations + void MoveNext(); + void MovePrev(); + void MoveFirst(); + void MoveLast(); + virtual void Move(long nRows, WORD wFetchType = SQL_FETCH_RELATIVE); + + void SetAbsolutePosition(long nRows); + + void GetBookmark(CDBVariant& varBookmark); + void SetBookmark(const CDBVariant& varBookmark); + + virtual void SetRowsetSize(DWORD dwNewRowsetSize); + DWORD GetRowsetSize() const; + DWORD GetRowsFetched() const; + virtual void CheckRowsetError(RETCODE nRetCode); + void RefreshRowset(WORD wRow, WORD wLockType = SQL_LOCK_NO_CHANGE); + void SetRowsetCursorPosition(WORD wRow, WORD wLockType = SQL_LOCK_NO_CHANGE); + WORD GetRowStatus(WORD wRow) const; + + // edit buffer operations + virtual void AddNew(); // add new record at the end + virtual void Edit(); // start editing + virtual BOOL Update(); // update it + virtual void Delete(); // delete the current record + void CancelUpdate(); // cancel pending Edit/AddNew + + BOOL FlushResultSet() const; + + // field operations + short GetODBCFieldCount() const; + void GetODBCFieldInfo(short nIndex, CODBCFieldInfo& fieldinfo); + void GetODBCFieldInfo(LPCTSTR lpszName, CODBCFieldInfo& fieldinfo); + void GetFieldValue(LPCTSTR lpszName, CDBVariant& varValue, + short nFieldType = DEFAULT_FIELD_TYPE); + void GetFieldValue(short nIndex, CDBVariant& varValue, + short nFieldType = DEFAULT_FIELD_TYPE); + void GetFieldValue(LPCTSTR lpszName, CString& strValue); + void GetFieldValue(short nIndex, CString& strValue); + + void SetFieldDirty(void *pv, BOOL bDirty = TRUE); + void SetFieldNull(void *pv, BOOL bNull = TRUE); + + // locking control during Edit + enum LockMode + { + optimistic, + pessimistic, + }; + void SetLockingMode(UINT nMode); + + // Recordset operations + virtual BOOL Requery(); // Re-execute query based on new params + + // Cancel asynchronous operation + void Cancel(); + +// Overridables +public: + // Get default connect string + virtual CString GetDefaultConnect(); + + // Get SQL to execute + virtual CString GetDefaultSQL(); + + // set special options + virtual void OnSetOptions(HSTMT hstmt); + + // for recordset field exchange + virtual void DoFieldExchange(CFieldExchange* pFX); + virtual void DoBulkFieldExchange(CFieldExchange* pFX); + +// Implementation +public: +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif //_DEBUG + + virtual BOOL Check(RETCODE nRetCode) const; // general error check + + void InitRecord(); + void ResetCursor(); + void CheckRowsetCurrencyStatus(UWORD wFetchType, long nRows); + RETCODE FetchData(UWORD wFetchType, SDWORD nRow, + DWORD* pdwRowsFetched); + void SkipDeletedRecords(UWORD wFetchType, long nRows, + DWORD* pdwRowsFetched, RETCODE* pnRetCode); + virtual void SetRowsetCurrencyStatus(RETCODE nRetCode, + UWORD wFetchType, long nRows, DWORD dwRowsFetched); + + virtual void PreBindFields(); // called before data fields are bound + UINT m_nFields; // number of RFX fields + UINT m_nParams; // number of RFX params + BOOL m_bCheckCacheForDirtyFields; // switch for dirty field checking + BOOL m_bRebindParams; // date or UNICODE text parameter existence flag + BOOL m_bLongBinaryColumns; // long binary column existence flag + BOOL m_bUseUpdateSQL; // uses SQL-based updates + DWORD m_dwOptions; // archive dwOptions on Open + SWORD m_nResultCols; // number of columns in result set + BOOL m_bUseODBCCursorLib; // uses ODBC cursor lib if m_pDatabase not Open + CODBCFieldInfo* m_rgODBCFieldInfos; // Array of field info structs with ODBC meta-data + CFieldInfo* m_rgFieldInfos; // Array of field info structs with MFC specific field data + CMapPtrToPtr m_mapFieldIndex; // Map of member address to field index + CMapPtrToPtr m_mapParamIndex; // Map of member address to field index + + BOOL IsSQLUpdatable(LPCTSTR lpszSQL); + BOOL IsSelectQueryUpdatable(LPCTSTR lpszSQL); + static BOOL PASCAL IsJoin(LPCTSTR lpszJoinClause); + static LPCTSTR PASCAL FindSQLToken(LPCTSTR lpszSQL, LPCTSTR lpszSQLToken); + + // RFX Operations on fields of CRecordset + UINT BindParams(HSTMT hstmt); + void RebindParams(HSTMT hstmt); + UINT BindFieldsToColumns(); + void BindFieldsForUpdate(); + void UnbindFieldsForUpdate(); + void Fixups(); + UINT AppendNames(CString* pstr, LPCTSTR szSeparator); + UINT AppendValues(HSTMT hstmt, CString* pstr, LPCTSTR szSeparator); + UINT AppendNamesValues(HSTMT hstmt, CString* pstr, LPCTSTR szSeparator); + void StoreFields(); + void LoadFields(); + void MarkForAddNew(); + void MarkForUpdate(); + void AllocDataCache(); + void FreeDataCache(); +#ifdef _DEBUG + void DumpFields(CDumpContext& dc) const; +#endif //_DEBUG + + // RFX operation helper functions + virtual void ThrowDBException(RETCODE nRetCode, HSTMT hstmt = SQL_NULL_HSTMT); + + int GetBoundFieldIndex(void* pv); + int GetBoundParamIndex(void* pv); + short GetFieldIndexByName(LPCTSTR lpszFieldName); + + void AllocStatusArrays(); + long* GetFieldLengthBuffer(DWORD nField, int nFieldType); // for fields & params + + BYTE GetFieldStatus(DWORD nField); + void SetFieldStatus(DWORD nField, BYTE bFlags); + void ClearFieldStatus(); + + BOOL IsFieldStatusDirty(DWORD nField) const; + void SetDirtyFieldStatus(DWORD nField); + void ClearDirtyFieldStatus(DWORD nField); + + BOOL IsFieldStatusNull(DWORD nField) const; + void SetNullFieldStatus(DWORD nField); + void ClearNullFieldStatus(DWORD nField); + + BOOL IsParamStatusNull(DWORD nField) const; + void SetNullParamStatus(DWORD nField); + void ClearNullParamStatus(DWORD nField); + + BOOL IsFieldNullable(DWORD nField) const; + + void** m_pvFieldProxy; + void** m_pvParamProxy; + UINT m_nProxyFields; + UINT m_nProxyParams; + + // GetFieldValue helpers + static short PASCAL GetDefaultFieldType(short nSQLType); + static void* PASCAL GetDataBuffer(CDBVariant& varValue, short nFieldType, + int* pnLen, short nSQLType, UDWORD nPrecision); + static int PASCAL GetTextLen(short nSQLType, UDWORD nPrecision); + static long PASCAL GetData(CDatabase* pdb, HSTMT hstmt, short nFieldIndex, + short nFieldType, LPVOID pvData, int nLen, short nSQLType); + static void PASCAL GetLongBinaryDataAndCleanup(CDatabase* pdb, HSTMT hstmt, + short nFieldIndex, long nActualSize, LPVOID* ppvData, int nLen, + CDBVariant& varValue, short nSQLType); + static void PASCAL GetLongCharDataAndCleanup(CDatabase* pdb, HSTMT hstmt, + short nFieldIndex, long nActualSize, LPVOID* ppvData, int nLen, + CString& strValue, short nSQLType); + +protected: + UINT m_nOpenType; + UINT m_nDefaultType; + enum EditMode + { + noMode, + edit, + addnew + }; + long m_lOpen; + UINT m_nEditMode; + BOOL m_bEOFSeen; + long m_lRecordCount; + long m_lCurrentRecord; + CString m_strCursorName; + // Perform operation based on m_nEditMode + BOOL UpdateInsertDelete(); + BOOL m_nLockMode; // Control concurrency for Edit() + UDWORD m_dwDriverConcurrency; // driver supported concurrency types + UDWORD m_dwConcurrency; // requested concurrency type + UWORD* m_rgRowStatus; // row status used by SQLExtendedFetch and SQLSetPos + DWORD m_dwRowsFetched; // number of rows fetched by SQLExtendedFetch + HSTMT m_hstmtUpdate; + BOOL m_bRecordsetDb; + BOOL m_bBOF; + BOOL m_bEOF; + BOOL m_bUpdatable; // Is recordset updatable? + BOOL m_bAppendable; + CString m_strSQL; // SQL statement for recordset + CString m_strUpdateSQL; // SQL statement for updates + CString m_strTableName; // source table of recordset + BOOL m_bScrollable; // supports MovePrev + BOOL m_bDeleted; + int m_nFieldsBound; + BYTE* m_pbFieldFlags; + BYTE* m_pbParamFlags; + LONG* m_plParamLength; + DWORD m_dwInitialGetDataLen; // Initial GetFieldValue alloc size for long data + DWORD m_dwRowsetSize; + DWORD m_dwAllocatedRowsetSize; + +protected: + CString m_strRequerySQL; // archive SQL string for use in Requery() + CString m_strRequeryFilter; // archive filter string for use in Requery() + CString m_strRequerySort; // archive sort string for use in Requery() + + void SetState(int nOpenType, LPCTSTR lpszSQL, DWORD dwOptions); + BOOL AllocHstmt(); + void BuildSQL(LPCTSTR lpszSQL); + void PrepareAndExecute(); + + void BuildSelectSQL(); + void AppendFilterAndSortSQL(); + BOOL IsRecordsetUpdatable(); + + void VerifyDriverBehavior(); + DWORD VerifyCursorSupport(); + void EnableBookmarks(); + void SetUpdateMethod(); + void SetConcurrencyAndCursorType(HSTMT hstmt, DWORD dwScrollOptions); + void AllocAndCacheFieldInfo(); + void AllocRowset(); + void FreeRowset(); + + void ExecuteSetPosUpdate(); + void PrepareUpdateHstmt(); + void BuildUpdateSQL(); + void ExecuteUpdateSQL(); + void SendLongBinaryData(HSTMT hstmt); + virtual long GetLBFetchSize(long lOldSize); // CLongBinary fetch chunking + virtual long GetLBReallocSize(long lOldSize); // CLongBinary realloc chunking + + friend class CFieldExchange; + friend class CRecordView; +}; + +///////////////////////////////////////////////////////////////////////////// +// Info helper definitions +#define AFX_CURRENT_RECORD_UNDEFINED (-2) +#define AFX_CURRENT_RECORD_BOF (-1) + +// For returning status for a recordset +struct CRecordsetStatus +{ + long m_lCurrentRecord; // -2=Unknown,-1=BOF,0=1st record. . . + BOOL m_bRecordCountFinal;// Have we counted all records? +}; + +// Must maintian data binding info +struct CFieldInfo +{ + // MFC specific info + void* m_pvDataCache; + long m_nLength; + int m_nDataType; + BYTE m_bStatus; +#ifdef _DEBUG + void* m_pvBindAddress; +#endif +}; + +struct CODBCFieldInfo +{ + // meta data from ODBC + CString m_strName; + SWORD m_nSQLType; + UDWORD m_nPrecision; + SWORD m_nScale; + SWORD m_nNullability; +}; + +struct CODBCParamInfo +{ + // meta data from ODBC + SWORD m_nSQLType; + UDWORD m_nPrecision; + SWORD m_nScale; + SWORD m_nNullability; +}; + + +///////////////////////////////////////////////////////////////////////////// +// CDBVariant + +#define DBVT_NULL 0 +#define DBVT_BOOL 1 +#define DBVT_UCHAR 2 +#define DBVT_SHORT 3 +#define DBVT_LONG 4 +#define DBVT_SINGLE 5 +#define DBVT_DOUBLE 6 +#define DBVT_DATE 7 +#define DBVT_STRING 8 +#define DBVT_BINARY 9 + +class CDBVariant +{ +// Constructor +public: + CDBVariant(); + +// Attributes +public: + DWORD m_dwType; + + union + { + BOOL m_boolVal; + unsigned char m_chVal; + short m_iVal; + long m_lVal; + float m_fltVal; + double m_dblVal; + TIMESTAMP_STRUCT* m_pdate; + CString* m_pstring; + CLongBinary* m_pbinary; + }; + +// Operations + void Clear(); + +// Implementation +public: + virtual ~CDBVariant(); +}; + +///////////////////////////////////////////////////////////////////////////// +// CRecordView - form for viewing data records + +class CRecordView : public CFormView +{ + DECLARE_DYNAMIC(CRecordView) + +// Construction +protected: // must derive your own class + CRecordView(LPCTSTR lpszTemplateName); + CRecordView(UINT nIDTemplate); + +// Attributes +public: + virtual CRecordset* OnGetRecordset() = 0; + + BOOL IsOnLastRecord(); + BOOL IsOnFirstRecord(); + +// Operations +public: + virtual BOOL OnMove(UINT nIDMoveCommand); + +// Implementation +public: + virtual ~CRecordView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual void OnInitialUpdate(); + +protected: + BOOL m_bOnFirstRecord; + BOOL m_bOnLastRecord; + + //{{AFX_MSG(CRecordView) + afx_msg void OnUpdateRecordFirst(CCmdUI* pCmdUI); + afx_msg void OnUpdateRecordPrev(CCmdUI* pCmdUI); + afx_msg void OnUpdateRecordNext(CCmdUI* pCmdUI); + afx_msg void OnUpdateRecordLast(CCmdUI* pCmdUI); + //}}AFX_MSG + afx_msg void OnMove(int cx, int cy); + + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXDBCORE_INLINE inline +#define _AFXDBRFX_INLINE inline +#define _AFXDBVIEW_INLINE inline +#include <afxdb.inl> +#undef _AFXDBVIEW_INLINE +#undef _AFXDBCORE_INLINE +#undef _AFXDBRFX_INLINE +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif //__AFXDB_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxdb.inl b/public/sdk/inc/mfc42/afxdb.inl new file mode 100644 index 000000000..cec6cd123 --- /dev/null +++ b/public/sdk/inc/mfc42/afxdb.inl @@ -0,0 +1,113 @@ +// 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. + +// Inlines for AFXDB.H + +///////////////////////////////////////////////////////////////////////////// +// General database inlines + +#ifdef _AFXDBCORE_INLINE + +// CDatabase inlines +_AFXDBCORE_INLINE BOOL CDatabase::IsOpen() const + { ASSERT_VALID(this); return m_hdbc != SQL_NULL_HDBC; } +_AFXDBCORE_INLINE BOOL CDatabase::CanUpdate() const + { ASSERT(IsOpen()); return m_bUpdatable; } +_AFXDBCORE_INLINE BOOL CDatabase::CanTransact() const + { ASSERT(IsOpen()); return m_bTransactions; } +_AFXDBCORE_INLINE void CDatabase::SetLoginTimeout(DWORD dwSeconds) + { ASSERT_VALID(this); m_dwLoginTimeout = dwSeconds; } +_AFXDBCORE_INLINE void CDatabase::SetQueryTimeout(DWORD dwSeconds) + { ASSERT_VALID(this); m_dwQueryTimeout = dwSeconds; } +_AFXDBCORE_INLINE const CString& CDatabase::GetConnect() const + { ASSERT_VALID(this); return m_strConnect; } +_AFXDBCORE_INLINE DWORD CDatabase::GetBookmarkPersistence() const + { ASSERT_VALID(this); return m_dwBookmarkAttributes; } +_AFXDBCORE_INLINE int CDatabase::GetCursorCommitBehavior() const + { ASSERT_VALID(this); return m_nCursorCommitBehavior; } +_AFXDBCORE_INLINE int CDatabase::GetCursorRollbackBehavior() const + { ASSERT_VALID(this); return m_nCursorRollbackBehavior; } +_AFXDBCORE_INLINE void CDatabase::ThrowDBException(RETCODE nRetCode) + { ASSERT_VALID(this); AfxThrowDBException(nRetCode, this, m_hstmt); } +_AFXDBCORE_INLINE void CDatabase::SetSynchronousMode(BOOL /* bSynchronous */ ) + { ASSERT_VALID(this); TRACE0("Error: SetSynchronousMode is obsolete and has not effect.\n"); } + +// CRecordset inlines +_AFXDBCORE_INLINE const CString& CRecordset::GetSQL() const + { ASSERT(IsOpen()); return m_strSQL; } +_AFXDBCORE_INLINE const CString& CRecordset::GetTableName() const + { ASSERT(IsOpen()); return m_strTableName; } +_AFXDBCORE_INLINE BOOL CRecordset::IsBOF() const + { ASSERT(IsOpen()); return m_bBOF; } +_AFXDBCORE_INLINE BOOL CRecordset::IsEOF() const + { ASSERT(IsOpen()); return m_bEOF; } +_AFXDBCORE_INLINE BOOL CRecordset::IsDeleted() const + { ASSERT(IsOpen()); return m_bDeleted; } +_AFXDBCORE_INLINE BOOL CRecordset::CanUpdate() const + { ASSERT(IsOpen()); return m_bUpdatable; } +_AFXDBCORE_INLINE BOOL CRecordset::CanScroll() const + { ASSERT(IsOpen()); return m_bScrollable; } +_AFXDBCORE_INLINE BOOL CRecordset::CanAppend() const + { ASSERT(IsOpen()); return m_bAppendable; } +_AFXDBCORE_INLINE BOOL CRecordset::CanRestart() const + { ASSERT(IsOpen()); return !(m_dwOptions & executeDirect); } +_AFXDBCORE_INLINE BOOL CRecordset::CanTransact() const + { ASSERT(m_pDatabase->IsOpen()); + return m_pDatabase->m_bTransactions; } +_AFXDBCORE_INLINE short CRecordset::GetODBCFieldCount() const + { ASSERT(IsOpen()); return m_nResultCols; } +_AFXDBCORE_INLINE DWORD CRecordset::GetRowsetSize() const + { ASSERT(IsOpen()); return m_dwRowsetSize; } +_AFXDBCORE_INLINE DWORD CRecordset::GetRowsFetched() const + { ASSERT(IsOpen()); return m_dwRowsFetched; } +_AFXDBCORE_INLINE WORD CRecordset::GetRowStatus(WORD wRow) const + { ASSERT(IsOpen()); ASSERT(wRow > 0); return m_rgRowStatus[wRow-1]; } +_AFXDBCORE_INLINE long CRecordset::GetRecordCount() const + { ASSERT(IsOpen()); return m_lRecordCount; } +_AFXDBCORE_INLINE void CRecordset::GetStatus(CRecordsetStatus& rStatus) const + { ASSERT(IsOpen()); + rStatus.m_lCurrentRecord = m_lCurrentRecord; + rStatus.m_bRecordCountFinal = m_bEOFSeen; } +_AFXDBCORE_INLINE void CRecordset::ThrowDBException(RETCODE nRetCode, HSTMT hstmt) + { ASSERT_VALID(this); AfxThrowDBException(nRetCode, m_pDatabase, + (hstmt == SQL_NULL_HSTMT)? m_hstmt : hstmt); } +_AFXDBCORE_INLINE void CRecordset::MoveNext() + { ASSERT(IsOpen()); Move(1, SQL_FETCH_NEXT); } +_AFXDBCORE_INLINE void CRecordset::MovePrev() + { ASSERT(IsOpen()); Move(1, SQL_FETCH_PRIOR); } +_AFXDBCORE_INLINE void CRecordset::MoveFirst() + { ASSERT(IsOpen()); Move(1, SQL_FETCH_FIRST); } +_AFXDBCORE_INLINE void CRecordset::MoveLast() + { ASSERT(IsOpen()); Move(1, SQL_FETCH_LAST); } +_AFXDBCORE_INLINE void CRecordset::SetAbsolutePosition(long nRows) + { ASSERT(IsOpen()); Move(nRows, SQL_FETCH_ABSOLUTE); } + +#endif //_AFXDBCORE_INLINE + +#ifdef _AFXDBRFX_INLINE + +_AFXDBRFX_INLINE void CFieldExchange::SetFieldType(UINT nFieldType) + { ASSERT(nFieldType == outputColumn || + nFieldType == inputParam || + nFieldType == outputParam || + nFieldType == inoutParam); + m_nFieldType = nFieldType; } + +#endif //_AFXDBRFX_INLINE + +#ifdef _AFXDBVIEW_INLINE + +// CRecordView inlines +_AFXDBVIEW_INLINE void CRecordView::OnMove(int cx, int cy) + { CFormView::OnMove(cx, cy); } + +#endif + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxdb.rc b/public/sdk/inc/mfc42/afxdb.rc new file mode 100644 index 000000000..ae92138d7 --- /dev/null +++ b/public/sdk/inc/mfc42/afxdb.rc @@ -0,0 +1,103 @@ +// 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. + +#ifndef __AFXDB_RC__ +#define __AFXDB_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Database Resources + +// Database strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_SQL_CONNECT_FAIL + "Attempt to connect to datasource failed" + AFX_IDP_SQL_RECORDSET_FORWARD_ONLY + "Recordset supports forward movement only." + AFX_IDP_SQL_EMPTY_COLUMN_LIST + "Attempt to open a table failed - there were no columns to retrieve were specified." + AFX_IDP_SQL_FIELD_SCHEMA_MISMATCH + "Unexpected column data types were returned from query." + AFX_IDP_SQL_ILLEGAL_MODE "Attempt to Update or Delete failed." + AFX_IDP_SQL_MULTIPLE_ROWS_AFFECTED "Multiple rows were updated." + AFX_IDP_SQL_NO_CURRENT_RECORD "Operation failed, no current record." + AFX_IDP_SQL_NO_ROWS_AFFECTED + "No rows were affected by the update or delete operation." + AFX_IDP_SQL_RECORDSET_READONLY "Recordset is read-only" + AFX_IDP_SQL_SQL_NO_TOTAL + "ODBC driver doesn't support MFC LongBinary data model." + AFX_IDP_SQL_ODBC_LOAD_FAILED + "Attempt to load required component ODBC32.DLL failed." + AFX_IDP_SQL_DYNASET_NOT_SUPPORTED + "ODBC driver does not support dynasets." + AFX_IDP_SQL_SNAPSHOT_NOT_SUPPORTED + "ODBC static cursors required for snapshot support." + AFX_IDP_SQL_API_CONFORMANCE + "ODBC driver incompatible with MFC database classes (API_CONFORMANCE >= SQL_OAC_LEVEL1 required)." + AFX_IDP_SQL_SQL_CONFORMANCE + "ODBC driver incompatible with MFC database classes (SQL_CONFORMANCE >= SQL_OSC_MINIMUM required)." + AFX_IDP_SQL_NO_DATA_FOUND + "Attempt to scroll past end or before beginning of data." + AFX_IDP_SQL_ROW_UPDATE_NOT_SUPPORTED + "Dynasets not supported by ODBC driver." + AFX_IDP_SQL_ODBC_V2_REQUIRED + "ODBC Level 2 compliant driver required." + AFX_IDP_SQL_NO_POSITIONED_UPDATES + "Positioned updates not supported by ODBC driver." + AFX_IDP_SQL_LOCK_MODE_NOT_SUPPORTED + "Requested lock mode is not supported." + AFX_IDP_SQL_DATA_TRUNCATED + "Data truncated." + AFX_IDP_SQL_ROW_FETCH + "Error retrieving record." + AFX_IDP_SQL_INCORRECT_ODBC + "A required ODBC entry point was not found. Make sure ODBC is installed correctly." + AFX_IDP_SQL_UPDATE_DELETE_FAILED + "Update or Delete failed." + AFX_IDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED + "Dynamic cursors not supported by ODBC driver." + AFX_IDP_SQL_FIELD_NOT_FOUND + "Invalid field name or field index." + AFX_IDP_SQL_BOOKMARKS_NOT_SUPPORTED + "Bookmarks not supported for ODBC driver." + AFX_IDP_SQL_BOOKMARKS_NOT_ENABLED + "Bookmarks not enabled on recordset." + AFX_IDP_DAO_ENGINE_INITIALIZATION + "Unable to initialize DAO/Jet db engine." + AFX_IDP_DAO_DFX_BIND + "Bad DFX value parameter." + AFX_IDP_DAO_OBJECT_NOT_OPEN + "DAO TableDef or QueryDef not Open." + AFX_IDP_DAO_ROWTOOSHORT + "GetRows failed. Not enough memory allocated for row." + AFX_IDP_DAO_BADBINDINFO + "GetRows binding error. Probably caused by datatype mismatch." + AFX_IDP_DAO_COLUMNUNAVAILABLE + "GetRows failed. The requested column is not a member of this recordset." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXDB_RC__ diff --git a/public/sdk/inc/mfc42/afxdb_.h b/public/sdk/inc/mfc42/afxdb_.h new file mode 100644 index 000000000..b9201a989 --- /dev/null +++ b/public/sdk/inc/mfc42/afxdb_.h @@ -0,0 +1,72 @@ +// 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. + +// Do not include this file directly (included by AFXDB.H & AFXDAO.H) + +#ifndef __AFXDB__H__ +#define __AFXDB__H__ + +////////////////////////////////////////////////////////////////////////////// +// Recordset Field exchange for ODBC & DAO classes (RFX_ and DFX_) + +#define AFX_RFX_SHORT_PSEUDO_NULL (0x7EE4) +#define AFX_RFX_INT_PSEUDO_NULL (0x7EE4) +#define AFX_RFX_LONG_PSEUDO_NULL (0x4a4d4120L) +#define AFX_RFX_BYTE_PSEUDO_NULL 255 +#define AFX_RFX_SINGLE_PSEUDO_NULL (-9.123e19f) +#define AFX_RFX_DOUBLE_PSEUDO_NULL (-9.123e19) +#define AFX_RFX_BOOL_PSEUDO_NULL 2 +#define AFX_RFX_DATE_PSEUDO_NULL CTime(0) +#define AFX_RFX_TIMESTAMP_PSEUDO_NULL 99 + +#define AFX_RFX_NO_TYPE 0 +#define AFX_RFX_BOOL 1 +#define AFX_RFX_BYTE 2 +#define AFX_RFX_INT 3 +#define AFX_RFX_LONG 4 +#define AFX_RFX_SINGLE 6 +#define AFX_RFX_DOUBLE 7 +#define AFX_RFX_DATE 8 +#define AFX_RFX_BINARY 9 +#define AFX_RFX_TEXT 10 +#define AFX_RFX_LONGBINARY 11 +#define AFX_RFX_SHORT 12 +#define AFX_RFX_CURRENCY 13 +#define AFX_RFX_OLEDATETIME 14 +#define AFX_RFX_TIMESTAMP 15 + +////////////////////////////////////////////////////////////////////////////// +// CLongBinary - a Long (generally > 32k in length) Binary object + +class CLongBinary : public CObject +{ + DECLARE_DYNAMIC(CLongBinary) + +// Constructors +public: + CLongBinary(); + +// Attributes + HGLOBAL m_hData; + DWORD m_dwDataLength; + +// Implementation +public: + virtual ~CLongBinary(); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif //_DEBUG +}; + +////////////////////////////////////////////////////////////////////////////// + +#endif // __AFXDB__H__ diff --git a/public/sdk/inc/mfc42/afxdd_.h b/public/sdk/inc/mfc42/afxdd_.h new file mode 100644 index 000000000..43ea703a6 --- /dev/null +++ b/public/sdk/inc/mfc42/afxdd_.h @@ -0,0 +1,64 @@ +// 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. + +// Do not include this file directly (included by AFXWIN.H) + +///////////////////////////////////////////////////////////////////////////// +// Standard Dialog Data Exchange routines + +class COleCurrency; // forward reference (see afxdisp.h) +class COleDateTime; // forward reference (see afxdisp.h) + +// simple text operations +void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, BYTE& value); +void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, short& value); +void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, int& value); +void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, UINT& value); +void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, long& value); +void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, DWORD& value); +void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, CString& value); +void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, float& value); +void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, double& value); +void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, COleCurrency& value); +void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, COleDateTime& value); + +// special control types +void AFXAPI DDX_Check(CDataExchange* pDX, int nIDC, int& value); +void AFXAPI DDX_Radio(CDataExchange* pDX, int nIDC, int& value); +void AFXAPI DDX_LBString(CDataExchange* pDX, int nIDC, CString& value); +void AFXAPI DDX_CBString(CDataExchange* pDX, int nIDC, CString& value); +void AFXAPI DDX_LBIndex(CDataExchange* pDX, int nIDC, int& index); +void AFXAPI DDX_CBIndex(CDataExchange* pDX, int nIDC, int& index); +void AFXAPI DDX_LBStringExact(CDataExchange* pDX, int nIDC, CString& value); +void AFXAPI DDX_CBStringExact(CDataExchange* pDX, int nIDC, CString& value); +void AFXAPI DDX_Scroll(CDataExchange* pDX, int nIDC, int& value); + +// for getting access to the actual controls +void AFXAPI DDX_Control(CDataExchange* pDX, int nIDC, CWnd& rControl); + +///////////////////////////////////////////////////////////////////////////// +// Standard Dialog Data Validation routines + +// range - value must be >= minVal and <= maxVal +// NOTE: you will require casts for 'minVal' and 'maxVal' to use the +// UINT, DWORD or float types +void AFXAPI DDV_MinMaxByte(CDataExchange* pDX, BYTE value, BYTE minVal, BYTE maxVal); +void AFXAPI DDV_MinMaxShort(CDataExchange* pDX, short value, short minVal, short maxVal); +void AFXAPI DDV_MinMaxInt(CDataExchange* pDX, int value, int minVal, int maxVal); +void AFXAPI DDV_MinMaxLong(CDataExchange* pDX, long value, long minVal, long maxVal); +void AFXAPI DDV_MinMaxUInt(CDataExchange* pDX, UINT value, UINT minVal, UINT maxVal); +void AFXAPI DDV_MinMaxDWord(CDataExchange* pDX, DWORD value, DWORD minVal, DWORD maxVal); +void AFXAPI DDV_MinMaxFloat(CDataExchange* pDX, float const& value, float minVal, float maxVal); +void AFXAPI DDV_MinMaxDouble(CDataExchange* pDX, double const& value, double minVal, double maxVal); + +// number of characters +void AFXAPI DDV_MaxChars(CDataExchange* pDX, CString const& value, int nChars); + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxdisp.h b/public/sdk/inc/mfc42/afxdisp.h new file mode 100644 index 000000000..afed8c8d0 --- /dev/null +++ b/public/sdk/inc/mfc42/afxdisp.h @@ -0,0 +1,1413 @@ +// 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. + +#ifndef __AFXDISP_H__ +#define __AFXDISP_H__ + +#ifdef _AFX_NO_OLE_SUPPORT + #error OLE classes not supported in this library variant. +#endif + +#ifndef __AFXWIN_H__ + #include <afxwin.h> +#endif + +// include necessary OLE headers +#ifndef _OBJBASE_H_ + #include <objbase.h> +#endif +#ifndef _OLEAUTO_H_ + #include <oleauto.h> +#endif +#ifndef _OLECTL_H_ + #include <olectl.h> +#endif +//REVIEW: This header has no symbol to prevent repeated includes +#include <olectlid.h> +#ifndef __ocidl_h__ + #include <ocidl.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifndef _AFX_NOFORCE_LIBS +#ifndef _MAC + +///////////////////////////////////////////////////////////////////////////// +// Win32 libraries + +#ifdef _AFXDLL + #if defined(_DEBUG) && !defined(_AFX_MONOLITHIC) + #ifndef _UNICODE + #pragma comment(lib, "mfco42d.lib") + #else + #pragma comment(lib, "mfco42ud.lib") + #endif + #endif +#endif + +#pragma comment(lib, "oledlg.lib") +#pragma comment(lib, "ole32.lib") +#pragma comment(lib, "olepro32.lib") +#pragma comment(lib, "oleaut32.lib") +#pragma comment(lib, "uuid.lib") +#pragma comment(lib, "urlmon.lib") + +#else //!_MAC + +///////////////////////////////////////////////////////////////////////////// +// Mac libraries + +#ifdef _AFXDLL + #ifdef _DEBUG + #pragma comment(lib, "mfco42pd.lib") + #else + #pragma comment(lib, "mfco42p.lib") + #endif +#endif + +#if !defined(_AFXDLL) && !defined(_USRDLL) + #ifdef _DEBUG + #pragma comment(lib, "wlmoled.lib") + #pragma comment(lib, "ole2uid.lib") + #else + #pragma comment(lib, "wlmole.lib") + #pragma comment(lib, "ole2ui.lib") + #endif + #pragma comment(linker, "/macres:ole2ui.rsc") +#else + #ifdef _DEBUG + #pragma comment(lib, "oledlgd.lib") + #pragma comment(lib, "msvcoled.lib") + #else + #pragma comment(lib, "oledlg.lib") + #pragma comment(lib, "msvcole.lib") + #endif +#endif + +#pragma comment(lib, "uuid.lib") + +#ifdef _DEBUG + #pragma comment(lib, "ole2d.lib") + #pragma comment(lib, "ole2autd.lib") +#else + #pragma comment(lib, "ole2.lib") + #pragma comment(lib, "ole2auto.lib") +#endif + +#endif //_MAC +#endif //!_AFX_NOFORCE_LIBS + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// AFXDISP - MFC IDispatch & ClassFactory support + +// Classes declared in this file + +//CException + class COleException; // caught by client or server + class COleDispatchException; // special exception for IDispatch calls + +//CCmdTarget + class COleObjectFactory; // glue for IClassFactory -> runtime class + class COleTemplateServer; // server documents using CDocTemplate + +class COleDispatchDriver; // helper class to call IDispatch + +class COleVariant; // OLE VARIANT wrapper +class COleCurrency; // Based on OLE CY +class COleDateTime; // Based on OLE DATE +class COleDateTimeSpan; // Based on a double +class COleSafeArray; // Based on OLE VARIANT +///////////////////////////////////////////////////////////////////////////// + +// AFXDLL support +#undef AFX_DATA +#define AFX_DATA AFX_OLE_DATA + +///////////////////////////////////////////////////////////////////////////// +// OLE COM (Component Object Model) implementation infrastructure +// - data driven QueryInterface +// - standard implementation of aggregate AddRef and Release +// (see CCmdTarget in AFXWIN.H for more information) + +#define METHOD_PROLOGUE(theClass, localClass) \ + theClass* pThis = \ + ((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \ + AFX_MANAGE_STATE(pThis->m_pModuleState) \ + +#define METHOD_PROLOGUE_(theClass, localClass) \ + theClass* pThis = \ + ((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \ + +#ifndef _AFX_NO_NESTED_DERIVATION +#define METHOD_PROLOGUE_EX(theClass, localClass) \ + theClass* pThis = ((theClass*)((BYTE*)this - m_nOffset)); \ + AFX_MANAGE_STATE(pThis->m_pModuleState) \ + +#define METHOD_PROLOGUE_EX_(theClass, localClass) \ + theClass* pThis = ((theClass*)((BYTE*)this - m_nOffset)); \ + +#else +#define METHOD_PROLOGUE_EX(theClass, localClass) \ + METHOD_PROLOGUE(theClass, localClass) \ + +#define METHOD_PROLOGUE_EX_(theClass, localClass) \ + METHOD_PROLOGUE_(theClass, localClass) \ + +#endif + +// Provided only for compatibility with CDK 1.x +#define METHOD_MANAGE_STATE(theClass, localClass) \ + METHOD_PROLOGUE_EX(theClass, localClass) \ + +#define BEGIN_INTERFACE_PART(localClass, baseClass) \ + class X##localClass : public baseClass \ + { \ + public: \ + STDMETHOD_(ULONG, AddRef)(); \ + STDMETHOD_(ULONG, Release)(); \ + STDMETHOD(QueryInterface)(REFIID iid, LPVOID* ppvObj); \ + +#ifndef _AFX_NO_NESTED_DERIVATION +#define BEGIN_INTERFACE_PART_DERIVE(localClass, baseClass) \ + class X##localClass : public baseClass \ + { \ + public: \ + +#else +#define BEGIN_INTERFACE_PART_DERIVE(localClass, baseClass) \ + BEGIN_INTERFACE_PART(localClass, baseClass) \ + +#endif + +#ifndef _AFX_NO_NESTED_DERIVATION +#define INIT_INTERFACE_PART(theClass, localClass) \ + size_t m_nOffset; \ + INIT_INTERFACE_PART_DERIVE(theClass, localClass) \ + +#define INIT_INTERFACE_PART_DERIVE(theClass, localClass) \ + X##localClass() \ + { m_nOffset = offsetof(theClass, m_x##localClass); } \ + +#else +#define INIT_INTERFACE_PART(theClass, localClass) +#define INIT_INTERFACE_PART_DERIVE(theClass, localClass) + +#endif + +// Note: Inserts the rest of OLE functionality between these two macros, +// depending upon the interface that is being implemented. It is not +// necessary to include AddRef, Release, and QueryInterface since those +// member functions are declared by the macro. + +#define END_INTERFACE_PART(localClass) \ + } m_x##localClass; \ + friend class X##localClass; \ + +#ifdef _AFXDLL +#define BEGIN_INTERFACE_MAP(theClass, theBase) \ + const AFX_INTERFACEMAP* PASCAL theClass::_GetBaseInterfaceMap() \ + { return &theBase::interfaceMap; } \ + const AFX_INTERFACEMAP* theClass::GetInterfaceMap() const \ + { return &theClass::interfaceMap; } \ + const AFX_DATADEF AFX_INTERFACEMAP theClass::interfaceMap = \ + { &theClass::_GetBaseInterfaceMap, &theClass::_interfaceEntries[0], }; \ + const AFX_DATADEF AFX_INTERFACEMAP_ENTRY theClass::_interfaceEntries[] = \ + { \ + +#else +#define BEGIN_INTERFACE_MAP(theClass, theBase) \ + const AFX_INTERFACEMAP* theClass::GetInterfaceMap() const \ + { return &theClass::interfaceMap; } \ + const AFX_DATADEF AFX_INTERFACEMAP theClass::interfaceMap = \ + { &theBase::interfaceMap, &theClass::_interfaceEntries[0], }; \ + const AFX_DATADEF AFX_INTERFACEMAP_ENTRY theClass::_interfaceEntries[] = \ + { \ + +#endif + +#define INTERFACE_PART(theClass, iid, localClass) \ + { &iid, offsetof(theClass, m_x##localClass) }, \ + +#define INTERFACE_AGGREGATE(theClass, theAggr) \ + { NULL, offsetof(theClass, theAggr) }, \ + +#define END_INTERFACE_MAP() \ + { NULL, (size_t)-1 } \ + }; \ + +///////////////////////////////////////////////////////////////////////////// +// COleException - unexpected or rare OLE error returned + +class COleException : public CException +{ + DECLARE_DYNAMIC(COleException) + +public: + SCODE m_sc; + static SCODE PASCAL Process(const CException* pAnyException); + +// Implementation (use AfxThrowOleException to create) +public: + COleException(); + virtual ~COleException(); + + virtual BOOL GetErrorMessage(LPTSTR lpszError, UINT nMaxError, + PUINT pnHelpContext = NULL); +}; + +void AFXAPI AfxThrowOleException(SCODE sc); + +///////////////////////////////////////////////////////////////////////////// +// IDispatch specific exception + +class COleDispatchException : public CException +{ + DECLARE_DYNAMIC(COleDispatchException) + +public: +// Attributes + WORD m_wCode; // error code (specific to IDispatch implementation) + CString m_strDescription; // human readable description of the error + DWORD m_dwHelpContext; // help context for error + + // usually empty in application which creates it (eg. servers) + CString m_strHelpFile; // help file to use with m_dwHelpContext + CString m_strSource; // source of the error (name of server) + +// Implementation +public: + COleDispatchException(LPCTSTR lpszDescription, UINT nHelpID, WORD wCode); + virtual ~COleDispatchException(); + static void PASCAL Process( + EXCEPINFO* pInfo, const CException* pAnyException); + + virtual BOOL GetErrorMessage(LPTSTR lpszError, UINT nMaxError, + PUINT pnHelpContext = NULL); + + SCODE m_scError; // SCODE describing the error +}; + +void AFXAPI AfxThrowOleDispatchException(WORD wCode, LPCTSTR lpszDescription, + UINT nHelpID = 0); +void AFXAPI AfxThrowOleDispatchException(WORD wCode, UINT nDescriptionID, + UINT nHelpID = (UINT)-1); + +///////////////////////////////////////////////////////////////////////////// +// Macros for CCmdTarget IDispatchable classes + +#ifdef _AFXDLL +#define BEGIN_DISPATCH_MAP(theClass, baseClass) \ + const AFX_DISPMAP* PASCAL theClass::_GetBaseDispatchMap() \ + { return &baseClass::dispatchMap; } \ + const AFX_DISPMAP* theClass::GetDispatchMap() const \ + { return &theClass::dispatchMap; } \ + const AFX_DISPMAP theClass::dispatchMap = \ + { &theClass::_GetBaseDispatchMap, &theClass::_dispatchEntries[0], \ + &theClass::_dispatchEntryCount, &theClass::_dwStockPropMask }; \ + UINT theClass::_dispatchEntryCount = (UINT)-1; \ + DWORD theClass::_dwStockPropMask = (DWORD)-1; \ + const AFX_DISPMAP_ENTRY theClass::_dispatchEntries[] = \ + { \ + +#else +#define BEGIN_DISPATCH_MAP(theClass, baseClass) \ + const AFX_DISPMAP* theClass::GetDispatchMap() const \ + { return &theClass::dispatchMap; } \ + const AFX_DISPMAP theClass::dispatchMap = \ + { &baseClass::dispatchMap, &theClass::_dispatchEntries[0], \ + &theClass::_dispatchEntryCount, &theClass::_dwStockPropMask }; \ + UINT theClass::_dispatchEntryCount = (UINT)-1; \ + DWORD theClass::_dwStockPropMask = (DWORD)-1; \ + const AFX_DISPMAP_ENTRY theClass::_dispatchEntries[] = \ + { \ + +#endif + +#define END_DISPATCH_MAP() \ + { VTS_NONE, DISPID_UNKNOWN, VTS_NONE, VT_VOID, \ + (AFX_PMSG)NULL, (AFX_PMSG)NULL, (size_t)-1, afxDispCustom } }; \ + +// parameter types: by value VTs +#define VTS_I2 "\x02" // a 'short' +#define VTS_I4 "\x03" // a 'long' +#define VTS_R4 "\x04" // a 'float' +#define VTS_R8 "\x05" // a 'double' +#define VTS_CY "\x06" // a 'CY' or 'CY*' +#define VTS_DATE "\x07" // a 'DATE' +#define VTS_WBSTR "\x08" // an 'LPCOLESTR' +#define VTS_DISPATCH "\x09" // an 'IDispatch*' +#define VTS_SCODE "\x0A" // an 'SCODE' +#define VTS_BOOL "\x0B" // a 'BOOL' +#define VTS_VARIANT "\x0C" // a 'const VARIANT&' or 'VARIANT*' +#define VTS_UNKNOWN "\x0D" // an 'IUnknown*' +#if defined(_UNICODE) || defined(OLE2ANSI) + #define VTS_BSTR VTS_WBSTR// an 'LPCOLESTR' + #define VT_BSTRT VT_BSTR +#else + #define VTS_BSTR "\x0E" // an 'LPCSTR' + #define VT_BSTRA 14 + #define VT_BSTRT VT_BSTRA +#endif + +// parameter types: by reference VTs +#define VTS_PI2 "\x42" // a 'short*' +#define VTS_PI4 "\x43" // a 'long*' +#define VTS_PR4 "\x44" // a 'float*' +#define VTS_PR8 "\x45" // a 'double*' +#define VTS_PCY "\x46" // a 'CY*' +#define VTS_PDATE "\x47" // a 'DATE*' +#define VTS_PBSTR "\x48" // a 'BSTR*' +#define VTS_PDISPATCH "\x49" // an 'IDispatch**' +#define VTS_PSCODE "\x4A" // an 'SCODE*' +#define VTS_PBOOL "\x4B" // a 'VARIANT_BOOL*' +#define VTS_PVARIANT "\x4C" // a 'VARIANT*' +#define VTS_PUNKNOWN "\x4D" // an 'IUnknown**' + +// special VT_ and VTS_ values +#define VTS_NONE NULL // used for members with 0 params +#define VT_MFCVALUE 0xFFF // special value for DISPID_VALUE +#define VT_MFCBYREF 0x40 // indicates VT_BYREF type +#define VT_MFCMARKER 0xFF // delimits named parameters (INTERNAL USE) + +// variant handling (use V_BSTRT when you have ANSI BSTRs, as in DAO) +#ifndef _UNICODE + #define V_BSTRT(b) (LPSTR)V_BSTR(b) +#else + #define V_BSTRT(b) V_BSTR(b) +#endif + +///////////////////////////////////////////////////////////////////////////// +// OLE control parameter types + +#define VTS_COLOR VTS_I4 // OLE_COLOR +#define VTS_XPOS_PIXELS VTS_I4 // OLE_XPOS_PIXELS +#define VTS_YPOS_PIXELS VTS_I4 // OLE_YPOS_PIXELS +#define VTS_XSIZE_PIXELS VTS_I4 // OLE_XSIZE_PIXELS +#define VTS_YSIZE_PIXELS VTS_I4 // OLE_YSIZE_PIXELS +#define VTS_XPOS_HIMETRIC VTS_I4 // OLE_XPOS_HIMETRIC +#define VTS_YPOS_HIMETRIC VTS_I4 // OLE_YPOS_HIMETRIC +#define VTS_XSIZE_HIMETRIC VTS_I4 // OLE_XSIZE_HIMETRIC +#define VTS_YSIZE_HIMETRIC VTS_I4 // OLE_YSIZE_HIMETRIC +#define VTS_TRISTATE VTS_I2 // OLE_TRISTATE +#define VTS_OPTEXCLUSIVE VTS_BOOL // OLE_OPTEXCLUSIVE + +#define VTS_PCOLOR VTS_PI4 // OLE_COLOR* +#define VTS_PXPOS_PIXELS VTS_PI4 // OLE_XPOS_PIXELS* +#define VTS_PYPOS_PIXELS VTS_PI4 // OLE_YPOS_PIXELS* +#define VTS_PXSIZE_PIXELS VTS_PI4 // OLE_XSIZE_PIXELS* +#define VTS_PYSIZE_PIXELS VTS_PI4 // OLE_YSIZE_PIXELS* +#define VTS_PXPOS_HIMETRIC VTS_PI4 // OLE_XPOS_HIMETRIC* +#define VTS_PYPOS_HIMETRIC VTS_PI4 // OLE_YPOS_HIMETRIC* +#define VTS_PXSIZE_HIMETRIC VTS_PI4 // OLE_XSIZE_HIMETRIC* +#define VTS_PYSIZE_HIMETRIC VTS_PI4 // OLE_YSIZE_HIMETRIC* +#define VTS_PTRISTATE VTS_PI2 // OLE_TRISTATE* +#define VTS_POPTEXCLUSIVE VTS_PBOOL // OLE_OPTEXCLUSIVE* + +#define VTS_FONT VTS_DISPATCH // IFontDispatch* +#define VTS_PICTURE VTS_DISPATCH // IPictureDispatch* + +#define VTS_HANDLE VTS_I4 // OLE_HANDLE +#define VTS_PHANDLE VTS_PI4 // OLE_HANDLE* + +// these DISP_ macros cause the framework to generate the DISPID +#define DISP_FUNCTION(theClass, szExternalName, pfnMember, vtRetVal, vtsParams) \ + { _T(szExternalName), DISPID_UNKNOWN, vtsParams, vtRetVal, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnMember, (AFX_PMSG)0, 0, \ + afxDispCustom }, \ + +#define DISP_PROPERTY(theClass, szExternalName, memberName, vtPropType) \ + { _T(szExternalName), DISPID_UNKNOWN, NULL, vtPropType, (AFX_PMSG)0, (AFX_PMSG)0, \ + offsetof(theClass, memberName), afxDispCustom }, \ + +#define DISP_PROPERTY_NOTIFY(theClass, szExternalName, memberName, pfnAfterSet, vtPropType) \ + { _T(szExternalName), DISPID_UNKNOWN, NULL, vtPropType, (AFX_PMSG)0, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnAfterSet, \ + offsetof(theClass, memberName), afxDispCustom }, \ + +#define DISP_PROPERTY_EX(theClass, szExternalName, pfnGet, pfnSet, vtPropType) \ + { _T(szExternalName), DISPID_UNKNOWN, NULL, vtPropType, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnGet, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnSet, 0, afxDispCustom }, \ + +#define DISP_PROPERTY_PARAM(theClass, szExternalName, pfnGet, pfnSet, vtPropType, vtsParams) \ + { _T(szExternalName), DISPID_UNKNOWN, vtsParams, vtPropType, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnGet, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnSet, 0, afxDispCustom }, \ + +// these DISP_ macros allow the app to determine the DISPID +#define DISP_FUNCTION_ID(theClass, szExternalName, dispid, pfnMember, vtRetVal, vtsParams) \ + { _T(szExternalName), dispid, vtsParams, vtRetVal, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnMember, (AFX_PMSG)0, 0, \ + afxDispCustom }, \ + +#define DISP_PROPERTY_ID(theClass, szExternalName, dispid, memberName, vtPropType) \ + { _T(szExternalName), dispid, NULL, vtPropType, (AFX_PMSG)0, (AFX_PMSG)0, \ + offsetof(theClass, memberName), afxDispCustom }, \ + +#define DISP_PROPERTY_NOTIFY_ID(theClass, szExternalName, dispid, memberName, pfnAfterSet, vtPropType) \ + { _T(szExternalName), dispid, NULL, vtPropType, (AFX_PMSG)0, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnAfterSet, \ + offsetof(theClass, memberName), afxDispCustom }, \ + +#define DISP_PROPERTY_EX_ID(theClass, szExternalName, dispid, pfnGet, pfnSet, vtPropType) \ + { _T(szExternalName), dispid, NULL, vtPropType, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnGet, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnSet, 0, afxDispCustom }, \ + +#define DISP_PROPERTY_PARAM_ID(theClass, szExternalName, dispid, pfnGet, pfnSet, vtPropType, vtsParams) \ + { _T(szExternalName), dispid, vtsParams, vtPropType, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnGet, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnSet, 0, afxDispCustom }, \ + +// the DISP_DEFVALUE is a special case macro that creates an alias for DISPID_VALUE +#define DISP_DEFVALUE(theClass, szExternalName) \ + { _T(szExternalName), DISPID_UNKNOWN, NULL, VT_MFCVALUE, \ + (AFX_PMSG)0, (AFX_PMSG)0, 0, afxDispCustom }, \ + +#define DISP_DEFVALUE_ID(theClass, dispid) \ + { NULL, dispid, NULL, VT_MFCVALUE, (AFX_PMSG)0, (AFX_PMSG)0, 0, \ + afxDispCustom }, \ + +///////////////////////////////////////////////////////////////////////////// +// Macros for creating "creatable" automation classes. + +#define DECLARE_OLECREATE(class_name) \ +public: \ + static AFX_DATA COleObjectFactory factory; \ + static AFX_DATA const GUID guid; \ + +#define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ + AFX_DATADEF COleObjectFactory class_name::factory(class_name::guid, \ + RUNTIME_CLASS(class_name), FALSE, _T(external_name)); \ + const AFX_DATADEF GUID class_name::guid = \ + { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }; \ + +///////////////////////////////////////////////////////////////////////////// +// Helper class for driving IDispatch + +class COleDispatchDriver +{ +// Constructors +public: + COleDispatchDriver(); + COleDispatchDriver(LPDISPATCH lpDispatch, BOOL bAutoRelease = TRUE); + COleDispatchDriver(const COleDispatchDriver& dispatchSrc); + +// Attributes + LPDISPATCH m_lpDispatch; + BOOL m_bAutoRelease; + +// Operations + BOOL CreateDispatch(REFCLSID clsid, COleException* pError = NULL); + BOOL CreateDispatch(LPCTSTR lpszProgID, COleException* pError = NULL); + + void AttachDispatch(LPDISPATCH lpDispatch, BOOL bAutoRelease = TRUE); + LPDISPATCH DetachDispatch(); + // detach and get ownership of m_lpDispatch + void ReleaseDispatch(); + + // helpers for IDispatch::Invoke + void AFX_CDECL InvokeHelper(DISPID dwDispID, WORD wFlags, + VARTYPE vtRet, void* pvRet, const BYTE* pbParamInfo, ...); + void AFX_CDECL SetProperty(DISPID dwDispID, VARTYPE vtProp, ...); + void GetProperty(DISPID dwDispID, VARTYPE vtProp, void* pvProp) const; + + // special operators + operator LPDISPATCH(); + const COleDispatchDriver& operator=(const COleDispatchDriver& dispatchSrc); + +// Implementation +public: + ~COleDispatchDriver(); + void InvokeHelperV(DISPID dwDispID, WORD wFlags, VARTYPE vtRet, + void* pvRet, const BYTE* pbParamInfo, va_list argList); +}; + +///////////////////////////////////////////////////////////////////////////// +// Class Factory implementation (binds OLE class factory -> runtime class) +// (all specific class factories derive from this class factory) + +class COleObjectFactory : public CCmdTarget +{ + DECLARE_DYNAMIC(COleObjectFactory) + +// Construction +public: + COleObjectFactory(REFCLSID clsid, CRuntimeClass* pRuntimeClass, + BOOL bMultiInstance, LPCTSTR lpszProgID); + +// Attributes + virtual BOOL IsRegistered() const; + REFCLSID GetClassID() const; + +// Operations + virtual BOOL Register(); + void Revoke(); + void UpdateRegistry(LPCTSTR lpszProgID = NULL); + // default uses m_lpszProgID if not NULL + BOOL IsLicenseValid(); + + static BOOL PASCAL RegisterAll(); + static void PASCAL RevokeAll(); + static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE); + +// Overridables +protected: + virtual CCmdTarget* OnCreateObject(); + virtual BOOL UpdateRegistry(BOOL bRegister); + virtual BOOL VerifyUserLicense(); + virtual BOOL GetLicenseKey(DWORD dwReserved, BSTR* pbstrKey); + virtual BOOL VerifyLicenseKey(BSTR bstrKey); + +// Implementation +public: + virtual ~COleObjectFactory(); +#ifdef _DEBUG + void AssertValid() const; + void Dump(CDumpContext& dc) const; +#endif + +public: + COleObjectFactory* m_pNextFactory; // list of factories maintained + +protected: + DWORD m_dwRegister; // registry identifier + CLSID m_clsid; // registered class ID + CRuntimeClass* m_pRuntimeClass; // runtime class of CCmdTarget derivative + BOOL m_bMultiInstance; // multiple instance? + LPCTSTR m_lpszProgID; // human readable class ID + BYTE m_bLicenseChecked; + BYTE m_bLicenseValid; + BYTE m_bRegistered; // is currently registered w/ system + BYTE m_bReserved; // reserved for future use + +// Interface Maps +public: + BEGIN_INTERFACE_PART(ClassFactory, IClassFactory2) + INIT_INTERFACE_PART(COleObjectFactory, ClassFactory) + STDMETHOD(CreateInstance)(LPUNKNOWN, REFIID, LPVOID*); + STDMETHOD(LockServer)(BOOL); + STDMETHOD(GetLicInfo)(LPLICINFO); + STDMETHOD(RequestLicKey)(DWORD, BSTR*); + STDMETHOD(CreateInstanceLic)(LPUNKNOWN, LPUNKNOWN, REFIID, BSTR, + LPVOID*); + END_INTERFACE_PART(ClassFactory) + + DECLARE_INTERFACE_MAP() + + friend SCODE AFXAPI AfxDllGetClassObject(REFCLSID, REFIID, LPVOID*); + friend SCODE STDAPICALLTYPE DllGetClassObject(REFCLSID, REFIID, LPVOID*); +}; + +// Define COleObjectFactoryEx for compatibility with old CDK +#define COleObjectFactoryEx COleObjectFactory + +////////////////////////////////////////////////////////////////////////////// +// COleTemplateServer - COleObjectFactory using CDocTemplates + +// This enumeration is used in AfxOleRegisterServerClass to pick the +// correct registration entries given the application type. +enum OLE_APPTYPE +{ + OAT_INPLACE_SERVER = 0, // server has full server user-interface + OAT_SERVER = 1, // server supports only embedding + OAT_CONTAINER = 2, // container supports links to embeddings + OAT_DISPATCH_OBJECT = 3, // IDispatch capable object + OAT_DOC_OBJECT_SERVER = 4, // sever supports DocObject embedding + OAT_DOC_OBJECT_CONTAINER =5,// container supports DocObject clients +}; + +class COleTemplateServer : public COleObjectFactory +{ +// Constructors +public: + COleTemplateServer(); + +// Operations + void ConnectTemplate(REFCLSID clsid, CDocTemplate* pDocTemplate, + BOOL bMultiInstance); + // set doc template after creating it in InitInstance + void UpdateRegistry(OLE_APPTYPE nAppType = OAT_INPLACE_SERVER, + LPCTSTR* rglpszRegister = NULL, LPCTSTR* rglpszOverwrite = NULL); + // may want to UpdateRegistry if not run with /Embedded + BOOL Register(); + +// Implementation +protected: + virtual CCmdTarget* OnCreateObject(); + CDocTemplate* m_pDocTemplate; + +private: + void UpdateRegistry(LPCTSTR lpszProgID); + // hide base class version of UpdateRegistry +}; + +///////////////////////////////////////////////////////////////////////////// +// System registry helpers + +// Helper to register server in case of no .REG file loaded +BOOL AFXAPI AfxOleRegisterServerClass( + REFCLSID clsid, LPCTSTR lpszClassName, + LPCTSTR lpszShortTypeName, LPCTSTR lpszLongTypeName, + OLE_APPTYPE nAppType = OAT_SERVER, + LPCTSTR* rglpszRegister = NULL, LPCTSTR* rglpszOverwrite = NULL, + int nIconIndex = 0, LPCTSTR lpszLocalFilterName = NULL); + +// AfxOleRegisterHelper is a worker function used by AfxOleRegisterServerClass +// (available for advanced registry work) +BOOL AFXAPI AfxOleRegisterHelper(LPCTSTR const* rglpszRegister, + LPCTSTR const* rglpszSymbols, int nSymbols, BOOL bReplace, + HKEY hKeyRoot = ((HKEY)0x80000000)); // HKEY_CLASSES_ROOT + +///////////////////////////////////////////////////////////////////////////// +// Connection maps + +#define BEGIN_CONNECTION_PART(theClass, localClass) \ + class X##localClass : public CConnectionPoint \ + { \ + public: \ + X##localClass() \ + { m_nOffset = offsetof(theClass, m_x##localClass); } + +#define CONNECTION_IID(iid) \ + REFIID GetIID() { return iid; } + +#define END_CONNECTION_PART(localClass) \ + } m_x##localClass; \ + friend class X##localClass; + +#ifdef _AFXDLL +#define BEGIN_CONNECTION_MAP(theClass, theBase) \ + const AFX_CONNECTIONMAP* PASCAL theClass::_GetBaseConnectionMap() \ + { return &theBase::connectionMap; } \ + const AFX_CONNECTIONMAP* theClass::GetConnectionMap() const \ + { return &theClass::connectionMap; } \ + const AFX_DATADEF AFX_CONNECTIONMAP theClass::connectionMap = \ + { &theClass::_GetBaseConnectionMap, &theClass::_connectionEntries[0], }; \ + const AFX_DATADEF AFX_CONNECTIONMAP_ENTRY theClass::_connectionEntries[] = \ + { \ + +#else +#define BEGIN_CONNECTION_MAP(theClass, theBase) \ + const AFX_CONNECTIONMAP* theClass::GetConnectionMap() const \ + { return &theClass::connectionMap; } \ + const AFX_DATADEF AFX_CONNECTIONMAP theClass::connectionMap = \ + { &(theBase::connectionMap), &theClass::_connectionEntries[0], }; \ + const AFX_DATADEF AFX_CONNECTIONMAP_ENTRY theClass::_connectionEntries[] = \ + { \ + +#endif + +#define CONNECTION_PART(theClass, iid, localClass) \ + { &iid, offsetof(theClass, m_x##localClass) }, \ + +#define END_CONNECTION_MAP() \ + { NULL, (size_t)-1 } \ + }; \ + +///////////////////////////////////////////////////////////////////////////// +// CConnectionPoint + +class CConnectionPoint : public CCmdTarget +{ +// Constructors +public: + CConnectionPoint(); + +// Operations + POSITION GetStartPosition() const; + LPUNKNOWN GetNextConnection(POSITION& pos) const; + const CPtrArray* GetConnections(); // obsolete + +// Overridables + virtual LPCONNECTIONPOINTCONTAINER GetContainer(); + virtual REFIID GetIID() = 0; + virtual void OnAdvise(BOOL bAdvise); + virtual int GetMaxConnections(); + virtual LPUNKNOWN QuerySinkInterface(LPUNKNOWN pUnkSink); + +// Implementation + ~CConnectionPoint(); + void CreateConnectionArray(); + int GetConnectionCount(); + +protected: + size_t m_nOffset; + LPUNKNOWN m_pUnkFirstConnection; + CPtrArray* m_pConnections; + +// Interface Maps +public: + BEGIN_INTERFACE_PART(ConnPt, IConnectionPoint) + INIT_INTERFACE_PART(CConnectionPoint, ConnPt) + STDMETHOD(GetConnectionInterface)(IID* pIID); + STDMETHOD(GetConnectionPointContainer)( + IConnectionPointContainer** ppCPC); + STDMETHOD(Advise)(LPUNKNOWN pUnkSink, DWORD* pdwCookie); + STDMETHOD(Unadvise)(DWORD dwCookie); + STDMETHOD(EnumConnections)(LPENUMCONNECTIONS* ppEnum); + END_INTERFACE_PART(ConnPt) +}; + +///////////////////////////////////////////////////////////////////////////// +// EventSink Maps + +#ifndef _AFX_NO_OCC_SUPPORT + +#ifdef _AFXDLL +#define BEGIN_EVENTSINK_MAP(theClass, baseClass) \ + const AFX_EVENTSINKMAP* PASCAL theClass::_GetBaseEventSinkMap() \ + { return &baseClass::eventsinkMap; } \ + const AFX_EVENTSINKMAP* theClass::GetEventSinkMap() const \ + { return &theClass::eventsinkMap; } \ + const AFX_EVENTSINKMAP theClass::eventsinkMap = \ + { &theClass::_GetBaseEventSinkMap, &theClass::_eventsinkEntries[0], \ + &theClass::_eventsinkEntryCount }; \ + UINT theClass::_eventsinkEntryCount = (UINT)-1; \ + const AFX_EVENTSINKMAP_ENTRY theClass::_eventsinkEntries[] = \ + { \ + +#else +#define BEGIN_EVENTSINK_MAP(theClass, baseClass) \ + const AFX_EVENTSINKMAP* theClass::GetEventSinkMap() const \ + { return &theClass::eventsinkMap; } \ + const AFX_EVENTSINKMAP theClass::eventsinkMap = \ + { &baseClass::eventsinkMap, &theClass::_eventsinkEntries[0], \ + &theClass::_eventsinkEntryCount }; \ + UINT theClass::_eventsinkEntryCount = (UINT)-1; \ + const AFX_EVENTSINKMAP_ENTRY theClass::_eventsinkEntries[] = \ + { \ + +#endif + +#define END_EVENTSINK_MAP() \ + { VTS_NONE, DISPID_UNKNOWN, VTS_NONE, VT_VOID, \ + (AFX_PMSG)NULL, (AFX_PMSG)NULL, (size_t)-1, afxDispCustom, \ + (UINT)-1, 0 } }; \ + +#define ON_EVENT(theClass, id, dispid, pfnHandler, vtsParams) \ + { _T(""), dispid, vtsParams, VT_BOOL, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnHandler, (AFX_PMSG)0, 0, \ + afxDispCustom, id, (UINT)-1 }, \ + +#define ON_EVENT_RANGE(theClass, idFirst, idLast, dispid, pfnHandler, vtsParams) \ + { _T(""), dispid, vtsParams, VT_BOOL, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnHandler, (AFX_PMSG)0, 0, \ + afxDispCustom, idFirst, idLast }, \ + +#define ON_PROPNOTIFY(theClass, id, dispid, pfnRequest, pfnChanged) \ + { _T(""), dispid, VTS_NONE, VT_VOID, \ + (AFX_PMSG)(BOOL (CCmdTarget::*)(BOOL*))&pfnRequest, \ + (AFX_PMSG)(BOOL (CCmdTarget::*)(void))&pfnChanged, \ + 1, afxDispCustom, id, (UINT)-1 }, \ + +#define ON_PROPNOTIFY_RANGE(theClass, idFirst, idLast, dispid, pfnRequest, pfnChanged) \ + { _T(""), dispid, VTS_NONE, VT_VOID, \ + (AFX_PMSG)(BOOL (CCmdTarget::*)(UINT, BOOL*))&pfnRequest, \ + (AFX_PMSG)(BOOL (CCmdTarget::*)(UINT))&pfnChanged, \ + 1, afxDispCustom, idFirst, idLast }, \ + +#define ON_DSCNOTIFY(theClass, id, pfnNotify) \ + { _T(""), DISPID_UNKNOWN, VTS_NONE, VT_VOID, \ + (AFX_PMSG)(BOOL (CCmdTarget::*)(DSCSTATE, DSCREASON, BOOL*))&pfnNotify, (AFX_PMSG)0, \ + 1, afxDispCustom, id, (UINT)-1 }, \ + +#define ON_DSCNOTIFY_RANGE(theClass, idFirst, idLast, pfnNotify) \ + { _T(""), DISPID_UNKNOWN, VTS_NONE, VT_VOID, \ + (AFX_PMSG)(BOOL (CCmdTarget::*)(UINT, DSCSTATE, DSCREASON, BOOL*))&pfnNotify, (AFX_PMSG)0, \ + 1, afxDispCustom, idFirst, idLast }, \ + +#define ON_EVENT_REFLECT(theClass, dispid, pfnHandler, vtsParams) \ + { _T(""), dispid, vtsParams, VT_BOOL, \ + (AFX_PMSG)(void (theClass::*)(void))&pfnHandler, (AFX_PMSG)0, 0, \ + afxDispCustom, (UINT)-1, (UINT)-1 }, \ + +#define ON_PROPNOTIFY_REFLECT(theClass, dispid, pfnRequest, pfnChanged) \ + { _T(""), dispid, VTS_NONE, VT_VOID, \ + (AFX_PMSG)(BOOL (CCmdTarget::*)(BOOL*))&pfnRequest, \ + (AFX_PMSG)(BOOL (CCmdTarget::*)(void))&pfnChanged, \ + 1, afxDispCustom, (UINT)-1, (UINT)-1 }, \ + +#endif // !_AFX_NO_OCC_SUPPORT + +///////////////////////////////////////////////////////////////////////////// +// Macros for type library information + +CTypeLibCache* AFXAPI AfxGetTypeLibCache(const GUID* pTypeLibID); + +#define DECLARE_OLETYPELIB(class_name) \ + protected: \ + virtual UINT GetTypeInfoCount(); \ + virtual HRESULT GetTypeLib(LCID, LPTYPELIB*); \ + virtual CTypeLibCache* GetTypeLibCache(); \ + +#define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) \ + UINT class_name::GetTypeInfoCount() \ + { return 1; } \ + HRESULT class_name::GetTypeLib(LCID lcid, LPTYPELIB* ppTypeLib) \ + { return ::LoadRegTypeLib(tlid, wVerMajor, wVerMinor, lcid, ppTypeLib); } \ + CTypeLibCache* class_name::GetTypeLibCache() \ + { AFX_MANAGE_STATE(m_pModuleState); return AfxGetTypeLibCache(&tlid); } \ + +///////////////////////////////////////////////////////////////////////////// +// Init & Term helpers + +BOOL AFXAPI AfxOleInit(); +void AFXAPI AfxOleTerm(BOOL bJustRevoke = FALSE); +void AFXAPI AfxOleTermOrFreeLib(BOOL bTerm = TRUE, BOOL bJustRevoke = FALSE); + +///////////////////////////////////////////////////////////////////////////// +// Memory management helpers (for OLE task allocator memory) + +#define AfxAllocTaskMem(nSize) CoTaskMemAlloc(nSize) +#define AfxFreeTaskMem(p) CoTaskMemFree(p) + +LPWSTR AFXAPI AfxAllocTaskWideString(LPCWSTR lpszString); +LPWSTR AFXAPI AfxAllocTaskWideString(LPCSTR lpszString); +LPSTR AFXAPI AfxAllocTaskAnsiString(LPCWSTR lpszString); +LPSTR AFXAPI AfxAllocTaskAnsiString(LPCSTR lpszString); + +#ifdef _UNICODE + #define AfxAllocTaskString(x) AfxAllocTaskWideString(x) +#else + #define AfxAllocTaskString(x) AfxAllocTaskAnsiString(x) +#endif + +#ifdef OLE2ANSI + #define AfxAllocTaskOleString(x) AfxAllocTaskAnsiString(x) +#else + #define AfxAllocTaskOleString(x) AfxAllocTaskWideString(x) +#endif + +HRESULT AFXAPI AfxGetClassIDFromString(LPCTSTR lpsz, LPCLSID lpClsID); + +///////////////////////////////////////////////////////////////////////////// +// Special in-proc server APIs + +SCODE AFXAPI AfxDllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv); +SCODE AFXAPI AfxDllCanUnloadNow(void); + +///////////////////////////////////////////////////////////////////////////// +// COleVariant class helpers + +#define AFX_OLE_TRUE (-1) +#define AFX_OLE_FALSE 0 + +class CLongBinary; // forward reference (see afxdb_.h) + +///////////////////////////////////////////////////////////////////////////// +// COleVariant class - wraps VARIANT types + +typedef const VARIANT* LPCVARIANT; + +class COleVariant : public tagVARIANT +{ +// Constructors +public: + COleVariant(); + + COleVariant(const VARIANT& varSrc); + COleVariant(LPCVARIANT pSrc); + COleVariant(const COleVariant& varSrc); + + COleVariant(LPCTSTR lpszSrc); + COleVariant(LPCTSTR lpszSrc, VARTYPE vtSrc); // used to set to ANSI string + COleVariant(CString& strSrc); + + COleVariant(BYTE nSrc); + COleVariant(short nSrc, VARTYPE vtSrc = VT_I2); + COleVariant(long lSrc, VARTYPE vtSrc = VT_I4); + COleVariant(const COleCurrency& curSrc); + + COleVariant(float fltSrc); + COleVariant(double dblSrc); + COleVariant(const COleDateTime& timeSrc); + + COleVariant(const CByteArray& arrSrc); + COleVariant(const CLongBinary& lbSrc); + +// Operations +public: + void Clear(); + void ChangeType(VARTYPE vartype, LPVARIANT pSrc = NULL); + void Attach(VARIANT& varSrc); + VARIANT Detach(); + + BOOL operator==(const VARIANT& varSrc) const; + BOOL operator==(LPCVARIANT pSrc) const; + + const COleVariant& operator=(const VARIANT& varSrc); + const COleVariant& operator=(LPCVARIANT pSrc); + const COleVariant& operator=(const COleVariant& varSrc); + + const COleVariant& operator=(const LPCTSTR lpszSrc); + const COleVariant& operator=(const CString& strSrc); + + const COleVariant& operator=(BYTE nSrc); + const COleVariant& operator=(short nSrc); + const COleVariant& operator=(long lSrc); + const COleVariant& operator=(const COleCurrency& curSrc); + + const COleVariant& operator=(float fltSrc); + const COleVariant& operator=(double dblSrc); + const COleVariant& operator=(const COleDateTime& dateSrc); + + const COleVariant& operator=(const CByteArray& arrSrc); + const COleVariant& operator=(const CLongBinary& lbSrc); + + void SetString(LPCTSTR lpszSrc, VARTYPE vtSrc); // used to set ANSI string + + operator LPVARIANT(); + operator LPCVARIANT() const; + +// Implementation +public: + ~COleVariant(); +}; + +// COleVariant diagnostics and serialization +#ifdef _DEBUG +CDumpContext& AFXAPI operator<<(CDumpContext& dc, COleVariant varSrc); +#endif +CArchive& AFXAPI operator<<(CArchive& ar, COleVariant varSrc); +CArchive& AFXAPI operator>>(CArchive& ar, COleVariant& varSrc); + +// Helper for initializing VARIANT structures +void AFXAPI AfxVariantInit(LPVARIANT pVar); + +///////////////////////////////////////////////////////////////////////////// +// COleCurrency class + +class COleCurrency +{ +// Constructors +public: + COleCurrency(); + + COleCurrency(CURRENCY cySrc); + COleCurrency(const COleCurrency& curSrc); + COleCurrency(const VARIANT& varSrc); + COleCurrency(long nUnits, long nFractionalUnits); + +// Attributes +public: + enum CurrencyStatus + { + valid = 0, + invalid = 1, // Invalid currency (overflow, div 0, etc.) + null = 2, // Literally has no value + }; + + CURRENCY m_cur; + CurrencyStatus m_status; + + void SetStatus(CurrencyStatus status); + CurrencyStatus GetStatus() const; + +// Operations +public: + const COleCurrency& operator=(CURRENCY cySrc); + const COleCurrency& operator=(const COleCurrency& curSrc); + const COleCurrency& operator=(const VARIANT& varSrc); + + BOOL operator==(const COleCurrency& cur) const; + BOOL operator!=(const COleCurrency& cur) const; + BOOL operator<(const COleCurrency& cur) const; + BOOL operator>(const COleCurrency& cur) const; + BOOL operator<=(const COleCurrency& cur) const; + BOOL operator>=(const COleCurrency& cur) const; + + // Currency math + COleCurrency operator+(const COleCurrency& cur) const; + COleCurrency operator-(const COleCurrency& cur) const; + const COleCurrency& operator+=(const COleCurrency& cur); + const COleCurrency& operator-=(const COleCurrency& cur); + COleCurrency operator-() const; + + COleCurrency operator*(long nOperand) const; + COleCurrency operator/(long nOperand) const; + const COleCurrency& operator*=(long nOperand); + const COleCurrency& operator/=(long nOperand); + + operator CURRENCY() const; + + // Currency definition + void SetCurrency(long nUnits, long nFractionalUnits); + BOOL ParseCurrency(LPCTSTR lpszCurrency, DWORD dwFlags = 0, + LCID = LANG_USER_DEFAULT); + + // formatting + CString Format(DWORD dwFlags = 0, LCID lcid = LANG_USER_DEFAULT) const; +}; + +// COleCurrency diagnostics and serialization +#ifdef _DEBUG +CDumpContext& AFXAPI operator<<(CDumpContext& dc, COleCurrency curSrc); +#endif +CArchive& AFXAPI operator<<(CArchive& ar, COleCurrency curSrc); +CArchive& AFXAPI operator>>(CArchive& ar, COleCurrency& curSrc); + +///////////////////////////////////////////////////////////////////////////// +// COleDateTime class helpers + +#define AFX_OLE_DATETIME_ERROR (-1) + +///////////////////////////////////////////////////////////////////////////// +// COleDateTime class + +class COleDateTime +{ +// Constructors +public: + static COleDateTime PASCAL GetCurrentTime(); + + COleDateTime(); + + COleDateTime(const COleDateTime& dateSrc); + COleDateTime(const VARIANT& varSrc); + COleDateTime(DATE dtSrc); + + COleDateTime(time_t timeSrc); + COleDateTime(const SYSTEMTIME& systimeSrc); + COleDateTime(const FILETIME& filetimeSrc); + + COleDateTime(int nYear, int nMonth, int nDay, + int nHour, int nMin, int nSec); + COleDateTime(WORD wDosDate, WORD wDosTime); + +// Attributes +public: + enum DateTimeStatus + { + valid = 0, + invalid = 1, // Invalid date (out of range, etc.) + null = 2, // Literally has no value + }; + + DATE m_dt; + DateTimeStatus m_status; + + void SetStatus(DateTimeStatus status); + DateTimeStatus GetStatus() const; + + int GetYear() const; + int GetMonth() const; // month of year (1 = Jan) + int GetDay() const; // day of month (0-31) + int GetHour() const; // hour in day (0-23) + int GetMinute() const; // minute in hour (0-59) + int GetSecond() const; // second in minute (0-59) + int GetDayOfWeek() const; // 1=Sun, 2=Mon, ..., 7=Sat + int GetDayOfYear() const; // days since start of year, Jan 1 = 1 + +// Operations +public: + const COleDateTime& operator=(const COleDateTime& dateSrc); + const COleDateTime& operator=(const VARIANT& varSrc); + const COleDateTime& operator=(DATE dtSrc); + + const COleDateTime& operator=(const time_t& timeSrc); + const COleDateTime& operator=(const SYSTEMTIME& systimeSrc); + const COleDateTime& operator=(const FILETIME& filetimeSrc); + + BOOL operator==(const COleDateTime& date) const; + BOOL operator!=(const COleDateTime& date) const; + BOOL operator<(const COleDateTime& date) const; + BOOL operator>(const COleDateTime& date) const; + BOOL operator<=(const COleDateTime& date) const; + BOOL operator>=(const COleDateTime& date) const; + + // DateTime math + COleDateTime operator+(const COleDateTimeSpan& dateSpan) const; + COleDateTime operator-(const COleDateTimeSpan& dateSpan) const; + const COleDateTime& operator+=(const COleDateTimeSpan dateSpan); + const COleDateTime& operator-=(const COleDateTimeSpan dateSpan); + + // DateTimeSpan math + COleDateTimeSpan operator-(const COleDateTime& date) const; + + operator DATE() const; + + BOOL SetDateTime(int nYear, int nMonth, int nDay, + int nHour, int nMin, int nSec); + BOOL SetDate(int nYear, int nMonth, int nDay); + BOOL SetTime(int nHour, int nMin, int nSec); + BOOL ParseDateTime(LPCTSTR lpszDate, DWORD dwFlags = 0, + LCID lcid = LANG_USER_DEFAULT); + + // formatting + CString Format(DWORD dwFlags = 0, LCID lcid = LANG_USER_DEFAULT) const; + CString Format(LPCTSTR lpszFormat) const; + CString Format(UINT nFormatID) const; + +// Implementation +protected: + void CheckRange(); + friend COleDateTimeSpan; +}; + +// COleDateTime diagnostics and serialization +#ifdef _DEBUG +CDumpContext& AFXAPI operator<<(CDumpContext& dc, COleDateTime dateSrc); +#endif +CArchive& AFXAPI operator<<(CArchive& ar, COleDateTime dateSrc); +CArchive& AFXAPI operator>>(CArchive& ar, COleDateTime& dateSrc); + +///////////////////////////////////////////////////////////////////////////// +// COleDateTimeSpan class +class COleDateTimeSpan +{ +// Constructors +public: + COleDateTimeSpan(); + + COleDateTimeSpan(double dblSpanSrc); + COleDateTimeSpan(const COleDateTimeSpan& dateSpanSrc); + COleDateTimeSpan(long lDays, int nHours, int nMins, int nSecs); + +// Attributes +public: + enum DateTimeSpanStatus + { + valid = 0, + invalid = 1, // Invalid span (out of range, etc.) + null = 2, // Literally has no value + }; + + double m_span; + DateTimeSpanStatus m_status; + + void SetStatus(DateTimeSpanStatus status); + DateTimeSpanStatus GetStatus() const; + + double GetTotalDays() const; // span in days (about -3.65e6 to 3.65e6) + double GetTotalHours() const; // span in hours (about -8.77e7 to 8.77e6) + double GetTotalMinutes() const; // span in minutes (about -5.26e9 to 5.26e9) + double GetTotalSeconds() const; // span in seconds (about -3.16e11 to 3.16e11) + + long GetDays() const; // component days in span + long GetHours() const; // component hours in span (-23 to 23) + long GetMinutes() const; // component minutes in span (-59 to 59) + long GetSeconds() const; // component seconds in span (-59 to 59) + +// Operations +public: + const COleDateTimeSpan& operator=(double dblSpanSrc); + const COleDateTimeSpan& operator=(const COleDateTimeSpan& dateSpanSrc); + + BOOL operator==(const COleDateTimeSpan& dateSpan) const; + BOOL operator!=(const COleDateTimeSpan& dateSpan) const; + BOOL operator<(const COleDateTimeSpan& dateSpan) const; + BOOL operator>(const COleDateTimeSpan& dateSpan) const; + BOOL operator<=(const COleDateTimeSpan& dateSpan) const; + BOOL operator>=(const COleDateTimeSpan& dateSpan) const; + + // DateTimeSpan math + COleDateTimeSpan operator+(const COleDateTimeSpan& dateSpan) const; + COleDateTimeSpan operator-(const COleDateTimeSpan& dateSpan) const; + const COleDateTimeSpan& operator+=(const COleDateTimeSpan dateSpan); + const COleDateTimeSpan& operator-=(const COleDateTimeSpan dateSpan); + COleDateTimeSpan operator-() const; + + operator double() const; + + void SetDateTimeSpan(long lDays, int nHours, int nMins, int nSecs); + + // formatting + CString Format(LPCTSTR pFormat) const; + CString Format(UINT nID) const; + +// Implementation +public: + void CheckRange(); + friend COleDateTime; +}; + +// COleDateTimeSpan diagnostics and serialization +#ifdef _DEBUG +CDumpContext& AFXAPI operator<<(CDumpContext& dc,COleDateTimeSpan dateSpanSrc); +#endif +CArchive& AFXAPI operator<<(CArchive& ar, COleDateTimeSpan dateSpanSrc); +CArchive& AFXAPI operator>>(CArchive& ar, COleDateTimeSpan& dateSpanSrc); + +///////////////////////////////////////////////////////////////////////////// +// Helper for initializing COleSafeArray +void AFXAPI AfxSafeArrayInit(COleSafeArray* psa); + +///////////////////////////////////////////////////////////////////////////// +// CSafeArray class + +typedef const SAFEARRAY* LPCSAFEARRAY; + +class COleSafeArray : public tagVARIANT +{ +//Constructors +public: + COleSafeArray(); + COleSafeArray(const SAFEARRAY& saSrc, VARTYPE vtSrc); + COleSafeArray(LPCSAFEARRAY pSrc, VARTYPE vtSrc); + COleSafeArray(const COleSafeArray& saSrc); + COleSafeArray(const VARIANT& varSrc); + COleSafeArray(LPCVARIANT pSrc); + COleSafeArray(const COleVariant& varSrc); + +// Operations +public: + void Clear(); + void Attach(VARIANT& varSrc); + VARIANT Detach(); + + COleSafeArray& operator=(const COleSafeArray& saSrc); + COleSafeArray& operator=(const VARIANT& varSrc); + COleSafeArray& operator=(LPCVARIANT pSrc); + COleSafeArray& operator=(const COleVariant& varSrc); + + BOOL operator==(const SAFEARRAY& saSrc) const; + BOOL operator==(LPCSAFEARRAY pSrc) const; + BOOL operator==(const COleSafeArray& saSrc) const; + BOOL operator==(const VARIANT& varSrc) const; + BOOL operator==(LPCVARIANT pSrc) const; + BOOL operator==(const COleVariant& varSrc) const; + + operator LPVARIANT(); + operator LPCVARIANT() const; + + // One dim array helpers + void CreateOneDim(VARTYPE vtSrc, DWORD dwElements, + void* pvSrcData = NULL, long nLBound = 0); + DWORD GetOneDimSize(); + void ResizeOneDim(DWORD dwElements); + + // Multi dim array helpers + void Create(VARTYPE vtSrc, DWORD dwDims, DWORD* rgElements); + + // SafeArray wrapper classes + void Create(VARTYPE vtSrc, DWORD dwDims, SAFEARRAYBOUND* rgsabounds); + void AccessData(void** ppvData); + void UnaccessData(); + void AllocData(); + void AllocDescriptor(DWORD dwDims); + void Copy(LPSAFEARRAY* ppsa); + void GetLBound(DWORD dwDim, long* pLBound); + void GetUBound(DWORD dwDim, long* pUBound); + void GetElement(long* rgIndices, void* pvData); + void PtrOfIndex(long* rgIndices, void** ppvData); + void PutElement(long* rgIndices, void* pvData); + void Redim(SAFEARRAYBOUND* psaboundNew); + void Lock(); + void Unlock(); + DWORD GetDim(); + DWORD GetElemSize(); + void Destroy(); + void DestroyData(); + void DestroyDescriptor(); + +//Implementation +public: + ~COleSafeArray(); + + // Cache info to make element access (operator []) faster + DWORD m_dwElementSize; + DWORD m_dwDims; +}; + +// COleSafeArray diagnostics and serialization +#ifdef _DEBUG +CDumpContext& AFXAPI operator<<(CDumpContext& dc, COleSafeArray saSrc); +#endif +CArchive& AFXAPI operator<<(CArchive& ar, COleSafeArray saSrc); +CArchive& AFXAPI operator>>(CArchive& ar, COleSafeArray& saSrc); + +///////////////////////////////////////////////////////////////////////////// +// DDX_ functions for OLE controls on dialogs + +#ifndef _AFX_NO_OCC_SUPPORT + +void AFXAPI DDX_OCText(CDataExchange* pDX, int nIDC, DISPID dispid, + CString& value); +void AFXAPI DDX_OCTextRO(CDataExchange* pDX, int nIDC, DISPID dispid, + CString& value); +void AFXAPI DDX_OCBool(CDataExchange* pDX, int nIDC, DISPID dispid, + BOOL& value); +void AFXAPI DDX_OCBoolRO(CDataExchange* pDX, int nIDC, DISPID dispid, + BOOL& value); +void AFXAPI DDX_OCInt(CDataExchange* pDX, int nIDC, DISPID dispid, + int &value); +void AFXAPI DDX_OCIntRO(CDataExchange* pDX, int nIDC, DISPID dispid, + int &value); +void AFXAPI DDX_OCInt(CDataExchange* pDX, int nIDC, DISPID dispid, + long &value); +void AFXAPI DDX_OCIntRO(CDataExchange* pDX, int nIDC, DISPID dispid, + long &value); +void AFXAPI DDX_OCShort(CDataExchange* pDX, int nIDC, DISPID dispid, + short& value); +void AFXAPI DDX_OCShortRO(CDataExchange* pDX, int nIDC, DISPID dispid, + short& value); +void AFXAPI DDX_OCColor(CDataExchange* pDX, int nIDC, DISPID dispid, + OLE_COLOR& value); +void AFXAPI DDX_OCColorRO(CDataExchange* pDX, int nIDC, DISPID dispid, + OLE_COLOR& value); +void AFXAPI DDX_OCFloat(CDataExchange* pDX, int nIDC, DISPID dispid, + float& value); +void AFXAPI DDX_OCFloatRO(CDataExchange* pDX, int nIDC, DISPID dispid, + float& value); +void AFXAPI DDX_OCFloat(CDataExchange* pDX, int nIDC, DISPID dispid, + double& value); +void AFXAPI DDX_OCFloatRO(CDataExchange* pDX, int nIDC, DISPID dispid, + double& value); + +#endif // !_AFX_NO_OCC_SUPPORT + +///////////////////////////////////////////////////////////////////////////// +// Function to enable containment of OLE controls + +#ifndef _AFX_NO_OCC_SUPPORT +void AFX_CDECL AfxEnableControlContainer(COccManager* pOccManager=NULL); +#else +#define AfxEnableControlContainer() +#endif + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXDISP_INLINE inline +#include <afxole.inl> +#undef _AFXDISP_INLINE +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif //__AFXDISP_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxdlgs.h b/public/sdk/inc/mfc42/afxdlgs.h new file mode 100644 index 000000000..af0bfeab2 --- /dev/null +++ b/public/sdk/inc/mfc42/afxdlgs.h @@ -0,0 +1,650 @@ +// 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. + +#ifndef __AFXDLGS_H__ +#define __AFXDLGS_H__ + +#ifndef __AFXWIN_H__ + #include <afxwin.h> +#endif + +#ifndef _INC_COMMDLG + #include <commdlg.h> // common dialog APIs +#endif + +// Avoid mapping GetFileTitle to GetFileTitle[A/W] +#ifdef GetFileTitle +#undef GetFileTitle +inline short APIENTRY GetFileTitle(LPCTSTR lpszFile, LPTSTR lpszTitle, WORD cbBuf) +#ifdef UNICODE + { return ::GetFileTitleW(lpszFile, lpszTitle, cbBuf); } +#else + { return ::GetFileTitleA(lpszFile, lpszTitle, cbBuf); } +#endif +#endif + +#ifndef _AFX_NO_RICHEDIT_SUPPORT + #ifndef _RICHEDIT_ + #include <richedit.h> + #endif +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifndef _AFX_NOFORCE_LIBS +#ifndef _MAC + +///////////////////////////////////////////////////////////////////////////// +// Win32 libraries + +#else //!_MAC + +///////////////////////////////////////////////////////////////////////////// +// Mac libraries + +#endif //_MAC +#endif //!_AFX_NOFORCE_LIBS + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// AFXDLGS - MFC Standard dialogs + +// Classes declared in this file + + // CDialog + class CCommonDialog; // implementation base class + + // modeless dialogs + class CFindReplaceDialog; // Find/FindReplace dialog + + // modal dialogs + class CFileDialog; // FileOpen/FileSaveAs dialogs + class CColorDialog; // Color picker dialog + class CFontDialog; // Font chooser dialog + class CPrintDialog; // Print/PrintSetup dialogs + class CPageSetupDialog; // Page Setup dialog + + // CWnd + class CPropertySheet; // implements tabbed dialogs + + // CDialog + class CPropertyPage; // Used with CPropertySheet for tabbed dialogs + +///////////////////////////////////////////////////////////////////////////// + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +///////////////////////////////////////////////////////////////////////////// +// CCommonDialog - base class for all common dialogs + +class CCommonDialog : public CDialog +{ +public: + CCommonDialog(CWnd* pParentWnd); + +// Implementation +protected: + virtual void OnOK(); + virtual void OnCancel(); + + //{{AFX_MSG(CCommonDialog) + afx_msg BOOL OnHelpInfo(HELPINFO*); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// CFileDialog - used for FileOpen... or FileSaveAs... + +class CFileDialog : public CCommonDialog +{ + DECLARE_DYNAMIC(CFileDialog) + +public: +// Attributes + OPENFILENAME m_ofn; // open file parameter block + +// Constructors + CFileDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs + LPCTSTR lpszDefExt = NULL, + LPCTSTR lpszFileName = NULL, + DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, + LPCTSTR lpszFilter = NULL, + CWnd* pParentWnd = NULL); + +// Operations + virtual int DoModal(); + + // Helpers for parsing file name after successful return + // or during Overridable callbacks if OFN_EXPLORER is set + CString GetPathName() const; // return full path and filename + CString GetFileName() const; // return only filename + CString GetFileExt() const; // return only ext + CString GetFileTitle() const; // return file title + BOOL GetReadOnlyPref() const; // return TRUE if readonly checked + + // Enumerating multiple file selections + POSITION GetStartPosition() const; + CString GetNextPathName(POSITION& pos) const; + + // Helpers for custom templates + void SetTemplate(UINT nWin3ID, UINT nWin4ID); + void SetTemplate(LPCTSTR lpWin3ID, LPCTSTR lpWin4ID); + +#ifndef _MAC + // Other operations available while the dialog is visible + CString GetFolderPath() const; // return full path + void SetControlText(int nID, LPCSTR lpsz); + void HideControl(int nID); + void SetDefExt(LPCSTR lpsz); +#endif + +// Overridable callbacks +protected: + friend UINT CALLBACK _AfxCommDlgProc(HWND, UINT, WPARAM, LPARAM); + virtual UINT OnShareViolation(LPCTSTR lpszPathName); + virtual BOOL OnFileNameOK(); + virtual void OnLBSelChangedNotify(UINT nIDBox, UINT iCurSel, UINT nCode); + + // only called back if OFN_EXPLORER is set + virtual void OnInitDone(); + virtual void OnFileNameChange(); + virtual void OnFolderChange(); + virtual void OnTypeChange(); + +// Implementation +#ifdef _DEBUG +public: + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + BOOL m_bOpenFileDialog; // TRUE for file open, FALSE for file save + CString m_strFilter; // filter string + // separate fields with '|', terminate with '||\0' + TCHAR m_szFileTitle[64]; // contains file title after return + TCHAR m_szFileName[_MAX_PATH]; // contains full path name after return + + OPENFILENAME* m_pofnTemp; + + virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult); +}; + +///////////////////////////////////////////////////////////////////////////// +// CFontDialog - used to select a font + +class CFontDialog : public CCommonDialog +{ + DECLARE_DYNAMIC(CFontDialog) + +public: +// Attributes + // font choosing parameter block + CHOOSEFONT m_cf; + +// Constructors + CFontDialog(LPLOGFONT lplfInitial = NULL, + DWORD dwFlags = CF_EFFECTS | CF_SCREENFONTS, + CDC* pdcPrinter = NULL, + CWnd* pParentWnd = NULL); +#ifndef _AFX_NO_RICHEDIT_SUPPORT + CFontDialog(const CHARFORMAT& charformat, + DWORD dwFlags = CF_SCREENFONTS, + CDC* pdcPrinter = NULL, + CWnd* pParentWnd = NULL); +#endif +// Operations + virtual int DoModal(); + + // Get the selected font (works during DoModal displayed or after) + void GetCurrentFont(LPLOGFONT lplf); + + // Helpers for parsing information after successful return + CString GetFaceName() const; // return the face name of the font + CString GetStyleName() const; // return the style name of the font + int GetSize() const; // return the pt size of the font + COLORREF GetColor() const; // return the color of the font + int GetWeight() const; // return the chosen font weight + BOOL IsStrikeOut() const; // return TRUE if strikeout + BOOL IsUnderline() const; // return TRUE if underline + BOOL IsBold() const; // return TRUE if bold font + BOOL IsItalic() const; // return TRUE if italic font +#ifndef _AFX_NO_RICHEDIT_SUPPORT + void GetCharFormat(CHARFORMAT& cf) const; +#endif + +// Implementation + LOGFONT m_lf; // default LOGFONT to store the info +#ifndef _AFX_NO_RICHEDIT_SUPPORT + DWORD FillInLogFont(const CHARFORMAT& cf); +#endif + +#ifdef _DEBUG +public: + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + TCHAR m_szStyleName[64]; // contains style name after return +}; + +///////////////////////////////////////////////////////////////////////////// +// CColorDialog - used to select a color + +class CColorDialog : public CCommonDialog +{ + DECLARE_DYNAMIC(CColorDialog) + +public: +// Attributes + // color chooser parameter block + CHOOSECOLOR m_cc; + +// Constructors + CColorDialog(COLORREF clrInit = 0, DWORD dwFlags = 0, + CWnd* pParentWnd = NULL); + +// Operations + virtual int DoModal(); + + // Set the current color while dialog is displayed + void SetCurrentColor(COLORREF clr); + + // Helpers for parsing information after successful return + COLORREF GetColor() const; + static COLORREF* PASCAL GetSavedCustomColors(); + +// Overridable callbacks +protected: + friend UINT CALLBACK _AfxCommDlgProc(HWND, UINT, WPARAM, LPARAM); + virtual BOOL OnColorOK(); // validate color + +// Implementation + +#ifdef _DEBUG +public: + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + //{{AFX_MSG(CColorDialog) + afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +// for backward compatibility clrSavedCustom is defined as GetSavedCustomColors +#define clrSavedCustom GetSavedCustomColors() + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// Page Setup dialog + +class CPageSetupDialog : public CCommonDialog +{ + DECLARE_DYNAMIC(CPageSetupDialog) + +public: +// Attributes + PAGESETUPDLG m_psd; + +// Constructors + CPageSetupDialog(DWORD dwFlags = PSD_MARGINS | PSD_INWININIINTLMEASURE, + CWnd* pParentWnd = NULL); + +// Attributes + LPDEVMODE GetDevMode() const; // return DEVMODE + CString GetDriverName() const; // return driver name + CString GetDeviceName() const; // return device name + CString GetPortName() const; // return output port name + HDC CreatePrinterDC(); + CSize GetPaperSize() const; + void GetMargins(LPRECT lpRectMargins, LPRECT lpRectMinMargins) const; + +// Operations + virtual int DoModal(); + +// Overridables + virtual UINT PreDrawPage(WORD wPaper, WORD wFlags, LPPAGESETUPDLG pPSD); + virtual UINT OnDrawPage(CDC* pDC, UINT nMessage, LPRECT lpRect); + +// Implementation +protected: + static UINT CALLBACK PaintHookProc(HWND hWnd, UINT message, WPARAM wParam, + LPARAM lParam); + +#ifdef _DEBUG +public: + virtual void Dump(CDumpContext& dc) const; +#endif +}; +#endif //!_MAC + +///////////////////////////////////////////////////////////////////////////// +// CPrintDialog - used for Print... and PrintSetup... + +class CPrintDialog : public CCommonDialog +{ + DECLARE_DYNAMIC(CPrintDialog) + +public: +// Attributes + // print dialog parameter block (note this is a reference) + PRINTDLG& m_pd; + +// Constructors + CPrintDialog(BOOL bPrintSetupOnly, + // TRUE for Print Setup, FALSE for Print Dialog + DWORD dwFlags = PD_ALLPAGES | PD_USEDEVMODECOPIES | PD_NOPAGENUMS + | PD_HIDEPRINTTOFILE | PD_NOSELECTION, + CWnd* pParentWnd = NULL); + +// Operations + virtual int DoModal(); + + // GetDefaults will not display a dialog but will get + // device defaults + BOOL GetDefaults(); + + // Helpers for parsing information after successful return + int GetCopies() const; // num. copies requested + BOOL PrintCollate() const; // TRUE if collate checked + BOOL PrintSelection() const; // TRUE if printing selection + BOOL PrintAll() const; // TRUE if printing all pages + BOOL PrintRange() const; // TRUE if printing page range + int GetFromPage() const; // starting page if valid + int GetToPage() const; // starting page if valid + LPDEVMODE GetDevMode() const; // return DEVMODE + CString GetDriverName() const; // return driver name + CString GetDeviceName() const; // return device name + CString GetPortName() const; // return output port name + HDC GetPrinterDC() const; // return HDC (caller must delete) + + // This helper creates a DC based on the DEVNAMES and DEVMODE structures. + // This DC is returned, but also stored in m_pd.hDC as though it had been + // returned by CommDlg. It is assumed that any previously obtained DC + // has been/will be deleted by the user. This may be + // used without ever invoking the print/print setup dialogs. + + HDC CreatePrinterDC(); + +// Implementation + +#ifdef _DEBUG +public: + virtual void Dump(CDumpContext& dc) const; +#endif + +private: + PRINTDLG m_pdActual; // the Print/Print Setup need to share this +protected: + // The following handle the case of print setup... from the print dialog + CPrintDialog(PRINTDLG& pdInit); + virtual CPrintDialog* AttachOnSetup(); + + //{{AFX_MSG(CPrintDialog) + afx_msg void OnPrintSetup(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// Find/FindReplace modeless dialogs + +class CFindReplaceDialog : public CCommonDialog +{ + DECLARE_DYNAMIC(CFindReplaceDialog) + +public: +// Attributes + FINDREPLACE m_fr; + +// Constructors + CFindReplaceDialog(); + // Note: you must allocate these on the heap. + // If you do not, you must derive and override PostNcDestroy() + + BOOL Create(BOOL bFindDialogOnly, // TRUE for Find, FALSE for FindReplace + LPCTSTR lpszFindWhat, + LPCTSTR lpszReplaceWith = NULL, + DWORD dwFlags = FR_DOWN, + CWnd* pParentWnd = NULL); + + // find/replace parameter block + static CFindReplaceDialog* PASCAL GetNotifier(LPARAM lParam); + +// Operations + // Helpers for parsing information after successful return + CString GetReplaceString() const;// get replacement string + CString GetFindString() const; // get find string + BOOL SearchDown() const; // TRUE if search down, FALSE is up + BOOL FindNext() const; // TRUE if command is find next + BOOL MatchCase() const; // TRUE if matching case + BOOL MatchWholeWord() const; // TRUE if matching whole words only + BOOL ReplaceCurrent() const; // TRUE if replacing current string + BOOL ReplaceAll() const; // TRUE if replacing all occurrences + BOOL IsTerminating() const; // TRUE if terminating dialog + +// Implementation +protected: + virtual void PostNcDestroy(); + +#ifdef _DEBUG +public: + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + TCHAR m_szFindWhat[128]; + TCHAR m_szReplaceWith[128]; +}; + +//////////////////////////////////////////////////////////////////////////// +// CPropertyPage -- one page of a tabbed dialog + +class CPropertyPage : public CDialog +{ + DECLARE_DYNAMIC(CPropertyPage) + +// Construction +public: + CPropertyPage(UINT nIDTemplate, UINT nIDCaption = 0); + CPropertyPage(LPCTSTR lpszTemplateName, UINT nIDCaption = 0); + CPropertyPage(); + void Construct(UINT nIDTemplate, UINT nIDCaption = 0); + void Construct(LPCTSTR lpszTemplateName, UINT nIDCaption = 0); + +// Attributes + PROPSHEETPAGE m_psp; + +// Operations + void CancelToClose(); + void SetModified(BOOL bChanged = TRUE); + LRESULT QuerySiblings(WPARAM wParam, LPARAM lParam); + +// Overridables +public: + virtual BOOL OnApply(); + virtual void OnReset(); + virtual void OnOK(); + virtual void OnCancel(); + virtual BOOL OnSetActive(); + virtual BOOL OnKillActive(); + virtual BOOL OnQueryCancel(); + + virtual LRESULT OnWizardBack(); + virtual LRESULT OnWizardNext(); + virtual BOOL OnWizardFinish(); + +// Implementation +public: + virtual ~CPropertyPage(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; + void EndDialog(int nEndID); // incorrect to call and will assert +#endif + +protected: + // private implementation data + CString m_strCaption; + BOOL m_bFirstSetActive; + + // implementation helpers + void CommonConstruct(LPCTSTR lpszTemplateName, UINT nIDCaption); + virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult); + virtual BOOL PreTranslateMessage(MSG*); + LRESULT MapWizardResult(LRESULT lToMap); + + + void PreProcessPageTemplate(PROPSHEETPAGE& psp, BOOL bWizard); +#ifndef _AFX_NO_OCC_SUPPORT + void Cleanup(); + const DLGTEMPLATE* InitDialogInfo(const DLGTEMPLATE* pTemplate); +#endif + + // Generated message map functions + //{{AFX_MSG(CPropertyPage) + afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + friend class CPropertySheet; +}; + +//////////////////////////////////////////////////////////////////////////// +// CPropertySheet -- a tabbed "dialog" (really a popup-window) + +class CTabCtrl; // forward reference (see afxcmn.h) + +class CPropertySheet : public CWnd +{ + DECLARE_DYNAMIC(CPropertySheet) + +// Construction +public: + CPropertySheet(); + CPropertySheet(UINT nIDCaption, CWnd* pParentWnd = NULL, + UINT iSelectPage = 0); + CPropertySheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, + UINT iSelectPage = 0); + void Construct(UINT nIDCaption, CWnd* pParentWnd = NULL, + UINT iSelectPage = 0); + void Construct(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, + UINT iSelectPage = 0); + + // for modeless creation + BOOL Create(CWnd* pParentWnd = NULL, DWORD dwStyle = (DWORD)-1, + DWORD dwExStyle = 0); + // the default style, expressed by passing -1 as dwStyle, is actually: + // WS_SYSMENU | WS_POPUP | WS_CAPTION | DS_MODALFRAME | DS_CONTEXT_HELP | WS_VISIBLE + +// Attributes +public: + PROPSHEETHEADER m_psh; + + int GetPageCount() const; + CPropertyPage* GetActivePage() const; + int GetActiveIndex() const; + CPropertyPage* GetPage(int nPage) const; + int GetPageIndex(CPropertyPage* pPage); + BOOL SetActivePage(int nPage); + BOOL SetActivePage(CPropertyPage* pPage); + void SetTitle(LPCTSTR lpszText, UINT nStyle = 0); + CTabCtrl* GetTabControl() const; + + void SetWizardMode(); + void SetFinishText(LPCTSTR lpszText); + void SetWizardButtons(DWORD dwFlags); + +// Operations +public: + virtual int DoModal(); + void AddPage(CPropertyPage* pPage); + void RemovePage(CPropertyPage* pPage); + void RemovePage(int nPage); + void EndDialog(int nEndID); // used to terminate a modal dialog + BOOL PressButton(int nButton); + +// Implementation +public: + virtual ~CPropertySheet(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + void CommonConstruct(CWnd* pParentWnd, UINT iSelectPage); + void EnableStackedTabs(BOOL bStacked); + virtual BOOL PreTranslateMessage(MSG* pMsg); + virtual void BuildPropPageArray(); + virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); + virtual BOOL OnInitDialog(); + virtual BOOL ContinueModal(); + virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, + AFX_CMDHANDLERINFO* pHandlerInfo); + +protected: + CPtrArray m_pages; // array of CPropertyPage pointers + CString m_strCaption; // caption of the pseudo-dialog + CWnd* m_pParentWnd; // parent window of property sheet + BOOL m_bStacked; // EnableStackedTabs sets this + BOOL m_bModeless; // TRUE when Create called instead of DoModal + + // Generated message map functions + //{{AFX_MSG(CPropertySheet) + afx_msg BOOL OnNcCreate(LPCREATESTRUCT); + afx_msg LRESULT HandleInitDialog(WPARAM, LPARAM); + afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); + afx_msg LRESULT OnCommandHelp(WPARAM, LPARAM); + afx_msg void OnClose(); + afx_msg void OnSysCommand(UINT nID, LPARAM); + afx_msg LRESULT OnSetDefID(WPARAM, LPARAM); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + friend class CPropertyPage; +}; + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXDLGS_INLINE inline +#include <afxdlgs.inl> +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif //__AFXDLGS_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxdlgs.inl b/public/sdk/inc/mfc42/afxdlgs.inl new file mode 100644 index 000000000..e390f474a --- /dev/null +++ b/public/sdk/inc/mfc42/afxdlgs.inl @@ -0,0 +1,100 @@ +// 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. + +// Inlines for AFXDLGS.H + +#ifdef _AFXDLGS_INLINE + +_AFXDLGS_INLINE CCommonDialog::CCommonDialog(CWnd* pParentWnd) + : CDialog((UINT)0, pParentWnd) { } + +_AFXDLGS_INLINE BOOL CFileDialog::GetReadOnlyPref() const + { return m_ofn.Flags & OFN_READONLY ? TRUE : FALSE; } +_AFXDLGS_INLINE void CFileDialog::SetTemplate(UINT nWin3ID, UINT nWin4ID) + { SetTemplate(MAKEINTRESOURCE(nWin3ID), MAKEINTRESOURCE(nWin4ID)); } +_AFXDLGS_INLINE POSITION CFileDialog::GetStartPosition() const + { return (POSITION)m_ofn.lpstrFile; } +_AFXDLGS_INLINE CString CFontDialog::GetFaceName() const + { return (LPCTSTR)m_cf.lpLogFont->lfFaceName; } +_AFXDLGS_INLINE CString CFontDialog::GetStyleName() const + { return m_cf.lpszStyle; } +_AFXDLGS_INLINE int CFontDialog::GetSize() const + { return m_cf.iPointSize; } +_AFXDLGS_INLINE int CFontDialog::GetWeight() const + { return (int)m_cf.lpLogFont->lfWeight; } +_AFXDLGS_INLINE BOOL CFontDialog::IsItalic() const + { return m_cf.lpLogFont->lfItalic ? TRUE : FALSE; } +_AFXDLGS_INLINE BOOL CFontDialog::IsStrikeOut() const + { return m_cf.lpLogFont->lfStrikeOut ? TRUE : FALSE; } +_AFXDLGS_INLINE BOOL CFontDialog::IsBold() const + { return m_cf.lpLogFont->lfWeight == FW_BOLD ? TRUE : FALSE; } +_AFXDLGS_INLINE BOOL CFontDialog::IsUnderline() const + { return m_cf.lpLogFont->lfUnderline ? TRUE : FALSE; } +_AFXDLGS_INLINE COLORREF CFontDialog::GetColor() const + { return m_cf.rgbColors; } +_AFXDLGS_INLINE COLORREF CColorDialog::GetColor() const + { return m_cc.rgbResult; } +_AFXDLGS_INLINE BOOL CPrintDialog::PrintSelection() const + { return m_pd.Flags & PD_SELECTION ? TRUE : FALSE; } +_AFXDLGS_INLINE BOOL CPrintDialog::PrintRange() const + { return m_pd.Flags & PD_PAGENUMS ? TRUE : FALSE; } +_AFXDLGS_INLINE BOOL CPrintDialog::PrintAll() const + { return !PrintRange() && !PrintSelection() ? TRUE : FALSE; } +_AFXDLGS_INLINE BOOL CPrintDialog::PrintCollate() const + { return m_pd.Flags & PD_COLLATE ? TRUE : FALSE; } +_AFXDLGS_INLINE int CPrintDialog::GetFromPage() const + { return (PrintRange() ? m_pd.nFromPage :-1); } +_AFXDLGS_INLINE int CPrintDialog::GetToPage() const + { return (PrintRange() ? m_pd.nToPage :-1); } +_AFXDLGS_INLINE HDC CPrintDialog::GetPrinterDC() const + { ASSERT_VALID(this); + ASSERT(m_pd.Flags & PD_RETURNDC); + return m_pd.hDC; } +_AFXDLGS_INLINE BOOL CFindReplaceDialog::IsTerminating() const + { return m_fr.Flags & FR_DIALOGTERM ? TRUE : FALSE ; } +_AFXDLGS_INLINE CString CFindReplaceDialog::GetReplaceString() const + { return m_fr.lpstrReplaceWith; } +_AFXDLGS_INLINE CString CFindReplaceDialog::GetFindString() const + { return m_fr.lpstrFindWhat; } +_AFXDLGS_INLINE BOOL CFindReplaceDialog::SearchDown() const + { return m_fr.Flags & FR_DOWN ? TRUE : FALSE; } +_AFXDLGS_INLINE BOOL CFindReplaceDialog::FindNext() const + { return m_fr.Flags & FR_FINDNEXT ? TRUE : FALSE; } +_AFXDLGS_INLINE BOOL CFindReplaceDialog::MatchCase() const + { return m_fr.Flags & FR_MATCHCASE ? TRUE : FALSE; } +_AFXDLGS_INLINE BOOL CFindReplaceDialog::MatchWholeWord() const + { return m_fr.Flags & FR_WHOLEWORD ? TRUE : FALSE; } +_AFXDLGS_INLINE BOOL CFindReplaceDialog::ReplaceCurrent() const + { return m_fr. Flags & FR_REPLACE ? TRUE : FALSE; } +_AFXDLGS_INLINE BOOL CFindReplaceDialog::ReplaceAll() const + { return m_fr.Flags & FR_REPLACEALL ? TRUE : FALSE; } + +_AFXDLGS_INLINE CPropertyPage* CPropertySheet::GetPage(int nPage) const + { return STATIC_DOWNCAST(CPropertyPage, (CObject*)m_pages[nPage]); } +_AFXDLGS_INLINE void CPropertySheet::SetWizardMode() + { m_psh.dwFlags |= PSH_WIZARD; } +_AFXDLGS_INLINE void CPropertySheet::SetFinishText(LPCTSTR lpszText) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, PSM_SETFINISHTEXT, 0, (LPARAM)lpszText); } +_AFXDLGS_INLINE void CPropertySheet::SetWizardButtons(DWORD dwFlags) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, PSM_SETWIZBUTTONS, 0, dwFlags); } +_AFXDLGS_INLINE CTabCtrl* CPropertySheet::GetTabControl() const + { ASSERT(::IsWindow(m_hWnd)); return (CTabCtrl*)CWnd::FromHandle( + (HWND)::SendMessage(m_hWnd, PSM_GETTABCONTROL, 0, 0)); } +_AFXDLGS_INLINE BOOL CPropertySheet::PressButton(int nButton) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, PSM_PRESSBUTTON, nButton, 0); } + +#ifndef _MAC +_AFXDLGS_INLINE CSize CPageSetupDialog::GetPaperSize() const + { return CSize(m_psd.ptPaperSize.x, m_psd.ptPaperSize.y); } +#endif + +///////////////////////////////////////////////////////////////////////////// + +#endif //_AFXDLGS_INLINE diff --git a/public/sdk/inc/mfc42/afxdll_.h b/public/sdk/inc/mfc42/afxdll_.h new file mode 100644 index 000000000..53292bc40 --- /dev/null +++ b/public/sdk/inc/mfc42/afxdll_.h @@ -0,0 +1,105 @@ +// 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. + +// 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, BOOL bSystem = FALSE); + +// Attributes + HMODULE m_hModule; + HMODULE m_hResource; // for shared resources + CTypedSimpleList<CRuntimeClass*> m_classList; +#ifndef _AFX_NO_OLE_SUPPORT + CTypedSimpleList<COleObjectFactory*> m_factoryList; +#endif + 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 +}; + +// call in every DLL_PROCESS_ATTACH +BOOL AFXAPI AfxInitExtensionModule(AFX_EXTENSION_MODULE&, HMODULE hMod); +// call on every DLL_PROCESS_DETACH +void AFXAPI AfxTermExtensionModule(AFX_EXTENSION_MODULE&, BOOL bAll = FALSE); + +// special function(s) for stand-alone DLLs (and controls) +void AFXAPI AfxCoreInitModule(); +#if (defined(_DEBUG) || defined(_MAC)) && !defined(_AFX_MONOLITHIC) +void AFXAPI AfxOleInitModule(); +void AFXAPI AfxNetInitModule(); +void AFXAPI AfxDbInitModule(); +#else +#define AfxOleInitModule() +#define AfxNetInitModule() +#define AfxDbInitModule() +#endif + +// special functions for loading and freeing MFC extension DLLs +// (necessary if your app is multithreaded and loads extension +// DLLs dynamically) +HINSTANCE AFXAPI AfxLoadLibrary(LPCTSTR lpszModuleName); +BOOL AFXAPI AfxFreeLibrary(HINSTANCE hInstLib); + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxdllx.h b/public/sdk/inc/mfc42/afxdllx.h new file mode 100644 index 000000000..01eeba454 --- /dev/null +++ b/public/sdk/inc/mfc42/afxdllx.h @@ -0,0 +1,68 @@ +// 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. + +///////////////////////////////////////////////////////////////////////////// +// AFXDLLX.H: Extra header for building an MFC Extension DLL +// +// This file is really a source file that you should include in the +// main source file of your DLL. It must only be included once, and +// not multiple times (you will get linker errors if it is included +// multiple times). If you do not use _AFXEXT, it is not required +// but you may want the feature it provides. +// +// Previous versions of 32-bit MFC did not require this file. This version +// requires this file to support dynamic loading of extension DLLs. In +// other words, if your application does LoadLibrary on any extension +// DLL (instead of binding to the DLL at link time), this file is +// required. + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +// The following symbol used to force inclusion of this module for _AFXEXT +#if defined(_X86_) || defined(_MAC) +extern "C" { int _afxForceEXTDLL; } +#else +extern "C" { int __afxForceEXTDLL; } +#endif + +///////////////////////////////////////////////////////////////////////////// +// RawDllMain that saves current app class list and factory list + +extern "C" BOOL WINAPI ExtRawDllMain(HINSTANCE, DWORD dwReason, LPVOID); +extern "C" BOOL (WINAPI* _pRawDllMain)(HINSTANCE, DWORD, LPVOID) = &ExtRawDllMain; + +extern "C" +BOOL WINAPI ExtRawDllMain(HINSTANCE, DWORD dwReason, LPVOID) +{ + if (dwReason == DLL_PROCESS_ATTACH) + { + // save critical data pointers before running the constructors + AFX_MODULE_STATE* pModuleState = AfxGetModuleState(); + pModuleState->m_pClassInit = pModuleState->m_classList; + pModuleState->m_pFactoryInit = pModuleState->m_factoryList; + pModuleState->m_classList.m_pHead = NULL; + pModuleState->m_factoryList.m_pHead = NULL; + } + return TRUE; // ok +} + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxdocob.h b/public/sdk/inc/mfc42/afxdocob.h new file mode 100644 index 000000000..d0ba95726 --- /dev/null +++ b/public/sdk/inc/mfc42/afxdocob.h @@ -0,0 +1,391 @@ +// This is a part of the Microsoft Foundation Classes C++ library. +// Copyright (C) 1996 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. + +#ifndef __AFXDOCOB_H__ +#define __AFXDOCOB_H__ + +//WINBUG: these error codes are needed by MFC's IPrint implementation +// but aren't available in the SDK headers. Someday, these #define's +// can be removed. + +#ifndef PRINT_E_CANCELLED +#define PRINT_E_CANCELLED 0x80040160L +#endif +#ifndef PRINT_E_NOSUCHPAGE +#define PRINT_E_NOSUCHPAGE 0x80040161L +#endif + +#ifdef _AFX_NO_OLE_SUPPORT + #error OLE classes not supported in this library variant. +#endif + +#ifndef __AFXOLE_H__ + #include <afxole.h> +#endif + +#ifndef __docobj_h__ + #include <docobj.h> // defines Document Object interfaces +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +// AFXDLL support +#undef AFX_DATA +#define AFX_DATA AFX_OLE_DATA + + +///////////////////////////////////////////////////////////////////////////// +// AFXDOCOB.H - MFC OLE Document Object support + +//CCmdUI +class COleCmdUI; + +//CCmdTarg +class CDocObjectServer; + +//COleIPFrameWnd +class COleDocIPFrameWnd; + + +///////////////////////////////////////////////////////////////////////////// +// COleCmdUI + +class COleCmdUI : public CCmdUI +{ +public: + COleCmdUI(OLECMD* rgCmds, ULONG cCmds, const GUID* m_pGroup); + virtual void Enable(BOOL bOn); + virtual void SetCheck(int nCheck); + virtual void SetText(LPCTSTR lpszText); + virtual BOOL DoUpdate(CCmdTarget* pTarget, BOOL bDisableIfNoHandler); + DWORD m_nCmdTextFlag; + +protected: + OLECMD* m_rgCmds; + const GUID* m_pguidCmdGroup; +public: + CString m_strText; + + friend class CCmdTarget; +}; + + +#define ON_OLECMD(pguid, olecmdid, id) \ + { pguid, (ULONG)olecmdid, (UINT)id }, + +#define ON_OLECMD_OPEN() \ + ON_OLECMD(NULL, OLECMDID_OPEN, ID_FILE_OPEN) + +#define ON_OLECMD_NEW() \ + ON_OLECMD(NULL, OLECMDID_NEW, ID_FILE_NEW) + +#define ON_OLECMD_SAVE() \ + ON_OLECMD(NULL, OLECMDID_SAVE, ID_FILE_SAVE) + +#define ON_OLECMD_SAVE_AS() \ + ON_OLECMD(NULL, OLECMDID_SAVEAS, ID_FILE_SAVE_AS) + +#define ON_OLECMD_SAVE_COPY_AS() \ + ON_OLECMD(NULL, OLECMDID_SAVECOPYAS, ID_FILE_SAVE_COPY_AS) + +#define ON_OLECMD_PRINT() \ + ON_OLECMD(NULL, OLECMDID_PRINT, ID_FILE_PRINT) + +#define ON_OLECMD_PRINTPREVIEW() \ + ON_OLECMD(NULL, OLECMDID_PRINTPREVIEW, ID_FILE_PRINT_PREVIEW) + +#define ON_OLECMD_PAGESETUP() \ + ON_OLECMD(NULL, OLECMDID_PAGESETUP, ID_FILE_PAGE_SETUP) + +#define ON_OLECMD_CUT() \ + ON_OLECMD(NULL, OLECMDID_CUT, ID_EDIT_CUT) + +#define ON_OLECMD_COPY() \ + ON_OLECMD(NULL, OLECMDID_COPY, ID_EDIT_COPY) + +#define ON_OLECMD_PASTE() \ + ON_OLECMD(NULL, OLECMDID_PASTE, ID_EDIT_PASTE) + +#define ON_OLECMD_PASTESPECIAL() \ + ON_OLECMD(NULL, OLECMDID_PASTESPECIAL, ID_EDIT_PASTE_SPECIAL) + +#define ON_OLECMD_UNDO() \ + ON_OLECMD(NULL, OLECMDID_UNDO, ID_EDIT_UNDO) + +#define ON_OLECMD_REDO() \ + ON_OLECMD(NULL, OLECMDID_REDO, ID_EDIT_REDO) + +#define ON_OLECMD_SELECTALL() \ + ON_OLECMD(NULL, OLECMDID_SELECTALL, ID_EDIT_SELECT_ALL) + +#define ON_OLECMD_CLEARSELECTION() \ + ON_OLECMD(NULL, OLECMDID_CLEARSELECTION, ID_EDIT_CLEAR) + + +///////////////////////////////////////////////////////////////////////////// +// CDocObjectServer class + +class CDocObjectServer : public CCmdTarget +{ + DECLARE_DYNAMIC(CDocObjectServer) + +// Constructors +public: + CDocObjectServer(COleServerDoc* pOwner, + LPOLEDOCUMENTSITE pDocSite = NULL); + +// Attributes +public: + +// Operations +public: + void ActivateDocObject(); + +// Overridables +protected: + // Document Overridables + + // View Overridables + virtual void OnApplyViewState(CArchive& ar); + virtual void OnSaveViewState(CArchive& ar); + virtual HRESULT OnActivateView(); + +// Implementation +public: + virtual ~CDocObjectServer(); + void ReleaseDocSite(); + void SetDocSite(LPOLEDOCUMENTSITE pNewSite); + COleDocIPFrameWnd* GetControllingFrame() const; +protected: + STDMETHODIMP OnExecOleCmd(const GUID* pguidCmdGroup, + DWORD nCmdID, DWORD nCmdExecOpt, VARIANTARG* pvarargIn, + VARIANTARG* pvarargOut); + BOOL DoPreparePrinting(CView* pView, CPrintInfo* printInfo); + void DoPrepareDC(CView* pView, CDC* pdcPrint, CPrintInfo* pprintInfo); + void DoPrint(CView* pView, CDC* pdcPrint, CPrintInfo* pprintInfo); + void DoBeginPrinting(CView* pView, CDC* pDC, CPrintInfo* pprintInfo); + void DoEndPrinting(CView* pView, CDC* pDC, CPrintInfo* pprintInfo); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + // Overrides +protected: + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CDocObjectServer) + public: + virtual void OnCloseDocument(); + //}}AFX_VIRTUAL + + // Implementation Data +protected: + // Document Data + LPOLEDOCUMENTSITE m_pDocSite; + COleServerDoc* m_pOwner; + + // Print Data + LONG m_nFirstPage; + LPCONTINUECALLBACK m_pContinueCallback; + + // View Data + LPOLEINPLACESITE m_pViewSite; + + // Implementation Helpers +protected: + void OnSetItemRects(LPRECT lprcPosRect, LPRECT lprcClipRect); +// LPUNKNOWN GetInterfaceHook(const void* iid); + + // Generated message map functions +protected: + //{{AFX_MSG(CDocObjectServer) + // NOTE - the ClassWizard will add and remove member functions here. + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +// Interface Maps +public: + BEGIN_INTERFACE_PART(OleObject, IOleObject) + INIT_INTERFACE_PART(CDocObjServerDoc, DocOleObject) + STDMETHOD(SetClientSite)(LPOLECLIENTSITE); + STDMETHOD(GetClientSite)(LPOLECLIENTSITE*); + STDMETHOD(SetHostNames)(LPCOLESTR, LPCOLESTR); + STDMETHOD(Close)(DWORD); + STDMETHOD(SetMoniker)(DWORD, LPMONIKER); + STDMETHOD(GetMoniker)(DWORD, DWORD, LPMONIKER*); + STDMETHOD(InitFromData)(LPDATAOBJECT, BOOL, DWORD); + STDMETHOD(GetClipboardData)(DWORD, LPDATAOBJECT*); + STDMETHOD(DoVerb)(LONG, LPMSG, LPOLECLIENTSITE, LONG, HWND, LPCRECT); + STDMETHOD(EnumVerbs)(IEnumOLEVERB**); + STDMETHOD(Update)(); + STDMETHOD(IsUpToDate)(); + STDMETHOD(GetUserClassID)(CLSID*); + STDMETHOD(GetUserType)(DWORD, LPOLESTR*); + STDMETHOD(SetExtent)(DWORD, LPSIZEL); + STDMETHOD(GetExtent)(DWORD, LPSIZEL); + STDMETHOD(Advise)(LPADVISESINK, LPDWORD); + STDMETHOD(Unadvise)(DWORD); + STDMETHOD(EnumAdvise)(LPENUMSTATDATA*); + STDMETHOD(GetMiscStatus)(DWORD, LPDWORD); + STDMETHOD(SetColorScheme)(LPLOGPALETTE); + END_INTERFACE_PART(OleObject) + + BEGIN_INTERFACE_PART(OleDocument, IOleDocument) + INIT_INTERFACE_PART(CDocObjectServer, OleDocument) + STDMETHOD(CreateView)(LPOLEINPLACESITE, LPSTREAM, DWORD, LPOLEDOCUMENTVIEW*); + STDMETHOD(GetDocMiscStatus)(LPDWORD); + STDMETHOD(EnumViews)(LPENUMOLEDOCUMENTVIEWS*, LPOLEDOCUMENTVIEW*); + END_INTERFACE_PART(OleDocument) + + BEGIN_INTERFACE_PART(OleDocumentView, IOleDocumentView) + INIT_INTERFACE_PART(CDocObjectServer, OleDocumentView) + STDMETHOD(SetInPlaceSite)(LPOLEINPLACESITE); + STDMETHOD(GetInPlaceSite)(LPOLEINPLACESITE*); + STDMETHOD(GetDocument)(LPUNKNOWN*); + STDMETHOD(SetRect)(LPRECT); + STDMETHOD(GetRect)(LPRECT); + STDMETHOD(SetRectComplex)(LPRECT, LPRECT, LPRECT, LPRECT); + STDMETHOD(Show)(BOOL); + STDMETHOD(UIActivate)(BOOL); + STDMETHOD(Open)(); + STDMETHOD(CloseView)(DWORD); + STDMETHOD(SaveViewState)(LPSTREAM); + STDMETHOD(ApplyViewState)(LPSTREAM); + STDMETHOD(Clone)(LPOLEINPLACESITE, LPOLEDOCUMENTVIEW*); + END_INTERFACE_PART(OleDocumentView) + + BEGIN_INTERFACE_PART(OleCommandTarget, IOleCommandTarget) + INIT_INTERFACE_PART(CDocObjectServer, OleCommandTarget) + STDMETHOD(QueryStatus)(const GUID*, ULONG, OLECMD[], OLECMDTEXT*); + STDMETHOD(Exec)(const GUID*, DWORD, DWORD, VARIANTARG*, VARIANTARG*); + END_INTERFACE_PART(OleCommandTarget) + + BEGIN_INTERFACE_PART(Print, IPrint) + INIT_INTERFACE_PART(COleServerDoc, Print) + STDMETHOD(SetInitialPageNum)(LONG); + STDMETHOD(GetPageInfo)(LPLONG, LPLONG); + STDMETHOD(Print)(DWORD, DVTARGETDEVICE**, PAGESET**, LPSTGMEDIUM, + LPCONTINUECALLBACK, LONG, LPLONG, LPLONG); + END_INTERFACE_PART(Print) + + DECLARE_INTERFACE_MAP() +}; + + +///////////////////////////////////////////////////////////////////////////// +// COleDocIPFrameWnd class + +class COleDocIPFrameWnd : public COleIPFrameWnd +{ + DECLARE_DYNCREATE(COleDocIPFrameWnd) + +// Constructors +public: + COleDocIPFrameWnd(); + +// Attributes +public: + +// Operations +public: + +// Overridables +protected: + +// Implementation +public: + virtual ~COleDocIPFrameWnd(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + // Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(COleDocIPFrameWnd) + //}}AFX_VIRTUAL +protected: + virtual void OnRequestPositionChange(LPCRECT lpRect); + virtual void RecalcLayout(BOOL bNotify = TRUE); + + // Menu Merging support + HMENU m_hMenuHelpPopup; + virtual BOOL BuildSharedMenu(); + virtual void DestroySharedMenu(); + + // Generated message map functions + //{{AFX_MSG(COleDocIPFrameWnd) + // NOTE - the ClassWizard will add and remove member functions here. + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + + +class CDocObjectServerItem : public COleServerItem +{ + DECLARE_DYNAMIC(CDocObjectServerItem) + +// Constructors +protected: + CDocObjectServerItem(COleServerDoc* pServerDoc, BOOL bAutoDelete); + +// Attributes +public: + COleServerDoc* GetDocument() const + { return (COleServerDoc*) COleServerItem::GetDocument(); } + +// Overridables +public: + +// Implementation +public: + virtual ~CDocObjectServerItem(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + // Overrides +protected: + virtual void OnDoVerb(LONG iVerb); + virtual void OnHide(); + virtual void OnOpen(); + virtual void OnShow(); + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CDocObjectServerItem) + //}}AFX_VIRTUAL + +}; + +///////////////////////////////////////////////////////////////////////////// + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif //__AFXDOCOB_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxext.h b/public/sdk/inc/mfc42/afxext.h new file mode 100644 index 000000000..11f7472ce --- /dev/null +++ b/public/sdk/inc/mfc42/afxext.h @@ -0,0 +1,1048 @@ +// 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. + +#ifndef __AFXEXT_H__ +#define __AFXEXT_H__ + +#ifndef __AFXWIN_H__ + #include <afxwin.h> +#endif +#ifndef __AFXDLGS_H__ + #include <afxdlgs.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// AFXEXT - MFC Advanced Extensions and Advanced Customizable classes + +// Classes declared in this file + +//CObject + //CCmdTarget; + //CWnd + //CButton + class CBitmapButton; // Bitmap button (self-draw) + + class CControlBar; // control bar + class CStatusBar; // status bar + class CToolBar; // toolbar + class CDialogBar; // dialog as control bar + + class CSplitterWnd; // splitter manager + + //CView + //CScrollView + class CFormView; // view with a dialog template + class CEditView; // simple text editor view + + //CDC + class CMetaFileDC; // a metafile with proxy + +class CRectTracker; // tracker for rectangle objects + +// information structures +struct CPrintInfo; // Printing context +struct CPrintPreviewState; // Print Preview context/state +struct CCreateContext; // Creation context + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +///////////////////////////////////////////////////////////////////////////// +// Simple bitmap button + +// CBitmapButton - push-button with 1->4 bitmap images +class CBitmapButton : public CButton +{ + DECLARE_DYNAMIC(CBitmapButton) +public: +// Construction + CBitmapButton(); + + BOOL LoadBitmaps(LPCTSTR lpszBitmapResource, + LPCTSTR lpszBitmapResourceSel = NULL, + LPCTSTR lpszBitmapResourceFocus = NULL, + LPCTSTR lpszBitmapResourceDisabled = NULL); + BOOL LoadBitmaps(UINT nIDBitmapResource, + UINT nIDBitmapResourceSel = 0, + UINT nIDBitmapResourceFocus = 0, + UINT nIDBitmapResourceDisabled = 0); + BOOL AutoLoad(UINT nID, CWnd* pParent); + +// Operations + void SizeToContent(); + +// Implementation: +public: +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif +protected: + // all bitmaps must be the same size + CBitmap m_bitmap; // normal image (REQUIRED) + CBitmap m_bitmapSel; // selected image (OPTIONAL) + CBitmap m_bitmapFocus; // focused but not selected (OPTIONAL) + CBitmap m_bitmapDisabled; // disabled bitmap (OPTIONAL) + + virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS); +}; + +///////////////////////////////////////////////////////////////////////////// +// Control Bars + +// forward declarations (private to implementation) +class CDockBar; +class CDockContext; +class CControlBarInfo; +struct AFX_SIZEPARENTPARAMS; + +// Layout Modes for CalcDynamicLayout +#define LM_STRETCH 0x01 // same meaning as bStretch in CalcFixedLayout. If set, ignores nLength + // and returns dimensions based on LM_HORZ state, otherwise LM_HORZ is used + // to determine if nLength is the desired horizontal or vertical length + // and dimensions are returned based on nLength +#define LM_HORZ 0x02 // same as bHorz in CalcFixedLayout +#define LM_MRUWIDTH 0x04 // Most Recently Used Dynamic Width +#define LM_HORZDOCK 0x08 // Horizontal Docked Dimensions +#define LM_VERTDOCK 0x10 // Vertical Docked Dimensions +#define LM_LENGTHY 0x20 // Set if nLength is a Height instead of a Width +#define LM_COMMIT 0x40 // Remember MRUWidth + +class CControlBar : public CWnd +{ + DECLARE_DYNAMIC(CControlBar) +// Construction +protected: + CControlBar(); + +// Attributes +public: + int GetCount() const; + + // for styles specific to CControlBar + DWORD GetBarStyle(); + void SetBarStyle(DWORD dwStyle); + + BOOL m_bAutoDelete; + + CFrameWnd* GetDockingFrame() const; + BOOL IsFloating() const; + virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz); + virtual CSize CalcDynamicLayout(int nLength, DWORD nMode); + +// Operations + void EnableDocking(DWORD dwDockStyle); + +// Overridables + virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler) = 0; + +// Implementation +public: + virtual ~CControlBar(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual void DelayShow(BOOL bShow); + virtual BOOL IsVisible() const; + virtual DWORD RecalcDelayShow(AFX_SIZEPARENTPARAMS* lpLayout); + + virtual BOOL IsDockBar() const; + virtual BOOL DestroyWindow(); + virtual void OnBarStyleChange(DWORD dwOldStyle, DWORD dwNewStyle); + + // info about bar (for status bar and toolbar) + int m_cxLeftBorder, m_cxRightBorder; + int m_cyTopBorder, m_cyBottomBorder; + int m_cxDefaultGap; // default gap value + UINT m_nMRUWidth; // For dynamic resizing. +#ifdef _MAC + BOOL m_bMonochrome; // whether to draw in monochrome or color +#endif + + // array of elements + int m_nCount; + void* m_pData; // m_nCount elements - type depends on derived class + + // support for delayed hide/show + enum StateFlags + { delayHide = 1, delayShow = 2, tempHide = 4, statusSet = 8 }; + UINT m_nStateFlags; + + // support for docking + DWORD m_dwStyle; // creation style (used for layout) + DWORD m_dwDockStyle;// indicates how bar can be docked + CFrameWnd* m_pDockSite; // current dock site, if dockable + CDockBar* m_pDockBar; // current dock bar, if dockable + CDockContext* m_pDockContext; // used during dragging + + virtual BOOL PreTranslateMessage(MSG* pMsg); + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + virtual void PostNcDestroy(); + + virtual void DoPaint(CDC* pDC); + void DrawBorders(CDC* pDC, CRect& rect); + + // implementation helpers + virtual LRESULT WindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam); + void CalcInsideRect(CRect& rect, BOOL bHorz) const; // adjusts borders etc + BOOL AllocElements(int nElements, int cbElement); + virtual BOOL SetStatusText(int nHit); + void ResetTimer(UINT nEvent, UINT nTime); + void EraseNonClient(); + +#ifdef _MAC + void OnReposition(); + virtual BOOL CheckMonochrome(); +#endif + void GetBarInfo(CControlBarInfo* pInfo); + void SetBarInfo(CControlBarInfo* pInfo, CFrameWnd* pFrameWnd); + + //{{AFX_MSG(CControlBar) + afx_msg void OnTimer(UINT nIDEvent); + afx_msg int OnCreate(LPCREATESTRUCT lpcs); + afx_msg void OnDestroy(); + afx_msg void OnPaint(); + afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); + afx_msg void OnWindowPosChanging(LPWINDOWPOS lpWndPos); + afx_msg LRESULT OnSizeParent(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnHelpHitTest(WPARAM wParam, LPARAM lParam); + afx_msg void OnInitialUpdate(); + afx_msg LRESULT OnIdleUpdateCmdUI(WPARAM wParam, LPARAM lParam); + afx_msg void OnLButtonDown(UINT nFlags, CPoint pt ); + afx_msg void OnLButtonDblClk(UINT nFlags, CPoint pt); + afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT nMsg); + //}}AFX_MSG +#ifdef _MAC + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg LRESULT OnMacintosh(WPARAM wParam, LPARAM lParam); + afx_msg void OnSysColorChange(); + afx_msg void OnMove(int x, int y); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); +#endif + DECLARE_MESSAGE_MAP() + + friend class CFrameWnd; + friend class CDockBar; +}; + +///////////////////////////////////////////////////////////////////////////// +// CStatusBar control + +class CStatusBarCtrl; // forward reference (see afxcmn.h for definition) +struct AFX_STATUSPANE; // private to implementation + +class CStatusBar : public CControlBar +{ + DECLARE_DYNAMIC(CStatusBar) + +// Construction +public: + CStatusBar(); + BOOL Create(CWnd* pParentWnd, + DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM, + UINT nID = AFX_IDW_STATUS_BAR); + BOOL SetIndicators(const UINT* lpIDArray, int nIDCount); + +// Attributes +public: + // standard control bar things + int CommandToIndex(UINT nIDFind) const; + UINT GetItemID(int nIndex) const; + void GetItemRect(int nIndex, LPRECT lpRect) const; + + // specific to CStatusBar + void GetPaneText(int nIndex, CString& rString) const; + CString GetPaneText(int nIndex) const; + BOOL SetPaneText(int nIndex, LPCTSTR lpszNewText, BOOL bUpdate = TRUE); + void GetPaneInfo(int nIndex, UINT& nID, UINT& nStyle, int& cxWidth) const; + void SetPaneInfo(int nIndex, UINT nID, UINT nStyle, int cxWidth); + UINT GetPaneStyle(int nIndex) const; + void SetPaneStyle(int nIndex, UINT nStyle); + + // for direct access to the underlying common control + CStatusBarCtrl& GetStatusBarCtrl() const; + +// Overridables + virtual void DrawItem(LPDRAWITEMSTRUCT); + +// Implementation +public: + virtual ~CStatusBar(); + virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz); + BOOL PreCreateWindow(CREATESTRUCT& cs); + BOOL AllocElements(int nElements, int cbElement); + void CalcInsideRect(CRect& rect, BOOL bHorz) const; + virtual void OnBarStyleChange(DWORD dwOldStyle, DWORD dwNewStyle); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; + void EnableDocking(DWORD dwDockStyle); +#endif + virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler); + +protected: + int m_nMinHeight; + + AFX_STATUSPANE* _GetPanePtr(int nIndex) const; + void UpdateAllPanes(BOOL bUpdateRects, BOOL bUpdateText); + virtual BOOL OnChildNotify(UINT message, WPARAM, LPARAM, LRESULT*); + + //{{AFX_MSG(CStatusBar) + afx_msg UINT OnNcHitTest(CPoint); + afx_msg void OnNcCalcSize(BOOL, NCCALCSIZE_PARAMS*); + afx_msg void OnNcPaint(); + afx_msg void OnPaint(); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnWindowPosChanging(LPWINDOWPOS); + afx_msg LRESULT OnSetText(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnGetText(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnGetTextLength(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnSetMinHeight(WPARAM wParam, LPARAM lParam); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +// Styles for status bar panes +#define SBPS_NORMAL 0x0000 +#define SBPS_NOBORDERS SBT_NOBORDERS +#define SBPS_POPOUT SBT_POPOUT +#define SBPS_OWNERDRAW SBT_OWNERDRAW +#define SBPS_DISABLED 0x04000000 +#define SBPS_STRETCH 0x08000000 // stretch to fill status bar + +///////////////////////////////////////////////////////////////////////////// +// CToolBar control + +HBITMAP AFXAPI AfxLoadSysColorBitmap(HINSTANCE hInst, HRSRC hRsrc, BOOL bMono = FALSE); + +class CToolBarCtrl; // forward reference (see afxcmn.h for definition) + +class CToolBar : public CControlBar +{ + DECLARE_DYNAMIC(CToolBar) + +// Construction +public: + CToolBar(); + BOOL Create(CWnd* pParentWnd, + DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP, + UINT nID = AFX_IDW_TOOLBAR); + + void SetSizes(SIZE sizeButton, SIZE sizeImage); + // button size should be bigger than image + void SetHeight(int cyHeight); + // call after SetSizes, height overrides bitmap size + BOOL LoadToolBar(LPCTSTR lpszResourceName); + BOOL LoadToolBar(UINT nIDResource); + BOOL LoadBitmap(LPCTSTR lpszResourceName); + BOOL LoadBitmap(UINT nIDResource); + BOOL SetBitmap(HBITMAP hbmImageWell); + BOOL SetButtons(const UINT* lpIDArray, int nIDCount); + // lpIDArray can be NULL to allocate empty buttons + +// Attributes +public: + // standard control bar things + int CommandToIndex(UINT nIDFind) const; + UINT GetItemID(int nIndex) const; + virtual void GetItemRect(int nIndex, LPRECT lpRect) const; + UINT GetButtonStyle(int nIndex) const; + void SetButtonStyle(int nIndex, UINT nStyle); + + // for changing button info + void GetButtonInfo(int nIndex, UINT& nID, UINT& nStyle, int& iImage) const; + void SetButtonInfo(int nIndex, UINT nID, UINT nStyle, int iImage); + BOOL SetButtonText(int nIndex, LPCTSTR lpszText); + CString GetButtonText(int nIndex) const; + void GetButtonText(int nIndex, CString& rString) const; + + // for direct access to the underlying common control + CToolBarCtrl& GetToolBarCtrl() const; + +// Implementation +public: + virtual ~CToolBar(); + virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz); + virtual CSize CalcDynamicLayout(int nLength, DWORD nMode); + virtual int OnToolHitTest(CPoint point, TOOLINFO* pTI) const; + virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler); + void SetOwner(CWnd* pOwnerWnd); + BOOL AddReplaceBitmap(HBITMAP hbmImageWell); + virtual void OnBarStyleChange(DWORD dwOldStyle, DWORD dwNewStyle); + +#ifdef _MAC + virtual BOOL CheckMonochrome(); +#endif + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + HRSRC m_hRsrcImageWell; // handle to loaded resource for image well + HINSTANCE m_hInstImageWell; // instance handle to load image well from + HBITMAP m_hbmImageWell; // contains color mapped button images + BOOL m_bDelayedButtonLayout; // used to manage when button layout should be done + + CSize m_sizeImage; // current image size + CSize m_sizeButton; // current button size + + CMapStringToPtr* m_pStringMap; // used as CMapStringToUInt + + // implementation helpers + void _GetButton(int nIndex, TBBUTTON* pButton) const; + void _SetButton(int nIndex, TBBUTTON* pButton); + CSize CalcLayout(DWORD nMode, int nLength = -1); + CSize CalcSize(TBBUTTON* pData, int nCount); + int WrapToolBar(TBBUTTON* pData, int nCount, int nWidth); + void SizeToolBar(TBBUTTON* pData, int nCount, int nLength, BOOL bVert = FALSE); + + //{{AFX_MSG(CToolBar) + afx_msg UINT OnNcHitTest(CPoint); + afx_msg void OnNcPaint(); + afx_msg void OnPaint(); + afx_msg void OnNcCalcSize(BOOL, NCCALCSIZE_PARAMS*); + afx_msg void OnWindowPosChanging(LPWINDOWPOS); + afx_msg void OnSysColorChange(); + afx_msg LRESULT OnSetButtonSize(WPARAM, LPARAM); + afx_msg LRESULT OnSetBitmapSize(WPARAM, LPARAM); + afx_msg BOOL OnNcCreate(LPCREATESTRUCT); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +// Styles for toolbar buttons +#define TBBS_BUTTON MAKELONG(TBSTYLE_BUTTON, 0) // this entry is button +#define TBBS_SEPARATOR MAKELONG(TBSTYLE_SEP, 0) // this entry is a separator +#define TBBS_CHECKBOX MAKELONG(TBSTYLE_CHECK, 0) // this is an auto check button +#define TBBS_GROUP MAKELONG(TBSTYLE_GROUP, 0) // marks the start of a group +#define TBBS_CHECKGROUP (TBBS_GROUP|TBBS_CHECKBOX) // normal use of TBBS_GROUP + +// styles for display states +#define TBBS_CHECKED MAKELONG(0, TBSTATE_CHECKED) // button is checked/down +#define TBBS_PRESSED MAKELONG(0, TBSTATE_PRESSED) // button is being depressed +#define TBBS_DISABLED MAKELONG(0, TBSTATE_ENABLED) // button is disabled +#define TBBS_INDETERMINATE MAKELONG(0, TBSTATE_INDETERMINATE) // third state +#define TBBS_HIDDEN MAKELONG(0, TBSTATE_HIDDEN) // button is hidden +#define TBBS_WRAPPED MAKELONG(0, TBSTATE_WRAP) // button is wrapped at this point + +//////////////////////////////////////////// +// CDialogBar control +// This is a control bar built from a dialog template. It is a modeless +// dialog that delegates all control notifications to the parent window +// of the control bar [the grandparent of the control] + +class CDialogBar : public CControlBar +{ + DECLARE_DYNAMIC(CDialogBar) + +// Construction +public: + CDialogBar(); + BOOL Create(CWnd* pParentWnd, LPCTSTR lpszTemplateName, + UINT nStyle, UINT nID); + BOOL Create(CWnd* pParentWnd, UINT nIDTemplate, + UINT nStyle, UINT nID); + +// Implementation +public: + virtual ~CDialogBar(); + virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz); + CSize m_sizeDefault; + virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler); + +protected: +#ifndef _AFX_NO_OCC_SUPPORT + // data and functions necessary for OLE control containment + _AFX_OCC_DIALOG_INFO* m_pOccDialogInfo; + LPCTSTR m_lpszTemplateName; + virtual BOOL SetOccDialogInfo(_AFX_OCC_DIALOG_INFO* pOccDialogInfo); + afx_msg LRESULT HandleInitDialog(WPARAM, LPARAM); + DECLARE_MESSAGE_MAP() +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// Splitter Window + +#define SPLS_DYNAMIC_SPLIT 0x0001 +#define SPLS_INVERT_TRACKER 0x0002 // obsolete (now ignored) + +class CSplitterWnd : public CWnd +{ + DECLARE_DYNAMIC(CSplitterWnd) + +// Construction +public: + CSplitterWnd(); + // Create a single view type splitter with multiple splits + BOOL Create(CWnd* pParentWnd, + int nMaxRows, int nMaxCols, SIZE sizeMin, + CCreateContext* pContext, + DWORD dwStyle = WS_CHILD | WS_VISIBLE | + WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT, + UINT nID = AFX_IDW_PANE_FIRST); + + // Create a multiple view type splitter with static layout + BOOL CreateStatic(CWnd* pParentWnd, + int nRows, int nCols, + DWORD dwStyle = WS_CHILD | WS_VISIBLE, + UINT nID = AFX_IDW_PANE_FIRST); + + virtual BOOL CreateView(int row, int col, CRuntimeClass* pViewClass, + SIZE sizeInit, CCreateContext* pContext); + +// Attributes +public: + int GetRowCount() const; + int GetColumnCount() const; + + // information about a specific row or column + void GetRowInfo(int row, int& cyCur, int& cyMin) const; + void SetRowInfo(int row, int cyIdeal, int cyMin); + void GetColumnInfo(int col, int& cxCur, int& cxMin) const; + void SetColumnInfo(int col, int cxIdeal, int cxMin); + + // for setting and getting shared scroll bar style + DWORD GetScrollStyle() const; + void SetScrollStyle(DWORD dwStyle); + + // views inside the splitter + CWnd* GetPane(int row, int col) const; + BOOL IsChildPane(CWnd* pWnd, int* pRow, int* pCol); + BOOL IsChildPane(CWnd* pWnd, int& row, int& col); // obsolete + int IdFromRowCol(int row, int col) const; + + BOOL IsTracking(); // TRUE during split operation + +// Operations +public: + virtual void RecalcLayout(); // call after changing sizes + +// Overridables +protected: + // to customize the drawing + enum ESplitType { splitBox, splitBar, splitIntersection, splitBorder }; + virtual void OnDrawSplitter(CDC* pDC, ESplitType nType, const CRect& rect); + virtual void OnInvertTracker(const CRect& rect); + +public: + // for customizing scrollbar regions + virtual BOOL CreateScrollBarCtrl(DWORD dwStyle, UINT nID); + + // for customizing DYNAMIC_SPLIT behavior + virtual void DeleteView(int row, int col); + virtual BOOL SplitRow(int cyBefore); + virtual BOOL SplitColumn(int cxBefore); + virtual void DeleteRow(int rowDelete); + virtual void DeleteColumn(int colDelete); + + // determining active pane from focus or active view in frame + virtual CWnd* GetActivePane(int* pRow = NULL, int* pCol = NULL); + virtual void SetActivePane(int row, int col, CWnd* pWnd = NULL); +protected: + CWnd* GetActivePane(int& row, int& col); // obsolete + +public: + // high level command operations - called by default view implementation + virtual BOOL CanActivateNext(BOOL bPrev = FALSE); + virtual void ActivateNext(BOOL bPrev = FALSE); + virtual BOOL DoKeyboardSplit(); + + // synchronized scrolling + virtual BOOL DoScroll(CView* pViewFrom, UINT nScrollCode, + BOOL bDoScroll = TRUE); + virtual BOOL DoScrollBy(CView* pViewFrom, CSize sizeScroll, + BOOL bDoScroll = TRUE); + +// Implementation +public: + virtual ~CSplitterWnd(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + // implementation structure + struct CRowColInfo + { + int nMinSize; // below that try not to show + int nIdealSize; // user set size + // variable depending on the available size layout + int nCurSize; // 0 => invisible, -1 => nonexistant + }; + +protected: + // customizable implementation attributes (set by constructor or Create) + CRuntimeClass* m_pDynamicViewClass; + int m_nMaxRows, m_nMaxCols; + + // implementation attributes which control layout of the splitter + int m_cxSplitter, m_cySplitter; // size of splitter bar + int m_cxBorderShare, m_cyBorderShare; // space on either side of splitter + int m_cxSplitterGap, m_cySplitterGap; // amount of space between panes + int m_cxBorder, m_cyBorder; // borders in client area + + // current state information + int m_nRows, m_nCols; + BOOL m_bHasHScroll, m_bHasVScroll; + CRowColInfo* m_pColInfo; + CRowColInfo* m_pRowInfo; + + // Tracking info - only valid when 'm_bTracking' is set + BOOL m_bTracking, m_bTracking2; + CPoint m_ptTrackOffset; + CRect m_rectLimit; + CRect m_rectTracker, m_rectTracker2; + int m_htTrack; + + // implementation routines + BOOL CreateCommon(CWnd* pParentWnd, SIZE sizeMin, DWORD dwStyle, UINT nID); + virtual int HitTest(CPoint pt) const; + virtual void GetInsideRect(CRect& rect) const; + virtual void GetHitRect(int ht, CRect& rect); + virtual void TrackRowSize(int y, int row); + virtual void TrackColumnSize(int x, int col); + virtual void DrawAllSplitBars(CDC* pDC, int cxInside, int cyInside); + virtual void SetSplitCursor(int ht); + CWnd* GetSizingParent(); + + // starting and stopping tracking + virtual void StartTracking(int ht); + virtual void StopTracking(BOOL bAccept); + + // special command routing to frame + virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); + virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult); + + //{{AFX_MSG(CSplitterWnd) + afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); + afx_msg void OnMouseMove(UINT nFlags, CPoint pt); + afx_msg void OnPaint(); + afx_msg void OnLButtonDown(UINT nFlags, CPoint pt); + afx_msg void OnLButtonDblClk(UINT nFlags, CPoint pt); + afx_msg void OnLButtonUp(UINT nFlags, CPoint pt); + afx_msg void OnCancelMode(); + afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); + afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); + afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpcs); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnDisplayChange(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// CFormView - generic view constructed from a dialog template + +class CFormView : public CScrollView +{ + DECLARE_DYNAMIC(CFormView) + +// Construction +protected: // must derive your own class + CFormView(LPCTSTR lpszTemplateName); + CFormView(UINT nIDTemplate); + +// Implementation +public: +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual void OnInitialUpdate(); + +protected: + LPCTSTR m_lpszTemplateName; + CCreateContext* m_pCreateContext; + HWND m_hWndFocus; // last window to have focus + + virtual void OnDraw(CDC* pDC); // default does nothing + // special case override of child window creation + virtual BOOL Create(LPCTSTR, LPCTSTR, DWORD, + const RECT&, CWnd*, UINT, CCreateContext*); + virtual BOOL PreTranslateMessage(MSG* pMsg); + virtual void OnActivateView(BOOL, CView*, CView*); + virtual void OnActivateFrame(UINT, CFrameWnd*); + BOOL SaveFocusControl(); // updates m_hWndFocus + +#ifndef _AFX_NO_OCC_SUPPORT + // data and functions necessary for OLE control containment + _AFX_OCC_DIALOG_INFO* m_pOccDialogInfo; + virtual BOOL SetOccDialogInfo(_AFX_OCC_DIALOG_INFO* pOccDialogInfo); + afx_msg LRESULT HandleInitDialog(WPARAM, LPARAM); +#endif + + //{{AFX_MSG(CFormView) + afx_msg int OnCreate(LPCREATESTRUCT lpcs); + afx_msg void OnSetFocus(CWnd* pOldWnd); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// CEditView - simple text editor view + +class CEditView : public CCtrlView +{ + DECLARE_DYNCREATE(CEditView) + +// Construction +public: + CEditView(); + +// Attributes +public: + static AFX_DATA const DWORD dwStyleDefault; + // CEdit control access + CEdit& GetEditCtrl() const; + + // presentation attributes + CFont* GetPrinterFont() const; + void SetPrinterFont(CFont* pFont); +#ifndef _MAC + void SetTabStops(int nTabStops); +#endif + + // other attributes + void GetSelectedText(CString& strResult) const; + + // buffer access + LPCTSTR LockBuffer() const; + void UnlockBuffer() const; + UINT GetBufferLength() const; + +// Operations +public: + BOOL FindText(LPCTSTR lpszFind, BOOL bNext = TRUE, BOOL bCase = TRUE); + void SerializeRaw(CArchive& ar); + UINT PrintInsideRect(CDC* pDC, RECT& rectLayout, UINT nIndexStart, + UINT nIndexStop); + +// Overrideables +protected: + virtual void OnFindNext(LPCTSTR lpszFind, BOOL bNext, BOOL bCase); + virtual void OnReplaceSel(LPCTSTR lpszFind, BOOL bNext, BOOL bCase, + LPCTSTR lpszReplace); + virtual void OnReplaceAll(LPCTSTR lpszFind, LPCTSTR lpszReplace, + BOOL bCase); + virtual void OnTextNotFound(LPCTSTR lpszFind); + +// Implementation +public: + virtual ~CEditView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual void Serialize(CArchive& ar); + virtual void DeleteContents(); + void ReadFromArchive(CArchive& ar, UINT nLen); + void WriteToArchive(CArchive& ar); + virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo); + + static AFX_DATA const UINT nMaxSize; + // maximum number of characters supported + +protected: +#ifndef _MAC + int m_nTabStops; // tab stops in dialog units +#endif + LPTSTR m_pShadowBuffer; // special shadow buffer only used in Win32s + UINT m_nShadowSize; + + CUIntArray m_aPageStart; // array of starting pages + HFONT m_hPrinterFont; // if NULL, mirror display font + HFONT m_hMirrorFont; // font object used when mirroring + + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + // printing support + virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); + virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); + virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo); + virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo = NULL); + BOOL PaginateTo(CDC* pDC, CPrintInfo* pInfo); + + // find & replace support + void OnEditFindReplace(BOOL bFindOnly); + BOOL InitializeReplace(); + BOOL SameAsSelected(LPCTSTR lpszCompare, BOOL bCase); + + // special overrides for implementation + virtual void CalcWindowRect(LPRECT lpClientRect, + UINT nAdjustType = adjustBorder); + + //{{AFX_MSG(CEditView) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg LRESULT OnSetFont(WPARAM wParam, LPARAM lParam); + afx_msg void OnUpdateNeedSel(CCmdUI* pCmdUI); + afx_msg void OnUpdateNeedClip(CCmdUI* pCmdUI); + afx_msg void OnUpdateNeedText(CCmdUI* pCmdUI); + afx_msg void OnUpdateNeedFind(CCmdUI* pCmdUI); + afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI); + afx_msg BOOL OnEditChange(); + afx_msg void OnEditCut(); + afx_msg void OnEditCopy(); + afx_msg void OnEditPaste(); + afx_msg void OnEditClear(); + afx_msg void OnEditUndo(); + afx_msg void OnEditSelectAll(); + afx_msg void OnEditFind(); + afx_msg void OnEditReplace(); + afx_msg void OnEditRepeat(); + afx_msg LRESULT OnFindReplaceCmd(WPARAM wParam, LPARAM lParam); + afx_msg void OnDestroy(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// CMetaFileDC + +class CMetaFileDC : public CDC +{ + DECLARE_DYNAMIC(CMetaFileDC) + +// Constructors +public: + CMetaFileDC(); + BOOL Create(LPCTSTR lpszFilename = NULL); +#ifndef _MAC + BOOL CreateEnhanced(CDC* pDCRef, LPCTSTR lpszFileName, + LPCRECT lpBounds, LPCTSTR lpszDescription); +#endif + +// Operations + HMETAFILE Close(); +#ifndef _MAC + HENHMETAFILE CloseEnhanced(); +#endif + +// Implementation +public: + virtual void SetAttribDC(HDC hDC); // Set the Attribute DC + +protected: + virtual void SetOutputDC(HDC hDC); // Set the Output DC -- Not allowed + virtual void ReleaseOutputDC(); // Release the Output DC -- Not allowed + +public: + virtual ~CMetaFileDC(); + +// Clipping Functions (use the Attribute DC's clip region) + virtual int GetClipBox(LPRECT lpRect) const; + virtual BOOL PtVisible(int x, int y) const; + BOOL PtVisible(POINT point) const; + virtual BOOL RectVisible(LPCRECT lpRect) const; + +// Text Functions + virtual BOOL TextOut(int x, int y, LPCTSTR lpszString, int nCount); + BOOL TextOut(int x, int y, const CString& str); + virtual BOOL ExtTextOut(int x, int y, UINT nOptions, LPCRECT lpRect, + LPCTSTR lpszString, UINT nCount, LPINT lpDxWidths); + BOOL ExtTextOut(int x, int y, UINT nOptions, LPCRECT lpRect, + const CString& str, LPINT lpDxWidths); + virtual CSize TabbedTextOut(int x, int y, LPCTSTR lpszString, int nCount, + int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin); + CSize TabbedTextOut(int x, int y, const CString& str, + int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin); + virtual int DrawText(LPCTSTR lpszString, int nCount, LPRECT lpRect, + UINT nFormat); + int DrawText(const CString& str, LPRECT lpRect, UINT nFormat); + +// Printer Escape Functions + virtual int Escape(int nEscape, int nCount, LPCSTR lpszInData, LPVOID lpOutData); + +// Viewport Functions + virtual CPoint SetViewportOrg(int x, int y); + CPoint SetViewportOrg(POINT point); + virtual CPoint OffsetViewportOrg(int nWidth, int nHeight); + virtual CSize SetViewportExt(int x, int y); + CSize SetViewportExt(SIZE size); + virtual CSize ScaleViewportExt(int xNum, int xDenom, int yNum, int yDenom); + +protected: + void AdjustCP(int cx); +}; + +///////////////////////////////////////////////////////////////////////////// +// CRectTracker - simple rectangular tracking rectangle w/resize handles + +class CRectTracker +{ +public: +// Constructors + CRectTracker(); + CRectTracker(LPCRECT lpSrcRect, UINT nStyle); + +// Style Flags + enum StyleFlags + { + solidLine = 1, dottedLine = 2, hatchedBorder = 4, + resizeInside = 8, resizeOutside = 16, hatchInside = 32, + }; + +// Hit-Test codes + enum TrackerHit + { + hitNothing = -1, + hitTopLeft = 0, hitTopRight = 1, hitBottomRight = 2, hitBottomLeft = 3, + hitTop = 4, hitRight = 5, hitBottom = 6, hitLeft = 7, hitMiddle = 8 + }; + +// Attributes + UINT m_nStyle; // current state + CRect m_rect; // current position (always in pixels) + CSize m_sizeMin; // minimum X and Y size during track operation + int m_nHandleSize; // size of resize handles (default from WIN.INI) + +// Operations + void Draw(CDC* pDC) const; + void GetTrueRect(LPRECT lpTrueRect) const; + BOOL SetCursor(CWnd* pWnd, UINT nHitTest) const; + BOOL Track(CWnd* pWnd, CPoint point, BOOL bAllowInvert = FALSE, + CWnd* pWndClipTo = NULL); + BOOL TrackRubberBand(CWnd* pWnd, CPoint point, BOOL bAllowInvert = TRUE); + int HitTest(CPoint point) const; + int NormalizeHit(int nHandle) const; + +// Overridables + virtual void DrawTrackerRect(LPCRECT lpRect, CWnd* pWndClipTo, + CDC* pDC, CWnd* pWnd); + virtual void AdjustRect(int nHandle, LPRECT lpRect); + virtual void OnChangedRect(const CRect& rectOld); + virtual UINT GetHandleMask() const; + +// Implementation +public: + virtual ~CRectTracker(); + +protected: + BOOL m_bAllowInvert; // flag passed to Track or TrackRubberBand + CRect m_rectLast; + CSize m_sizeLast; + BOOL m_bErase; // TRUE if DrawTrackerRect is called for erasing + BOOL m_bFinalErase; // TRUE if DragTrackerRect called for final erase + + // implementation helpers + int HitTestHandles(CPoint point) const; + void GetHandleRect(int nHandle, CRect* pHandleRect) const; + void GetModifyPointers(int nHandle, int**ppx, int**ppy, int* px, int*py); + virtual int GetHandleSize(LPCRECT lpRect = NULL) const; + BOOL TrackHandle(int nHandle, CWnd* pWnd, CPoint point, CWnd* pWndClipTo); + void Construct(); +}; + +///////////////////////////////////////////////////////////////////////////// +// Informational data structures + +struct CPrintInfo // Printing information structure +{ + CPrintInfo(); + ~CPrintInfo(); + + CPrintDialog* m_pPD; // pointer to print dialog + + BOOL m_bDocObject; // TRUE if printing by IPrint interface + BOOL m_bPreview; // TRUE if in preview mode + BOOL m_bDirect; // TRUE if bypassing Print Dialog + BOOL m_bContinuePrinting;// set to FALSE to prematurely end printing + UINT m_nCurPage; // Current page + UINT m_nNumPreviewPages; // Desired number of preview pages + CString m_strPageDesc; // Format string for page number display + LPVOID m_lpUserData; // pointer to user created struct + CRect m_rectDraw; // rectangle defining current usable page area + + // these only valid if m_bDocObject + UINT m_nOffsetPage; // offset of first page in combined IPrint job + DWORD m_dwFlags; // flags passed to IPrint::Print + + void SetMinPage(UINT nMinPage); + void SetMaxPage(UINT nMaxPage); + UINT GetMinPage() const; + UINT GetMaxPage() const; + UINT GetFromPage() const; + UINT GetToPage() const; + UINT GetOffsetPage() const; +}; + +struct CPrintPreviewState // Print Preview context/state +{ + UINT nIDMainPane; // main pane ID to hide + HMENU hMenu; // saved hMenu + DWORD dwStates; // Control Bar Visible states (bit map) + CView* pViewActiveOld; // save old active view during preview + BOOL (CALLBACK* lpfnCloseProc)(CFrameWnd* pFrameWnd); + HACCEL hAccelTable; // saved accelerator table + +// Implementation + CPrintPreviewState(); +}; + +struct CCreateContext // Creation information structure + // All fields are optional and may be NULL +{ + // for creating new views + CRuntimeClass* m_pNewViewClass; // runtime class of view to create or NULL + CDocument* m_pCurrentDoc; + + // for creating MDI children (CMDIChildWnd::LoadFrame) + CDocTemplate* m_pNewDocTemplate; + + // for sharing view/frame state from the original view/frame + CView* m_pLastView; + CFrameWnd* m_pCurrentFrame; + +// Implementation + CCreateContext(); +}; + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXEXT_INLINE inline +#include <afxext.inl> +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif //__AFXEXT_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxext.inl b/public/sdk/inc/mfc42/afxext.inl new file mode 100644 index 000000000..559f1f37c --- /dev/null +++ b/public/sdk/inc/mfc42/afxext.inl @@ -0,0 +1,121 @@ +// 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. + +// Inlines for AFXEXT.H + +#ifdef _AFXEXT_INLINE + +// CCreateContext +_AFXEXT_INLINE CCreateContext::CCreateContext() + { memset(this, 0, sizeof(*this)); } + +// CMetaFileDC +_AFXEXT_INLINE BOOL CMetaFileDC::Create(LPCTSTR lpszFilename) + { return Attach(::CreateMetaFile(lpszFilename)); } +_AFXEXT_INLINE HMETAFILE CMetaFileDC::Close() + { return ::CloseMetaFile(Detach()); } +#ifndef _MAC +_AFXEXT_INLINE BOOL CMetaFileDC::CreateEnhanced(CDC* pDCRef, + LPCTSTR lpszFileName, LPCRECT lpBounds, LPCTSTR lpszDescription) + { return Attach(::CreateEnhMetaFile(pDCRef->GetSafeHdc(), + lpszFileName, lpBounds, lpszDescription)); } +_AFXEXT_INLINE HENHMETAFILE CMetaFileDC::CloseEnhanced() + { return ::CloseEnhMetaFile(Detach()); } +_AFXEXT_INLINE CPoint CMetaFileDC::SetViewportOrg(POINT point) + { ASSERT(m_hDC != NULL); return SetViewportOrg(point.x, point.y); } +_AFXEXT_INLINE CSize CMetaFileDC::SetViewportExt(SIZE size) + { ASSERT(m_hDC != NULL); return SetViewportExt(size.cx, size.cy); } +_AFXEXT_INLINE BOOL CMetaFileDC::TextOut(int x, int y, const CString& str) + { ASSERT(m_hDC != NULL); return TextOut(x, y, (LPCTSTR)str, str.GetLength()); } +_AFXEXT_INLINE BOOL CMetaFileDC::ExtTextOut(int x, int y, UINT nOptions, LPCRECT lpRect, + const CString& str, LPINT lpDxWidths) + { ASSERT(m_hDC != NULL); return ::ExtTextOut(m_hDC, x, y, nOptions, lpRect, + str, str.GetLength(), lpDxWidths); } +_AFXEXT_INLINE CSize CMetaFileDC::TabbedTextOut(int x, int y, const CString& str, + int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin) + { ASSERT(m_hDC != NULL); return ::TabbedTextOut(m_hDC, x, y, str, str.GetLength(), + nTabPositions, lpnTabStopPositions, nTabOrigin); } +_AFXEXT_INLINE int CMetaFileDC::DrawText(const CString& str, LPRECT lpRect, UINT nFormat) + { ASSERT(m_hDC != NULL); + return DrawText((LPCTSTR)str, str.GetLength(), lpRect, nFormat); } +_AFXEXT_INLINE BOOL CMetaFileDC::PtVisible(POINT point) const + { ASSERT(m_hDC != NULL); return PtVisible(point.x, point.y); } +#endif + +// CSplitterWnd +_AFXEXT_INLINE int CSplitterWnd::GetRowCount() const + { return m_nRows; } +_AFXEXT_INLINE int CSplitterWnd::GetColumnCount() const + { return m_nCols; } +// obsolete functions +_AFXEXT_INLINE BOOL CSplitterWnd::IsChildPane(CWnd* pWnd, int& row, int& col) + { return IsChildPane(pWnd, &row, &col); } +_AFXEXT_INLINE CWnd* CSplitterWnd::GetActivePane(int& row, int& col) + { return GetActivePane(&row, &col); } +_AFXEXT_INLINE BOOL CSplitterWnd::IsTracking() + { return m_bTracking; } + +// control bars +_AFXEXT_INLINE int CControlBar::GetCount() const + { return m_nCount; } +_AFXEXT_INLINE DWORD CControlBar::GetBarStyle() + { return m_dwStyle; } +_AFXEXT_INLINE BOOL CToolBar::LoadToolBar(UINT nIDResource) + { return LoadToolBar(MAKEINTRESOURCE(nIDResource)); } +_AFXEXT_INLINE BOOL CToolBar::LoadBitmap(UINT nIDResource) + { return LoadBitmap(MAKEINTRESOURCE(nIDResource)); } +_AFXEXT_INLINE CToolBarCtrl& CToolBar::GetToolBarCtrl() const + { return *(CToolBarCtrl*)this; } +_AFXEXT_INLINE BOOL CDialogBar::Create(CWnd* pParentWnd, UINT nIDTemplate, + UINT nStyle, UINT nID) + { return Create(pParentWnd, MAKEINTRESOURCE(nIDTemplate), nStyle, nID); } +_AFXEXT_INLINE CStatusBarCtrl& CStatusBar::GetStatusBarCtrl() const + { return *(CStatusBarCtrl*)this; } +#ifdef _DEBUG +// status bars do not support docking +_AFXEXT_INLINE void CStatusBar::EnableDocking(DWORD) + { ASSERT(FALSE); } +#endif + +// CRectTracker +_AFXEXT_INLINE CRectTracker::CRectTracker() + { Construct(); } + +// CBitmapButton +_AFXEXT_INLINE CBitmapButton::CBitmapButton() + { } +_AFXEXT_INLINE BOOL CBitmapButton::LoadBitmaps(UINT nIDBitmapResource, + UINT nIDBitmapResourceSel, UINT nIDBitmapResourceFocus, + UINT nIDBitmapResourceDisabled) + { return LoadBitmaps(MAKEINTRESOURCE(nIDBitmapResource), + MAKEINTRESOURCE(nIDBitmapResourceSel), + MAKEINTRESOURCE(nIDBitmapResourceFocus), + MAKEINTRESOURCE(nIDBitmapResourceDisabled)); } + +// CPrintInfo +_AFXEXT_INLINE void CPrintInfo::SetMinPage(UINT nMinPage) + { m_pPD->m_pd.nMinPage = (WORD)nMinPage; } +_AFXEXT_INLINE void CPrintInfo::SetMaxPage(UINT nMaxPage) + { m_pPD->m_pd.nMaxPage = (WORD)nMaxPage; } +_AFXEXT_INLINE UINT CPrintInfo::GetMinPage() const + { return m_pPD->m_pd.nMinPage; } +_AFXEXT_INLINE UINT CPrintInfo::GetMaxPage() const + { return m_pPD->m_pd.nMaxPage; } +_AFXEXT_INLINE UINT CPrintInfo::GetFromPage() const + { return m_pPD->m_pd.nFromPage; } +_AFXEXT_INLINE UINT CPrintInfo::GetToPage() const + { return m_pPD->m_pd.nToPage; } +// CEditView +_AFXEXT_INLINE CEdit& CEditView::GetEditCtrl() const + { return *(CEdit*)this; } + +#endif //_AFXEXT_INLINE + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxhelp.hm b/public/sdk/inc/mfc42/afxhelp.hm new file mode 100644 index 000000000..b511e5e30 --- /dev/null +++ b/public/sdk/inc/mfc42/afxhelp.hm @@ -0,0 +1,272 @@ +// 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. + +// Non-Client HitTest help IDs +HID_HT_NOWHERE 0x40000 +HID_HT_CAPTION 0x40002 +HID_HT_SIZE 0x40004 +HID_HT_HSCROLL 0x40006 +HID_HT_VSCROLL 0x40007 +HID_HT_MINBUTTON 0x40008 +HID_HT_MAXBUTTON 0x40009 +HID_HT_SIZE 0x4000A // alias: ID_HT_LEFT +HID_HT_SIZE 0x4000B // alias: ID_HT_RIGHT +HID_HT_SIZE 0x4000C // alias: ID_HT_TOP +HID_HT_SIZE 0x4000D // alias: ID_HT_TOPLEFT +HID_HT_SIZE 0x4000E // alias: ID_HT_TOPRIGHT +HID_HT_SIZE 0x4000F // alias: ID_HT_BOTTOM +HID_HT_SIZE 0x40010 // alias: ID_HT_BOTTOMLEFT +HID_HT_SIZE 0x40011 // alias: ID_HT_BOTTOMRIGHT +HID_HT_SIZE 0x40012 // alias: ID_HT_BORDER + +// WM_SYSCOMMAND help IDs +HID_SC_SIZE 0x1EF00 +HID_SC_MOVE 0x1EF01 +HID_SC_MINIMIZE 0x1EF02 +HID_SC_MAXIMIZE 0x1EF03 +HID_SC_NEXTWINDOW 0x1EF04 +HID_SC_PREVWINDOW 0x1EF05 +HID_SC_CLOSE 0x1EF06 +HID_SC_RESTORE 0x1EF12 +HID_SC_TASKLIST 0x1EF13 + +// File MRU and aliases +HID_FILE_MRU_FILE1 0x1E110 +HID_FILE_MRU_FILE1 0x1E111 // aliases: MRU_2 - MRU_16 +HID_FILE_MRU_FILE1 0x1E112 +HID_FILE_MRU_FILE1 0x1E113 +HID_FILE_MRU_FILE1 0x1E114 +HID_FILE_MRU_FILE1 0x1E115 +HID_FILE_MRU_FILE1 0x1E116 +HID_FILE_MRU_FILE1 0x1E117 +HID_FILE_MRU_FILE1 0x1E118 +HID_FILE_MRU_FILE1 0x1E119 +HID_FILE_MRU_FILE1 0x1E11A +HID_FILE_MRU_FILE1 0x1E11B +HID_FILE_MRU_FILE1 0x1E11C +HID_FILE_MRU_FILE1 0x1E11D +HID_FILE_MRU_FILE1 0x1E11E +HID_FILE_MRU_FILE1 0x1E11F + +// Window menu list +HID_WINDOW_ALL 0x1EF1F + +// OLE menu and aliases +HID_OLE_VERB_1 0x1E210 +HID_OLE_VERB_1 0x1E211 // aliases: VERB_2 -> VERB_16 +HID_OLE_VERB_1 0x1E212 +HID_OLE_VERB_1 0x1E213 +HID_OLE_VERB_1 0x1E214 +HID_OLE_VERB_1 0x1E215 +HID_OLE_VERB_1 0x1E216 +HID_OLE_VERB_1 0x1E217 +HID_OLE_VERB_1 0x1E218 +HID_OLE_VERB_1 0x1E219 +HID_OLE_VERB_1 0x1E21A +HID_OLE_VERB_1 0x1E21B +HID_OLE_VERB_1 0x1E21C +HID_OLE_VERB_1 0x1E21D +HID_OLE_VERB_1 0x1E21E +HID_OLE_VERB_1 0x1E21F + +// Commands (HID_*) +HID_FILE_NEW 0x1E100 +HID_FILE_OPEN 0x1E101 +HID_FILE_CLOSE 0x1E102 +HID_FILE_SAVE 0x1E103 +HID_FILE_SAVE_AS 0x1E104 +HID_FILE_PAGE_SETUP 0x1E105 +HID_FILE_PRINT_SETUP 0x1E106 +HID_FILE_PRINT 0x1E107 +HID_FILE_PRINT_DIRECT 0x1E108 +HID_FILE_PRINT_PREVIEW 0x1E109 +HID_FILE_UPDATE 0x1E10A +HID_FILE_SAVE_COPY_AS 0x1E10B +HID_FILE_SEND_MAIL 0x1E10C +HID_EDIT_CLEAR 0x1E120 +HID_EDIT_CLEAR_ALL 0x1E121 +HID_EDIT_COPY 0x1E122 +HID_EDIT_CUT 0x1E123 +HID_EDIT_FIND 0x1E124 +HID_EDIT_PASTE 0x1E125 +HID_EDIT_PASTE_LINK 0x1E126 +HID_EDIT_PASTE_SPECIAL 0x1E127 +HID_EDIT_REPEAT 0x1E128 +HID_EDIT_REPLACE 0x1E129 +HID_EDIT_SELECT_ALL 0x1E12A +HID_EDIT_UNDO 0x1E12B +HID_EDIT_REDO 0x1E12C +HID_WINDOW_NEW 0x1E130 +HID_WINDOW_ARRANGE 0x1E131 +HID_WINDOW_CASCADE 0x1E132 +HID_WINDOW_TILE_HORZ 0x1E133 +HID_WINDOW_TILE_VERT 0x1E134 +HID_WINDOW_SPLIT 0x1E135 +HID_APP_ABOUT 0x1E140 +HID_APP_EXIT 0x1E141 +HID_HELP_INDEX 0x1E142 +HID_HELP_FINDER 0x1E143 +HID_HELP_USING 0x1E144 +HID_CONTEXT_HELP 0x1E145 +HID_NEXT_PANE 0x1E150 +HID_PREV_PANE 0x1E151 +HID_FORMAT_FONT 0x1E160 +HID_OLE_INSERT_NEW 0x1E200 +HID_OLE_EDIT_LINKS 0x1E201 +HID_OLE_EDIT_CONVERT 0x1E202 +HID_OLE_EDIT_CHANGE_ICON 0x1E203 +HID_OLE_EDIT_PROPERTIES 0x1E204 +HID_VIEW_TOOLBAR 0x1E800 +HID_VIEW_STATUS_BAR 0x1E801 +HID_RECORD_FIRST 0x1E900 +HID_RECORD_LAST 0x1E901 +HID_RECORD_NEXT 0x1E902 +HID_RECORD_PREV 0x1E903 +HID_WIZBACK 0x13023 +HID_WIZNEXT 0x13024 +HID_WIZFINISH 0x13025 + +// Dialogs (AFX_HIDD_*) +AFX_HIDD_FILEOPEN 0x27004 +AFX_HIDD_FILESAVE 0x27005 +AFX_HIDD_FONT 0x27006 +AFX_HIDD_COLOR 0x27007 +AFX_HIDD_PRINT 0x27008 +AFX_HIDD_PRINTSETUP 0x27009 +AFX_HIDD_FIND 0x2700A +AFX_HIDD_REPLACE 0x2700B +AFX_HIDD_NEWTYPEDLG 0x27801 +AFX_HIDD_PRINTDLG 0x27802 +AFX_HIDD_PREVIEW_TOOLBAR 0x27803 +AFX_HIDD_PREVIEW_SHORTTOOLBAR 0x2780B +AFX_HIDD_INSERTOBJECT 0x27804 +AFX_HIDD_CHANGEICON 0x27805 +AFX_HIDD_CONVERT 0x27806 +AFX_HIDD_PASTESPECIAL 0x27807 +AFX_HIDD_EDITLINKS 0x27808 +AFX_HIDD_FILEBROWSE 0x27809 +AFX_HIDD_BUSY 0x2780A +AFX_HIDD_OBJECTPROPERTIES 0x2780C +AFX_HIDD_CHANGESOURCE 0x2780D + +// Prompts/Errors (AFX_HIDP_*) +AFX_HIDP_NO_ERROR_AVAILABLE 0x3F020 +AFX_HIDP_INVALID_FILENAME 0x3F100 +AFX_HIDP_FAILED_TO_OPEN_DOC 0x3F101 +AFX_HIDP_FAILED_TO_SAVE_DOC 0x3F102 +AFX_HIDP_ASK_TO_SAVE 0x3F103 +AFX_HIDP_FAILED_TO_CREATE_DOC 0x3F104 +AFX_HIDP_FILE_TOO_LARGE 0x3F105 +AFX_HIDP_FAILED_TO_START_PRINT 0x3F106 +AFX_HIDP_FAILED_TO_LAUNCH_HELP 0x3F107 +AFX_HIDP_INTERNAL_FAILURE 0x3F108 +AFX_HIDP_COMMAND_FAILURE 0x3F109 +AFX_HIDP_FAILED_MEMORY_ALLOC 0x3F10A +AFX_HIDP_PARSE_INT 0x3F110 +AFX_HIDP_PARSE_REAL 0x3F111 +AFX_HIDP_PARSE_INT_RANGE 0x3F112 +AFX_HIDP_PARSE_REAL_RANGE 0x3F113 +AFX_HIDP_PARSE_STRING_SIZE 0x3F114 +AFX_HIDP_PARSE_RADIO_BUTTON 0x3F115 +AFX_HIDP_PARSE_BYTE 0x3F116 +AFX_HIDP_PARSE_UINT 0x3F117 +AFX_HIDP_PARSE_DATETIME 0x3F118 +AFX_HIDP_PARSE_CURRENCY 0x3F119 +AFX_HIDP_FAILED_INVALID_FORMAT 0x3F120 +AFX_HIDP_FAILED_INVALID_PATH 0x3F121 +AFX_HIDP_FAILED_DISK_FULL 0x3F122 +AFX_HIDP_FAILED_ACCESS_READ 0x3F123 +AFX_HIDP_FAILED_ACCESS_WRITE 0x3F124 +AFX_HIDP_FAILED_IO_ERROR_READ 0x3F125 +AFX_HIDP_FAILED_IO_ERROR_WRITE 0x3F126 +AFX_HIDP_STATIC_OBJECT 0x3F180 +AFX_HIDP_FAILED_TO_CONNECT 0x3F181 +AFX_HIDP_SERVER_BUSY 0x3F182 +AFX_HIDP_BAD_VERB 0x3F183 +AFX_HIDP_FAILED_TO_NOTIFY 0x3F185 +AFX_HIDP_FAILED_TO_LAUNCH 0x3F186 +AFX_HIDP_ASK_TO_UPDATE 0x3F187 +AFX_HIDP_FAILED_TO_UPDATE 0x3F188 +AFX_HIDP_FAILED_TO_REGISTER 0x3F189 +AFX_HIDP_FAILED_TO_AUTO_REGISTER 0x3F18A +AFX_HIDP_FAILED_TO_CONVERT 0x3F18B +AFX_HIDP_GET_NOT_SUPPORTED 0x3F18C +AFX_HIDP_SET_NOT_SUPPORTED 0x3F18D +AFX_HIDP_ASK_TO_DISCARD 0x3F18E +AFX_HIDP_FAILED_TO_CREATE 0x3F18F +AFX_HIDP_FAILED_MAPI_LOAD 0x3F190 +AFX_HIDP_INVALID_MAPI_DLL 0x3F191 +AFX_HIDP_FAILED_MAPI_SEND 0x3F192 +AFX_HIDP_FILE_NONE 0x3F1A0 +AFX_HIDP_FILE_GENERIC 0x3F1A1 +AFX_HIDP_FILE_NOT_FOUND 0x3F1A2 +AFX_HIDP_FILE_BAD_PATH 0x3F1A3 +AFX_HIDP_FILE_TOO_MANY_OPEN 0x3F1A4 +AFX_HIDP_FILE_ACCESS_DENIED 0x3F1A5 +AFX_HIDP_FILE_INVALID_FILE 0x3F1A6 +AFX_HIDP_FILE_REMOVE_CURRENT 0x3F1A7 +AFX_HIDP_FILE_DIR_FULL 0x3F1A8 +AFX_HIDP_FILE_BAD_SEEK 0x3F1A9 +AFX_HIDP_FILE_HARD_IO 0x3F1AA +AFX_HIDP_FILE_SHARING 0x3F1AB +AFX_HIDP_FILE_LOCKING 0x3F1AC +AFX_HIDP_FILE_DISKFULL 0x3F1AD +AFX_HIDP_FILE_EOF 0x3F1AE +AFX_HIDP_ARCH_NONE 0x3F1B0 +AFX_HIDP_ARCH_GENERIC 0x3F1B1 +AFX_HIDP_ARCH_READONLY 0x3F1B2 +AFX_HIDP_ARCH_ENDOFFILE 0x3F1B3 +AFX_HIDP_ARCH_WRITEONLY 0x3F1B4 +AFX_HIDP_ARCH_BADINDEX 0x3F1B5 +AFX_HIDP_ARCH_BADCLASS 0x3F1B6 +AFX_HIDP_ARCH_BADSCHEMA 0x3F1B7 +AFX_HIDP_SQL_CONNECT_FAIL 0x3F281 +AFX_HIDP_SQL_RECORDSET_FORWARD_ONLY 0x3F282 +AFX_HIDP_SQL_EMPTY_COLUMN_LIST 0x3F283 +AFX_HIDP_SQL_FIELD_SCHEMA_MISMATCH 0x3F284 +AFX_HIDP_SQL_ILLEGAL_MODE 0x3F285 +AFX_HIDP_SQL_MULTIPLE_ROWS_AFFECTED 0x3F286 +AFX_HIDP_SQL_NO_CURRENT_RECORD 0x3F287 +AFX_HIDP_SQL_NO_ROWS_AFFECTED 0x3F288 +AFX_HIDP_SQL_RECORDSET_READONLY 0x3F289 +AFX_HIDP_SQL_SQL_NO_TOTAL 0x3F28A +AFX_HIDP_SQL_ODBC_LOAD_FAILED 0x3F28B +AFX_HIDP_SQL_DYNASET_NOT_SUPPORTED 0x3F28C +AFX_HIDP_SQL_SNAPSHOT_NOT_SUPPORTED 0x3F28D +AFX_HIDP_SQL_API_CONFORMANCE 0x3F28E +AFX_HIDP_SQL_SQL_CONFORMANCE 0x3F28F +AFX_HIDP_SQL_NO_DATA_FOUND 0x3F290 +AFX_HIDP_SQL_ROW_UPDATE_NOT_SUPPORTED 0x3F291 +AFX_HIDP_SQL_ODBC_V2_REQUIRED 0x3F292 +AFX_HIDP_SQL_NO_POSITIONED_UPDATES 0x3F293 +AFX_HIDP_SQL_LOCK_MODE_NOT_SUPPORTED 0x3F294 +AFX_HIDP_SQL_DATA_TRUNCATED 0x3F295 +AFX_HIDP_SQL_ROW_FETCH 0x3F296 +AFX_HIDP_SQL_INCORRECT_ODBC 0x3F297 +AFX_HIDP_SQL_UPDATE_DELETE_FAILED 0x3F298 +AFX_HIDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED 0x3F299 +AFX_HIDP_DAO_ENGINE_INITIALIZATION 0x3F2A0 +AFX_HIDP_DAO_DFX_BIND 0x3F2A1 +AFX_HIDP_DAO_OBJECT_NOT_OPEN 0x3F2A2 +AFX_HIDP_DAO_ROWTOOSHORT 0x3F2A3 +AFX_HIDP_DAO_BADBINDINFO 0x3F2A4 +AFX_HIDP_DAO_COLUMNUNAVAILABLE 0x3F2A5 + +// Frame Controls (AFX_HIDW_*) +AFX_HIDW_TOOLBAR 0x5E800 +AFX_HIDW_STATUS_BAR 0x5E801 +AFX_HIDW_PREVIEW_BAR 0x5E802 +AFX_HIDW_RESIZE_BAR 0x5E803 +AFX_HIDW_DOCKBAR_TOP 0x5E81B +AFX_HIDW_DOCKBAR_LEFT 0x5E81C +AFX_HIDW_DOCKBAR_RIGHT 0x5E81D +AFX_HIDW_DOCKBAR_BOTTOM 0x5E81E +AFX_HIDW_DOCKBAR_FLOAT 0x5E81F + diff --git a/public/sdk/inc/mfc42/afxinet.h b/public/sdk/inc/mfc42/afxinet.h new file mode 100644 index 000000000..25b6e623c --- /dev/null +++ b/public/sdk/inc/mfc42/afxinet.h @@ -0,0 +1,671 @@ +// This is a part of the Microsoft Foundation Classes C++ library. +// Copyright (C) 1992-1996 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. + +#ifndef _MAC + +#ifndef __AFXINET_H_ +#define __AFXINET_H_ + +#ifndef __AFX_H__ + #include <afx.h> +#endif + +#ifndef _WININET_ +#include <wininet.h> +#endif + +#ifndef _AFXDLL +#pragma comment(lib, "WININET.LIB") +#endif + +///////////////////////////////////////////////////////////////////////////// +// classes that are declared in this file + +class CInternetSession; // from CObject + +class CGopherLocator; // from CObject + +class CInternetFile; // from CStdioFile (FILETXT.CPP) + class CHttpFile; + class CGopherFile; + +class CInternetConnection; + class CFtpConnection; + class CGopherConnection; + class CHttpConnection; + +class CFtpFileFind; // from CFileFind (FILEFIND.CPP) +class CGopherFileFind; + +class CInternetException; + + +///////////////////////////////////////////////////////////////////////////// +// Global Functions + +BOOL AFXAPI AfxParseURL(LPCTSTR pstrURL, DWORD& dwServiceType, + CString& strServer, CString& strObject, INTERNET_PORT& nPort); + +DWORD AFXAPI AfxGetInternetHandleType(HINTERNET hQuery); + +// see CInternetException at the bottom of this file + +void AFXAPI AfxThrowInternetException(DWORD dwContext, DWORD dwError = 0); + +// these are defined by WININET.H + +#define AFX_INET_SERVICE_FTP INTERNET_SERVICE_FTP +#define AFX_INET_SERVICE_HTTP INTERNET_SERVICE_HTTP +#define AFX_INET_SERVICE_GOPHER INTERNET_SERVICE_GOPHER + +// these are types that MFC parsing functions understand + +#define AFX_INET_SERVICE_UNK 0x1000 +#define AFX_INET_SERVICE_FILE (AFX_INET_SERVICE_UNK+1) +#define AFX_INET_SERVICE_MAILTO (AFX_INET_SERVICE_UNK+2) +#define AFX_INET_SERVICE_MID (AFX_INET_SERVICE_UNK+3) +#define AFX_INET_SERVICE_CID (AFX_INET_SERVICE_UNK+4) +#define AFX_INET_SERVICE_NEWS (AFX_INET_SERVICE_UNK+5) +#define AFX_INET_SERVICE_NNTP (AFX_INET_SERVICE_UNK+6) +#define AFX_INET_SERVICE_PROSPERO (AFX_INET_SERVICE_UNK+7) +#define AFX_INET_SERVICE_TELNET (AFX_INET_SERVICE_UNK+8) +#define AFX_INET_SERVICE_WAIS (AFX_INET_SERVICE_UNK+9) +#define AFX_INET_SERVICE_AFS (AFX_INET_SERVICE_UNK+10) + + +///////////////////////////////////////////////////////////////////////////// +// classes that are declared in this file + +class CInternetSession : public CObject +{ +public: + CInternetSession(LPCTSTR pstrAgent = NULL, + DWORD dwContext = 1, + DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS, + LPCTSTR pstrProxyName = NULL, + LPCTSTR pstrProxyBypass = NULL, + DWORD dwFlags = 0); + + BOOL QueryOption(DWORD dwOption, LPVOID lpBuffer, LPDWORD lpdwBufLen) const; + BOOL QueryOption(DWORD dwOption, DWORD& dwValue) const; + BOOL QueryOption(DWORD dwOption, CString& refString) const; + + BOOL SetOption(DWORD dwOption, LPVOID lpBuffer, DWORD dwBufferLength, + DWORD dwFlags = 0); + BOOL SetOption(DWORD dwOption, DWORD dwValue, DWORD dwFlags = 0); + + CStdioFile* OpenURL(LPCTSTR pstrURL, + DWORD dwContext = 1, DWORD dwFlags = 0, + LPCTSTR pstrHeaders = NULL, DWORD dwHeadersLength = 0); + + CFtpConnection* GetFtpConnection(LPCTSTR pstrServer, + LPCTSTR pstrUserName = NULL, LPCTSTR pstrPassword = NULL, + INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER, + BOOL bPassive = FALSE); + + CHttpConnection* GetHttpConnection(LPCTSTR pstrServer, + INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER, + LPCTSTR pstrUserName = NULL, LPCTSTR pstrPassword = NULL); + + CGopherConnection* GetGopherConnection(LPCTSTR pstrServer, + LPCTSTR pstrUserName = NULL, LPCTSTR pstrPassword = NULL, + INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER); + + BOOL EnableStatusCallback(BOOL bEnable = TRUE); + + DWORD ServiceTypeFromHandle(HINTERNET hQuery); + +// operations + + DWORD GetContext() const; + operator HINTERNET() const; + virtual void Close(); + +// overridables + virtual void OnStatusCallback(DWORD dwContext, DWORD dwInternetStatus, + LPVOID lpvStatusInformation, DWORD dwStatusInformationLength); + +// implementation + DECLARE_DYNAMIC(CInternetSession) + ~CInternetSession(); + +protected: + DWORD m_dwContext; + HINTERNET m_hSession; + INTERNET_STATUS_CALLBACK m_pOldCallback; + BOOL m_bCallbackEnabled; + +public: +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + + +//////////////////////////////////////////////////////////////////////////// +// Internet File Access Wrapper + +class CInternetFile : public CStdioFile +{ +// Constructors +protected: + CInternetFile(HINTERNET hFile, LPCTSTR pstrFileName, + CInternetConnection* pConnection, BOOL bReadMode); + CInternetFile(HINTERNET hFile, HINTERNET hSession, + LPCTSTR pstrFileName, LPCTSTR pstrServer, DWORD dwContext, + BOOL bReadMode); + +// Attributes +protected: + HINTERNET m_hFile; +public: + operator HINTERNET() const; + DWORD GetContext() const; + +// Operations + BOOL SetWriteBufferSize(UINT nWriteSize); + BOOL SetReadBufferSize(UINT nReadSize); + + BOOL QueryOption(DWORD dwOption, LPVOID lpBuffer, LPDWORD lpdwBufLen) const; + BOOL QueryOption(DWORD dwOption, DWORD& dwValue) const; + BOOL QueryOption(DWORD dwOption, CString& refString) const; + + BOOL SetOption(DWORD dwOption, LPVOID lpBuffer, DWORD dwBufferLength, + DWORD dwFlags = 0); + BOOL SetOption(DWORD dwOption, DWORD dwValue, DWORD dwFlags = 0); + +// Overridables + virtual LONG Seek(LONG lOffset, UINT nFrom); + + virtual UINT Read(void* lpBuf, UINT nCount); + virtual void Write(const void* lpBuf, UINT nCount); + + virtual void Abort(); + virtual void Flush(); + + virtual void Close(); + virtual DWORD GetLength() const; + + virtual BOOL ReadString(CString& rString); + virtual LPTSTR ReadString(LPTSTR pstr, UINT nMax); + virtual void WriteString(LPCTSTR pstr); + + // Not supported by CInternetFile + void LockRange(DWORD dwPos, DWORD dwCount); + void UnlockRange(DWORD dwPos, DWORD dwCount); + CFile* Duplicate() const; + virtual void SetLength(DWORD dwNewLen); + +// Implementation +public: + virtual ~CInternetFile(); + +protected: + BOOL m_bReadMode; + DWORD m_dwContext; + HINTERNET m_hConnection; + + CString m_strServerName; + + UINT m_nWriteBufferSize; + UINT m_nWriteBufferPos; + LPBYTE m_pbWriteBuffer; + + UINT m_nReadBufferSize; + UINT m_nReadBufferPos; + LPBYTE m_pbReadBuffer; + UINT m_nReadBufferBytes; + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + friend class CInternetSession; + friend class CFtpConnection; + friend class CHttpConnection; + friend class CGopherConnection; + DECLARE_DYNAMIC(CInternetFile) +}; + + +class CHttpFile : public CInternetFile +{ +// Constructors +protected: + CHttpFile(HINTERNET hFile, HINTERNET hSession, LPCTSTR pstrObject, + LPCTSTR pstrServer, LPCTSTR pstrVerb, DWORD dwContext); + CHttpFile(HINTERNET hFile, LPCTSTR pstrVerb, LPCTSTR pstrObject, + CHttpConnection* pConnection); + +// Operations +public: + BOOL AddRequestHeaders(LPCTSTR pstrHeaders, + DWORD dwFlags = HTTP_ADDREQ_FLAG_ADD_IF_NEW, int dwHeadersLen = -1); + BOOL AddRequestHeaders(CString& str, + DWORD dwFlags = HTTP_ADDREQ_FLAG_ADD_IF_NEW); + + BOOL SendRequest(LPCTSTR pstrHeaders = NULL, DWORD dwHeadersLen = 0, + LPVOID lpOptional = NULL, DWORD dwOptionalLen = 0); + BOOL SendRequest(CString& strHeaders, + LPVOID lpOptional = NULL, DWORD dwOptionalLen = 0); + BOOL QueryInfo(DWORD dwInfoLevel, LPVOID lpvBuffer, + LPDWORD lpdwBufferLength, LPDWORD lpdwIndex = NULL) const; + BOOL QueryInfo(DWORD dwInfoLevel, CString& str, + LPDWORD dwIndex = NULL) const; + BOOL QueryInfo(DWORD dwInfoLevel, SYSTEMTIME* pSysTime, + LPDWORD dwIndex = NULL) const; + BOOL QueryInfoStatusCode(DWORD& dwStatusCode) const; + + DWORD ErrorDlg(CWnd* pParent = NULL, DWORD dwError = ERROR_INTERNET_INCORRECT_PASSWORD, + DWORD dwFlags = FLAGS_ERROR_UI_FLAGS_GENERATE_DATA | FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS, + LPVOID* lppvData = NULL); + +// Attributes +public: + CString GetVerb() const; + CString GetObject() const; + virtual CString GetFileURL() const; + virtual void Close(); + +// Implementation +public: + virtual ~CHttpFile(); +protected: + CString m_strObject; + CString m_strVerb; + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + friend class CHttpConnection; + friend class CInternetSession; + DECLARE_DYNAMIC(CHttpFile) +}; + +// class CGopherFile is declared after CGopherLocator, below + + +//////////////////////////////////////////////////////////////////////////// +// Connection types + +class CInternetConnection : public CObject +{ +public: + CInternetConnection(CInternetSession* pSession, LPCTSTR pstrServer, + INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER, + DWORD dwContext = 1); + +// Operations + operator HINTERNET() const; + DWORD GetContext() const; + CInternetSession* GetSession() const; + + CString GetServerName() const; + + BOOL QueryOption(DWORD dwOption, LPVOID lpBuffer, LPDWORD lpdwBufLen) const; + BOOL QueryOption(DWORD dwOption, DWORD& dwValue) const; + BOOL QueryOption(DWORD dwOption, CString& refString) const; + + BOOL SetOption(DWORD dwOption, LPVOID lpBuffer, DWORD dwBufferLength, + DWORD dwFlags = 0); + BOOL SetOption(DWORD dwOption, DWORD dwValue, DWORD dwFlags = 0); + +// Implementation +protected: + HINTERNET m_hConnection; + DWORD m_dwContext; + CInternetSession* m_pSession; + virtual void Close(); + + CString m_strServerName; + INTERNET_PORT m_nPort; + +public: + ~CInternetConnection(); + DECLARE_DYNAMIC(CInternetConnection) + +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + void AssertValid() const; +#endif +}; + +class CFtpConnection : public CInternetConnection +{ +public: + CFtpConnection(CInternetSession* pSession, HINTERNET hConnected, + LPCTSTR pstrServer, DWORD dwContext); + CFtpConnection(CInternetSession* pSession, LPCTSTR pstrServer, + LPCTSTR pstrUserName = NULL, LPCTSTR pstrPassword = NULL, + DWORD dwContext = 0, + INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER, + BOOL bPassive = FALSE); + + BOOL SetCurrentDirectory(LPCTSTR pstrDirName); + + BOOL GetCurrentDirectory(CString& strDirName) const; + BOOL GetCurrentDirectory(LPTSTR pstrDirName, LPDWORD lpdwLen) const; + BOOL GetCurrentDirectoryAsURL(LPTSTR pstrName, LPDWORD lpdwLen) const; + BOOL GetCurrentDirectoryAsURL(CString& strDirName) const; + + BOOL RemoveDirectory(LPCTSTR pstrDirName); + BOOL CreateDirectory(LPCTSTR pstrDirName); + BOOL Rename(LPCTSTR pstrExisting, LPCTSTR pstrNew); + BOOL Remove(LPCTSTR pstrFileName); + + BOOL PutFile(LPCTSTR pstrLocalFile, LPCTSTR pstrRemoteFile, + DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY, DWORD dwContext = 1); + + BOOL GetFile(LPCTSTR pstrRemoteFile, LPCTSTR pstrLocalFile, + BOOL bFailIfExists = TRUE, + DWORD dwAttributes = FILE_ATTRIBUTE_NORMAL, + DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY, DWORD dwContext = 1); + + CInternetFile* OpenFile(LPCTSTR pstrFileName, + DWORD dwAccess = GENERIC_READ, + DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY, DWORD dwContext = 1); + + virtual void Close(); + +// implementation + ~CFtpConnection(); + +protected: + CString m_strServerName; + +public: +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + virtual void AssertValid() const; +#endif + + DECLARE_DYNAMIC(CFtpConnection) +}; + +class CHttpConnection : public CInternetConnection +{ +public: + enum { + _HTTP_VERB_MIN = 0, + HTTP_VERB_POST = 0, + HTTP_VERB_GET = 1, + HTTP_VERB_HEAD = 2, + HTTP_VERB_PUT = 3, + HTTP_VERB_LINK = 4, + HTTP_VERB_DELETE = 5, + HTTP_VERB_UNLINK = 6, + _HTTP_VERB_MAX = 6, + }; + +public: + CHttpConnection(CInternetSession* pSession, HINTERNET hConnected, + LPCTSTR pstrServer, DWORD dwContext); + CHttpConnection(CInternetSession* pSession, LPCTSTR pstrServer, + INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER, + LPCTSTR pstrUserName = NULL, LPCTSTR pstrPassword = NULL, + DWORD dwContext = 1); + + CHttpFile* OpenRequest(LPCTSTR pstrVerb, LPCTSTR pstrObjectName, + LPCTSTR pstrReferer = NULL,DWORD dwContext = 1, + LPCTSTR* ppstrAcceptTypes = NULL, LPCTSTR pstrVersion = NULL, + DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT); + + CHttpFile* OpenRequest(int nVerb, LPCTSTR pstrObjectName, + LPCTSTR pstrReferer = NULL, DWORD dwContext = 1, + LPCTSTR* ppstrAcceptTypes = NULL, LPCTSTR pstrVersion = NULL, + DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT); + +// implementation + ~CHttpConnection(); + virtual void Close(); + +protected: + CString m_strServerName; + static const LPCTSTR szHtmlVerbs[]; + +public: +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + virtual void AssertValid() const; +#endif + + friend class CInternetSession; // just to access szHtmlVerbs + DECLARE_DYNAMIC(CHttpConnection) +}; + +class CGopherConnection : public CInternetConnection +{ +public: + CGopherConnection(CInternetSession* pSession, + HINTERNET hConnected, LPCTSTR pstrServer, DWORD dwContext); + + CGopherConnection(CInternetSession* pSession, LPCTSTR pstrServer, + LPCTSTR pstrUserName = NULL, LPCTSTR pstrPassword = NULL, + DWORD dwContext = 0, + INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER); + + CGopherFile* OpenFile(CGopherLocator& refLocator, DWORD dwFlags = 0, + LPCTSTR pstrView = NULL, DWORD dwContext = 1); + + CGopherLocator CreateLocator(LPCTSTR pstrDisplayString, + LPCTSTR pstrSelectorString, DWORD dwGopherType); + + BOOL CGopherConnection::GetAttribute(CGopherLocator& refLocator, + CString strRequestedAttributes, CString& strResult); + + static CGopherLocator CreateLocator(LPCTSTR pstrLocator); + static CGopherLocator CreateLocator(LPCTSTR pstrServerName, + LPCTSTR pstrDisplayString, + LPCTSTR pstrSelectorString, DWORD dwGopherType, + INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER); + +// implementation + ~CGopherConnection(); + virtual void Close(); + +public: +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + virtual void AssertValid() const; +#endif + DECLARE_DYNAMIC(CGopherConnection) +}; + + +///////////////////////////////////////////////////////////////////////////// +// CFtpFileFind + +class CFtpFileFind : public CFileFind +{ +public: + CFtpFileFind(CFtpConnection* pConnection, DWORD dwContext = 1); + virtual ~CFtpFileFind(); + + virtual BOOL FindFile(LPCTSTR pstrName = NULL, + DWORD dwFlags = INTERNET_FLAG_RELOAD); + virtual BOOL FindNextFile(); + CString GetFileURL() const; + +// implementation +protected: + virtual void CloseContext(); + CFtpConnection* m_pConnection; + DWORD m_dwContext; + +public: +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + virtual void AssertValid() const; +#endif + + DECLARE_DYNAMIC(CFtpFileFind) +}; + + +///////////////////////////////////////////////////////////////////////////// +// CGopherLocator + +class CGopherLocator : public CObject +{ +public: + ~CGopherLocator(); + operator LPCTSTR() const; + CGopherLocator(const CGopherLocator& ref); + BOOL GetLocatorType(DWORD& dwRef) const; + +private: + // this only created by CGopherConnection::CreateLocator or by serialization + CGopherLocator(LPCTSTR pstrLocator, DWORD dwLocLen); + + CString m_Locator; // _not_ a zero-terminated string! + DWORD m_dwBufferLength; + + friend class CGopherConnection; + friend class CGopherFile; +}; + + +///////////////////////////////////////////////////////////////////////////// +// CGopherFile + +class CGopherFile : public CInternetFile +{ +// Constructors +protected: + CGopherFile(HINTERNET hFile, CGopherLocator& refLocator, + CGopherConnection* pConnection); + CGopherFile(HINTERNET hFile, HINTERNET hSession, + LPCTSTR pstrLocator, DWORD dwLocLen, DWORD dwContext); + +// Operations +public: + virtual void Close(); + virtual void Write(const void* lpBuf, UINT nCount); + void WriteString(LPCTSTR pstr); + +// Implementation +protected: + CGopherLocator m_Locator; +public: + virtual ~CGopherFile(); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + friend class CInternetSession; + friend class CGopherConnection; + DECLARE_DYNAMIC(CGopherFile) +}; + + +///////////////////////////////////////////////////////////////////////////// +// CGopherFileFind + +class CGopherFileFind : public CFileFind +{ +public: + CGopherFileFind(CGopherConnection* pConnection, DWORD dwContext = 1); + virtual ~CGopherFileFind(); + + virtual BOOL FindFile(CGopherLocator& refLocator, LPCTSTR pstrString, + DWORD dwFlags = INTERNET_FLAG_RELOAD); + virtual BOOL FindFile(LPCTSTR pstrString, + DWORD dwFlags = INTERNET_FLAG_RELOAD); + virtual BOOL FindNextFile(); + + virtual BOOL IsDots() const; + + virtual BOOL GetLastWriteTime(FILETIME* pTimeStamp) const; + virtual BOOL GetLastAccessTime(FILETIME* pTimeStamp) const; + virtual BOOL GetCreationTime(FILETIME* pTimeStamp) const; + virtual BOOL GetLastWriteTime(CTime& refTime) const; + virtual BOOL GetLastAccessTime(CTime& refTime) const; + virtual BOOL GetCreationTime(CTime& refTime) const; + + CGopherLocator GetLocator() const; + CString GetScreenName() const; + + virtual DWORD GetLength() const; +#if defined(_X86_) || defined(_ALPHA_) + virtual __int64 GetLength64() const; +#endif + +protected: + virtual void CloseContext(); + CGopherConnection* m_pConnection; + DWORD m_dwContext; + +// implementation +public: + // Unsupported APIs + CString GetFileName() const; + CString GetFilePath() const; + CString GetFileTitle() const; + CString GetFileURL() const; + CString GetRoot() const; + +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + virtual void AssertValid() const; +#endif + DECLARE_DYNAMIC(CGopherFileFind) +}; + + +/////////////////////////////////////////////////////////////////////// +// CInternetException + +class CInternetException : public CException +{ +public: +// Constructor + CInternetException(DWORD dwError); + +// Attributes + DWORD m_dwError; + DWORD m_dwContext; + +// Implementation +public: + ~CInternetException(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif + virtual BOOL GetErrorMessage(LPTSTR lpstrError, UINT nMaxError, + PUINT pnHelpContext = NULL); + DECLARE_DYNAMIC(CInternetException) +}; + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_ENABLE_INLINES +#define _AFXINET_INLINE inline +#include <afxinet.inl> +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif // __AFXINET_H__ + +#endif // _MAC diff --git a/public/sdk/inc/mfc42/afxinet.inl b/public/sdk/inc/mfc42/afxinet.inl new file mode 100644 index 000000000..69f4fda8d --- /dev/null +++ b/public/sdk/inc/mfc42/afxinet.inl @@ -0,0 +1,69 @@ +// This is a part of the Microsoft Foundation Classes C++ library. +// Copyright (C) 1992-1996 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. + +// Inlines for AFXINET.H + +///////////////////////////////////////////////////////////////////////////// +// + +#ifdef _AFXINET_INLINE + +_AFXINET_INLINE DWORD CInternetSession::GetContext() const + { return m_dwContext; } + +_AFXINET_INLINE CString CInternetConnection::GetServerName() const + { return m_strServerName; } + +_AFXINET_INLINE CInternetSession* CInternetConnection::GetSession() const + { return m_pSession; } + +_AFXINET_INLINE CInternetSession::operator HINTERNET() const + { return m_hSession; } + +_AFXINET_INLINE BOOL CInternetSession::SetOption(DWORD dwOption, DWORD dwValue, + DWORD dwFlags /* = 0 */) + { return SetOption(dwOption, &dwValue, sizeof(dwValue), dwFlags); } + + +_AFXINET_INLINE CGopherLocator::operator LPCTSTR() const + { return (LPCTSTR) m_Locator; } + +_AFXINET_INLINE BOOL CGopherLocator::GetLocatorType(DWORD& dwRef) const + { return GopherGetLocatorType((LPCTSTR) m_Locator, &dwRef); } + +_AFXINET_INLINE CGopherLocator::CGopherLocator(const CGopherLocator& ref) + { m_Locator = ref.m_Locator; m_dwBufferLength = ref.m_dwBufferLength; } + + +_AFXINET_INLINE CInternetConnection::operator HINTERNET() const + { return m_hConnection; } + +_AFXINET_INLINE DWORD CInternetConnection::GetContext() const + { return m_dwContext; } + +_AFXINET_INLINE BOOL CInternetConnection::SetOption(DWORD dwOption, + DWORD dwValue, DWORD dwFlags /* = 0 */) + { return SetOption(dwOption, &dwValue, sizeof(dwValue), dwFlags); } + + +_AFXINET_INLINE DWORD CInternetFile::GetContext() const + { return m_dwContext; } + +_AFXINET_INLINE CInternetFile::operator HINTERNET() const + { return m_hFile; } + +_AFXINET_INLINE BOOL CInternetFile::SetOption(DWORD dwOption, DWORD dwValue, + DWORD dwFlags /* = 0 */) + { return SetOption(dwOption, &dwValue, sizeof(dwValue), dwFlags); } + + +#endif //_AFXINET_INLINE + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxisapi.h b/public/sdk/inc/mfc42/afxisapi.h new file mode 100644 index 000000000..e743682c9 --- /dev/null +++ b/public/sdk/inc/mfc42/afxisapi.h @@ -0,0 +1,561 @@ +// 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. + +#ifndef __AFXISAPI_H_ +#define __AFXISAPI_H_ + +#ifdef _UNICODE +#error ERROR: ISAPI does not yet support Unicode. +#endif + +///////////////////////////////////////////////////////////////////////////// +// Turn off warnings for /W4 +// To resume any of these warning: #pragma warning(default: 4xxx) +// which should be placed after the AFX include files +#ifndef ALL_WARNINGS +// warnings generated with common MFC/Windows code +#pragma warning(disable: 4127) // constant expression for TRACE/ASSERT +#pragma warning(disable: 4134) // message map member fxn casts +#pragma warning(disable: 4201) // nameless unions are part of C++ +#pragma warning(disable: 4511) // private copy constructors are good to have +#pragma warning(disable: 4512) // private operator= are good to have +#pragma warning(disable: 4514) // unreferenced inlines are common +#pragma warning(disable: 4710) // private constructors are disallowed +#pragma warning(disable: 4705) // statement has no effect in optimized code +// warnings caused by normal optimizations +#ifndef _DEBUG +#pragma warning(disable: 4701) // local variable *may* be used without init +#pragma warning(disable: 4702) // unreachable code caused by optimizations +#pragma warning(disable: 4791) // loss of debugging info in retail version +#endif +// warnings specific to _AFXDLL version +#ifdef _AFXDLL +#pragma warning(disable: 4204) // non-constant aggregate initializer +#endif +#ifdef _AFXDLL +#pragma warning(disable: 4275) // deriving exported class from non-exported +#pragma warning(disable: 4251) // using non-exported as public in exported +#endif +#endif //!ALL_WARNINGS + +#define STRICT 1 + +#ifndef _DEBUG +#ifndef _AFX_ENABLE_INLINES +#define _AFX_EANBLE_INLINES +#endif +#endif + +#include <httpext.h> +#include <httpfilt.h> + +#ifndef _INC_STDLIB + #include <stdlib.h> +#endif +#ifndef _INC_TCHAR + #include <tchar.h> +#endif + +#ifndef UNUSED +#ifdef _DEBUG +#define UNUSED(x) +#else +#define UNUSED(x) x +#endif +#endif + +#define AFXISAPI __stdcall +#define AFXIS_DATADEF + +///////////////////////////////////////////////////////////////////////////// +// Internet Server API Library + +#ifndef _AFX_NOFORCE_LIBS +#ifndef _MAC + +#ifdef _AFXDLL +#ifdef _DEBUG + #ifdef _UNICODE + #pragma comment(lib, "MFCISUD.lib") + #else + #pragma comment(lib, "EAFXISD.lib") + #endif +#else + #ifdef _UNICODE + #pragma comment(lib, "MFCISU.lib") + #else + #pragma comment(lib, "EAFXIS.lib") + #endif // _UNICODE +#endif // _DEBUG +#else +#ifdef _DEBUG + #ifdef _UNICODE + #pragma comment(lib, "UAFXISD.lib") + #else + #pragma comment(lib, "NAFXISD.lib") + #endif +#else + #ifdef _UNICODE + #pragma comment(lib, "UAFXIS.lib") + #else + #pragma comment(lib, "NAFXIS.lib") + #endif // _UNICODE +#endif // _DEBUG +#endif // _AFXDLL + +#pragma comment(lib, "kernel32.lib") +#pragma comment(lib, "user32.lib") +#pragma comment(lib, "winspool.lib") +#pragma comment(lib, "advapi32.lib") + +#endif // _MAC +#endif // _AFX_NOFORCE_LIBS + +extern HINSTANCE AFXISAPI AfxGetResourceHandle(); + +///////////////////////////////////////////////////////////////////////////// +// AFXIASPI - MFC Internet Server API support + +// Classes declared in this file + +class CHtmlStream; +class CHttpServerContext; +class CHttpServer; +class CHttpFilterContext; +class CHttpFilter; + + +/////////////////////////////////////////////////////////////////////// +// CHtmlStream -- manages in-memory HTML + +class CHtmlStream +{ +public: +// Constructors + CHtmlStream(UINT nGrowBytes = 4096); + CHtmlStream(BYTE* lpBuffer, UINT nBufferSize, UINT nGrowBytes = 0); + +// Operations + void Attach(BYTE* lpBuffer, UINT nBufferSize, UINT nGrowBytes = 0); + BYTE* Detach(); + DWORD GetStreamSize() const; + + virtual void Abort(); + virtual void Close(); + virtual void InitStream(); + virtual void Reset(); + + CHtmlStream& operator<<(LPCTSTR psz); + CHtmlStream& operator<<(short int w); + CHtmlStream& operator<<(long int dw); + CHtmlStream& operator<<(CHtmlStream& stream); + CHtmlStream& operator<<(double d); + CHtmlStream& operator<<(float f); + +// Advanced Overridables +protected: + virtual BYTE* Alloc(DWORD nBytes); + virtual BYTE* Realloc(BYTE* lpMem, DWORD nBytes); + virtual BYTE* Memcpy(BYTE* lpMemTarget, const BYTE* lpMemSource, UINT nBytes); + virtual void GrowStream(DWORD dwNewLen); + virtual void Write(const void* lpBuf, UINT nCount); + + DWORD m_nStreamSize; + +public: + virtual void Free(BYTE* lpMem); + +// Implementation +protected: + UINT m_nGrowBytes; + DWORD m_nPosition; + DWORD m_nBufferSize; + BYTE* m_lpBuffer; + BOOL m_bAutoDelete; + +public: + virtual ~CHtmlStream(); +}; + + +/////////////////////////////////////////////////////////////////////// +// Status codes for HTTP transactions + +#ifndef _WININET_ // these symbols may come from WININET.H + +#define HTTP_STATUS_OK 200 // OK +#define HTTP_STATUS_CREATED 201 // created +#define HTTP_STATUS_ACCEPTED 202 // accepted +#define HTTP_STATUS_NO_CONTENT 204 // no content +#define HTTP_STATUS_REDIRECT 301 // moved permanently +#define HTTP_STATUS_TEMP_REDIRECT 302 // moved temporarily +#define HTTP_STATUS_NOT_MODIFIED 304 // not modified +#define HTTP_STATUS_BAD_REQUEST 400 // bad request +#define HTTP_STATUS_AUTH_REQUIRED 401 // unauthorized +#define HTTP_STATUS_FORBIDDEN 403 // forbidden +#define HTTP_STATUS_NOT_FOUND 404 // not found +#define HTTP_STATUS_SERVER_ERROR 500 // internal server error +#define HTTP_STATUS_NOT_IMPLEMENTED 501 // not implemented +#define HTTP_STATUS_BAD_GATEWAY 502 // bad gateway +#define HTTP_STATUS_SERVICE_NA 503 // service unavailable + +#endif + +/////////////////////////////////////////////////////////////////////// +// Parse Map macros + +#ifndef AFX_PARSE_CALL +#define AFX_PARSE_CALL +#endif + +typedef void (AFX_PARSE_CALL CHttpServer::*AFX_PISAPICMD)(CHttpServerContext* pCtxt); + +struct AFX_PARSEMAP_ENTRY; // declared after CHttpServer, below + +struct AFX_PARSEMAP +{ + UINT (PASCAL* pfnGetNumMapEntries)(); +#ifdef _AFXDLL + const AFX_PARSEMAP* (PASCAL* pfnGetBaseMap)(); +#else + const AFX_PARSEMAP* pBaseMap; +#endif + const AFX_PARSEMAP_ENTRY* lpEntries; + ~AFX_PARSEMAP(); +}; + +struct AFX_PARSEMAP_ENTRY_PARAMS +{ + int nParams; // number of parameters + int nRequired; // number of parameters without defaults + // all of these are arrays! + LPTSTR* ppszInfo; // pointers to name[2n], pointer to default[2n+1] + BYTE* ppszDefaults; // pointers to coerced default values + BYTE* ppszValues; // pointers to coerced actual values + ~AFX_PARSEMAP_ENTRY_PARAMS(); +}; + +#ifdef _AFXDLL +#define DECLARE_PARSE_MAP() \ +private: \ + static AFX_PARSEMAP_ENTRY _parseEntries[]; \ +public: \ + static const AFX_PARSEMAP parseMap; \ + static const AFX_PARSEMAP* PASCAL _GetBaseParseMap(); \ + static UINT PASCAL GetNumMapEntries(); \ + virtual const AFX_PARSEMAP* GetParseMap() const; \ + +#else +#define DECLARE_PARSE_MAP() \ +private: \ + static AFX_PARSEMAP_ENTRY _parseEntries[]; \ +public: \ + static const AFX_PARSEMAP parseMap; \ + static UINT PASCAL GetNumMapEntries(); \ + virtual const AFX_PARSEMAP* GetParseMap() const; \ + +#endif // _AFXDLL + +#ifdef _AFXDLL +#define BEGIN_PARSE_MAP(theClass, baseClass) \ + const AFX_PARSEMAP* PASCAL theClass::_GetBaseParseMap() \ + { return &baseClass::parseMap; } \ + typedef void (AFX_PARSE_CALL theClass::*theClass##CALL)(CHttpServerContext*); \ + const AFX_PARSEMAP* theClass::GetParseMap() const \ + { return &theClass::parseMap; } \ + AFXIS_DATADEF const AFX_PARSEMAP theClass::parseMap = \ + { &theClass::GetNumMapEntries, &theClass::_GetBaseParseMap, &theClass::_parseEntries[0] }; \ + AFX_PARSEMAP_ENTRY theClass::_parseEntries[] = \ + { \ + +#else +#define BEGIN_PARSE_MAP(theClass, baseClass) \ + typedef void (AFX_PARSE_CALL theClass::*theClass##CALL)(CHttpServerContext*); \ + const AFX_PARSEMAP* theClass::GetParseMap() const \ + { return &theClass::parseMap; } \ + AFXIS_DATADEF const AFX_PARSEMAP theClass::parseMap = \ + { &theClass::GetNumMapEntries, &baseClass::parseMap, &theClass::_parseEntries[0] }; \ + AFX_PARSEMAP_ENTRY theClass::_parseEntries[] = \ + { \ + +#endif + +#define ON_PARSE_COMMAND(FnName, mapClass, Args) \ + { _T(#FnName), (AFX_PISAPICMD) (mapClass##CALL)mapClass::FnName, Args }, + +#define ON_PARSE_COMMAND_PARAMS(Params) \ + { NULL, (AFX_PISAPICMD) NULL, Params }, + +#define DEFAULT_PARSE_COMMAND(FnName, mapClass) \ + { _T(#FnName), (AFX_PISAPICMD) (mapClass##CALL)mapClass::FnName, NULL }, + +#define END_PARSE_MAP(theClass) \ + }; \ + UINT PASCAL theClass::GetNumMapEntries() { \ + return sizeof(theClass::_parseEntries) /\ + sizeof(AFX_PARSEMAP_ENTRY); } \ + + +/////////////////////////////////////////////////////////////////////// +// + +class CHttpServerContext +{ +public: + CHttpServerContext(EXTENSION_CONTROL_BLOCK* pECB); + virtual ~CHttpServerContext(); + +// Operations + BOOL GetServerVariable(LPTSTR lpszVariableName, + LPVOID lpvBuffer, LPDWORD lpdwSize); + BOOL WriteClient(LPVOID lpvBuffer, LPDWORD lpdwBytes, DWORD dwReserved = 0); + BOOL ReadClient(LPVOID lpvBuffer, LPDWORD lpdwSize); + BOOL ServerSupportFunction(DWORD dwHSERRequest, + LPVOID lpvBuffer, LPDWORD lpdwSize, LPDWORD lpdwDataType); + + CHttpServerContext& operator<<(LPCTSTR psz); + CHttpServerContext& operator<<(long int dw); + CHttpServerContext& operator<<(short int w); + CHttpServerContext& operator<<(CHtmlStream& stream); + CHttpServerContext& operator<<(double d); + CHttpServerContext& operator<<(float f); + + void Reset(); + +// Attributes + EXTENSION_CONTROL_BLOCK* const m_pECB; + CHtmlStream* m_pStream; + DWORD m_dwEndOfHeaders; +#ifdef _DEBUG + DWORD m_dwOldEndOfHeaders; +#endif +}; + + +/////////////////////////////////////////////////////////////////////// +// Internet Information Server Extension Support + +class CHttpServer +{ +public: + CHttpServer(TCHAR cDelimiter = '&'); + virtual ~CHttpServer(); + + enum errors { + callOK = 0, // everything is fine + callParamRequired, // a required parameter was missing + callBadParamCount, // there were too many or too few parameters + callBadCommand, // the command name was not found + callNoStackSpace, // no stack space was available + callNoStream, // no CHtmlStream was available + callMissingQuote, // a parameter had a bad format + callMissingParams, // no parameters were available + callBadParam, // a paremeter had a bad format (ie, only one quote) + }; + +// overridables + virtual int CallFunction(CHttpServerContext* pCtxt, + LPTSTR pszQuery, LPTSTR pszCommand); + virtual BOOL OnParseError(CHttpServerContext* pCtxt, int nCause); + +// operations + virtual void EndContent(CHttpServerContext* pCtxt) const; + virtual void StartContent(CHttpServerContext* pCtxt) const; + virtual void WriteTitle(CHttpServerContext* pCtxt) const; + virtual LPCTSTR GetTitle() const; + void AddHeader(CHttpServerContext* pCtxt, LPCTSTR pszString) const; + + virtual DWORD HttpExtensionProc(EXTENSION_CONTROL_BLOCK *pECB); + virtual BOOL GetExtensionVersion(HSE_VERSION_INFO *pVer); + virtual CHtmlStream* ConstructStream(); + + virtual BOOL InitInstance(CHttpServerContext* pCtxt); + +// implementation + +protected: + UINT PASCAL GetStackSize(const BYTE* pbParams); + int CallMemberFunc(CHttpServerContext* pCtxt, + const AFX_PARSEMAP_ENTRY* pEntry, + AFX_PARSEMAP_ENTRY* pParams, LPTSTR szParams); + LPTSTR GetQuery(CHttpServerContext* pCtxt, + LPTSTR lpszQuery, DWORD cbQuery); + const AFX_PARSEMAP_ENTRY* LookUp(LPCTSTR szMethod, + const AFX_PARSEMAP*& pMap, AFX_PARSEMAP_ENTRY*& pParams, + AFX_PISAPICMD pCmdDefault = NULL); + int CountParams(LPCTSTR pszCommandLine, int& nCount); + int ParseDefaultParams(AFX_PARSEMAP_ENTRY* pParams, + int nParams, AFX_PARSEMAP_ENTRY_PARAMS*& pBlock, + const BYTE* pbTypes); + LPVOID PreprocessString(LPTSTR psz); + void BuildStatusCode(LPTSTR szResponse, DWORD dwCode); + +#if defined(_PPC_) || defined(_MPPC_) + int PushDefaultStackArgs(BYTE* pStack, + CHttpServerContext* pCtxt, const BYTE* pbParams, + LPTSTR lpszParams, AFX_PARSEMAP_ENTRY_PARAMS* pDefParams, + int nSizeArgs); + int PushStackArgs(BYTE* pStack, CHttpServerContext* pCtxt, + const BYTE* pbParams, LPTSTR lpszParams, UINT nSizeArgs); + BYTE* StoreStackParameter(BYTE* pStack, BYTE nType, + LPTSTR pszCurParam, UINT nSizeArgs, BOOL bDoShadow); + BYTE* StoreRawStackParameter(BYTE* pStack, BYTE nType, + BYTE* pRawParam, int nSizeArgs); +#else + int PushDefaultStackArgs(BYTE* pStack, + CHttpServerContext* pCtxt, const BYTE* pbParams, + LPTSTR lpszParams, AFX_PARSEMAP_ENTRY_PARAMS* pDefParams); + int PushStackArgs(BYTE* pStack, CHttpServerContext* pCtxt, + const BYTE* pbParams, LPTSTR lpszParams); + BYTE* StoreStackParameter(BYTE* pStack, BYTE nType, LPTSTR pszParam); + BYTE* StoreRawStackParameter(BYTE* pStack, BYTE nType, BYTE* pRawParam); +#endif + + LPCRITICAL_SECTION m_pCritSec; + const TCHAR m_cTokenDelimiter; // can't EVER change + + DECLARE_PARSE_MAP() +}; + +extern "C" BOOL WINAPI GetExtensionVersion(HSE_VERSION_INFO *pVer); +extern "C" DWORD WINAPI HttpExtensionProc(EXTENSION_CONTROL_BLOCK *pECB); + +struct AFX_PARSEMAP_ENTRY +{ + LPTSTR pszFnName; // if default param entry, ptr to AFX_PARSEMAP_ENTRY_PARAMS + AFX_PISAPICMD pfn; // NULL if default param entry + LPSTR pszArgs; // NULL if default function entry +}; + +/////////////////////////////////////////////////////////////////////// +// Constants to describe parameter types + +#define ITS_EMPTY "\x06" // no parameters +#define ITS_I2 "\x01" // a 'short' +#define ITS_I4 "\x02" // a 'long' +#define ITS_R4 "\x03" // a 'float' +#define ITS_R8 "\x04" // a 'double' +#define ITS_PSTR "\x05" // a 'LPCTSTR' + +enum INETVARENUM +{ + IT_I2 = 1, + IT_I4 = 2, + IT_R4 = 3, + IT_R8 = 4, + IT_PSTR = 5, + IT_EMPTY = 6, +}; + + +/////////////////////////////////////////////////////////////////////// +// Internet Information Server Entry Points + +extern "C" DWORD WINAPI HttpFilterProc(PHTTP_FILTER_CONTEXT pfc, + DWORD dwNotificationType, LPVOID pvNotification); + +extern "C" BOOL WINAPI GetFilterVersion(PHTTP_FILTER_VERSION pVer); + + +/////////////////////////////////////////////////////////////////////// +// Internet Information Server Filter Support + +class CHttpFilterContext +{ +public: + CHttpFilterContext(PHTTP_FILTER_CONTEXT pfc); + ~CHttpFilterContext() { } + + BOOL GetServerVariable(LPTSTR lpszVariableName, LPVOID lpvBuffer, + LPDWORD lpdwSize); + BOOL AddResponseHeaders(LPTSTR lpszHeaders, DWORD dwReserved = 0); + BOOL WriteClient(LPVOID lpvBuffer, LPDWORD lpdwBytes, + DWORD dwReserved = 0); + LPVOID AllocMem(DWORD cbSize, DWORD dwReserved = 0); + BOOL ServerSupportFunction(enum SF_REQ_TYPE sfReq, + LPVOID lpvBuffer, LPDWORD lpdwSize, LPDWORD lpdwDataType); + + PHTTP_FILTER_CONTEXT const m_pFC; +}; + + +/////////////////////////////////////////////////////////////////////// +// + +class CHttpFilter +{ +public: + CHttpFilter(); + ~CHttpFilter(); + +protected: + +public: + virtual DWORD HttpFilterProc(PHTTP_FILTER_CONTEXT pfc, + DWORD dwNotificationType, LPVOID pvNotification); + virtual BOOL GetFilterVersion(PHTTP_FILTER_VERSION pVer); + + virtual DWORD OnReadRawData(CHttpFilterContext* pfc, PHTTP_FILTER_RAW_DATA pRawData); + virtual DWORD OnPreprocHeaders(CHttpFilterContext* pfc, PHTTP_FILTER_PREPROC_HEADERS pHeaders); + virtual DWORD OnAuthentication(CHttpFilterContext* pfc, PHTTP_FILTER_AUTHENT pAuthent); + virtual DWORD OnUrlMap(CHttpFilterContext* pfc, PHTTP_FILTER_URL_MAP pUrlMap); + virtual DWORD OnSendRawData(CHttpFilterContext* pfc, PHTTP_FILTER_RAW_DATA pRawData); + virtual DWORD OnLog(CHttpFilterContext* pfc, PHTTP_FILTER_LOG pLog); + virtual DWORD OnEndOfNetSession(CHttpFilterContext* pfc); +}; + + +///////////////////////////////////////////////////////////////////////////// +// Alternate debugging suppot + +#include <crtdbg.h> + +#ifdef _AFX +#define ISAPIASSERT(expr) ASSERT(expr) +#define ISAPITRACE(str) TRACE(str) +#define ISAPITRACE0(str) TRACE0(str) +#define ISAPITRACE1(str, arg1) TRACE1(str, arg1) +#define ISAPITRACE2(str, arg1, arg2) TRACE2(str, arg1, arg2) +#define ISAPITRACE3(str, arg1, arg2, arg3) TRACE3(str, arg1, arg2, arg3) +#define ISAPIVERIFY(f) ASSERT(f) +#else +#define ISAPIASSERT(expr) _ASSERTE(expr) +#define ISAPITRACE(str) _RPT0(_CRT_WARN, str) +#define ISAPITRACE0(str) _RPT0(_CRT_WARN, str) +#define ISAPITRACE1(str, arg1) _RPT1(_CRT_WARN, str, arg1) +#define ISAPITRACE2(str, arg1, arg2) _RPT2(_CRT_WARN, str, arg1, arg2) +#define ISAPITRACE3(str, arg1, arg2, arg3) _RPT3(_CRT_WARN, arg1, arg2, arg3) +#ifdef _DEBUG +#define ISAPIVERIFY(expr) _ASSERTE(expr) +#else +#define ISAPIVERIFY(expr) ((void)(expr)) +#endif +#endif + + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_ENABLE_INLINES +#define _AFXISAPI_INLINE inline +#include <afxisapi.inl> +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif // the whole file diff --git a/public/sdk/inc/mfc42/afxisapi.inl b/public/sdk/inc/mfc42/afxisapi.inl new file mode 100644 index 000000000..fabf1e370 --- /dev/null +++ b/public/sdk/inc/mfc42/afxisapi.inl @@ -0,0 +1,121 @@ +// This is a part of the Microsoft Foundation Classes C++ library. +// Copyright (C) 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. + +// Inlines for AFXISAPI.H + +#ifdef _AFXISAPI_INLINE + +_AFXISAPI_INLINE CHttpServerContext::CHttpServerContext(EXTENSION_CONTROL_BLOCK* pECB) +#ifdef _DEBUG + : m_pECB(pECB), m_pStream(NULL), m_dwEndOfHeaders(0), m_dwOldEndOfHeaders(0) +#else + : m_pECB(pECB), m_pStream(NULL), m_dwEndOfHeaders(0) +#endif + { } + +_AFXISAPI_INLINE CHttpServerContext::~CHttpServerContext() + { if (m_pStream != NULL) delete m_pStream; } + +_AFXISAPI_INLINE CHttpServerContext& CHttpServerContext::operator<<(double d) + { ISAPIASSERT(m_pStream != NULL); + if (m_pStream != NULL) *m_pStream << d; + return *this; } + +_AFXISAPI_INLINE CHttpServerContext& CHttpServerContext::operator<<(float f) + { ISAPIASSERT(m_pStream != NULL); + if (m_pStream != NULL) *m_pStream << f; + return *this; } + +_AFXISAPI_INLINE CHttpServerContext& CHttpServerContext::operator<<(long int dw) + { ISAPIASSERT(m_pStream != NULL); + if (m_pStream != NULL) *m_pStream << dw; + return *this; } + +_AFXISAPI_INLINE CHttpServerContext& CHttpServerContext::operator<<(short int w) + { ISAPIASSERT(m_pStream != NULL); + if (m_pStream != NULL) *m_pStream << w; + return *this; } + +_AFXISAPI_INLINE CHttpServerContext& CHttpServerContext::operator<<(CHtmlStream& stream) + { ISAPIASSERT(m_pStream != NULL); + if (m_pStream != NULL) *m_pStream << stream; + return *this; } + +_AFXISAPI_INLINE CHttpServerContext& CHttpServerContext::operator<<(LPCTSTR psz) + { ISAPIASSERT(m_pStream != NULL && psz != NULL); + if (m_pStream != NULL && psz != NULL) *m_pStream << psz; + return *this; } + + +_AFXISAPI_INLINE BOOL CHttpServerContext::GetServerVariable(LPTSTR lpszVariableName, + LPVOID lpvBuffer, LPDWORD lpdwSize) + { + return m_pECB->GetServerVariable(m_pECB->ConnID, + lpszVariableName, lpvBuffer, lpdwSize); + } + +_AFXISAPI_INLINE BOOL CHttpServerContext::WriteClient(LPVOID pBuffer, LPDWORD lpdwBytes, + DWORD dwReserved /* = 0 */) + { + return m_pECB->WriteClient(m_pECB->ConnID, pBuffer, + lpdwBytes, dwReserved); + } + +_AFXISAPI_INLINE BOOL CHttpServerContext::ReadClient(LPVOID lpvBuffer, LPDWORD lpdwSize) + { + return m_pECB->ReadClient(m_pECB->ConnID, lpvBuffer, lpdwSize); + } + +_AFXISAPI_INLINE BOOL CHttpServerContext::ServerSupportFunction(DWORD dwHSERRequest, + LPVOID lpvBuffer, LPDWORD lpdwSize, LPDWORD lpdwDataType) + { + return m_pECB->ServerSupportFunction(m_pECB->ConnID, dwHSERRequest, + lpvBuffer, lpdwSize, lpdwDataType); + } + + +_AFXISAPI_INLINE DWORD CHtmlStream::GetStreamSize() const + { return m_nStreamSize; } + + +_AFXISAPI_INLINE CHttpFilterContext::CHttpFilterContext(PHTTP_FILTER_CONTEXT pCtx) + : m_pFC(pCtx) + { } + +_AFXISAPI_INLINE BOOL CHttpFilterContext::GetServerVariable(LPTSTR lpszVariableName, + LPVOID lpvBuffer, LPDWORD lpdwSize) + { + return m_pFC->GetServerVariable(m_pFC, lpszVariableName, lpvBuffer, lpdwSize); + } +_AFXISAPI_INLINE BOOL CHttpFilterContext::AddResponseHeaders(LPTSTR lpszHeaders, + DWORD dwReserved /* = 0 */) + { + return m_pFC->AddResponseHeaders(m_pFC, lpszHeaders, dwReserved); + } +_AFXISAPI_INLINE BOOL CHttpFilterContext::WriteClient(LPVOID lpvBuffer, + LPDWORD lpdwBytes, DWORD dwReserved /* = 0 */) + { + return m_pFC->WriteClient(m_pFC, lpvBuffer, lpdwBytes, dwReserved); + } +_AFXISAPI_INLINE LPVOID CHttpFilterContext::AllocMem(DWORD cbSize, + DWORD dwReserved /* = 0 */) + { + return m_pFC->AllocMem(m_pFC, cbSize, dwReserved); + } +_AFXISAPI_INLINE BOOL CHttpFilterContext::ServerSupportFunction(enum SF_REQ_TYPE sfReq, + LPVOID lpvBuffer, LPDWORD lpdwSize, LPDWORD lpdwDataType) + { +//WINBUG: HTTPFLT.H has the last two params as type DWORD + return m_pFC->ServerSupportFunction(m_pFC, sfReq, lpvBuffer, + (DWORD) lpdwSize, (DWORD) lpdwDataType); + } + + +#endif // _AFXISAPI_INLINE diff --git a/public/sdk/inc/mfc42/afxisapi.rc b/public/sdk/inc/mfc42/afxisapi.rc new file mode 100644 index 000000000..8eeefce07 --- /dev/null +++ b/public/sdk/inc/mfc42/afxisapi.rc @@ -0,0 +1,45 @@ +// 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. + +#ifndef __AFXISAPI_RC__ +#define __AFXISAPI_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// ISAPI HTML Text for HTTP error conditions + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_HTTP_TITLE "<HEAD><TITLE>HTTP Error %d</TITLE></HEAD>" + AFX_IDS_HTTP_NO_TEXT "<BODY><H1>HTTP Error %d: No message available</H1></BODY>\r\n" + AFX_IDS_HTTP_BAD_REQUEST "<BODY><H1>BAD REQUEST</H1><P>Your client sent a request that this server didn't understand.<br>Request: %s\r\n" + AFX_IDS_HTTP_AUTH_REQUIRED "<BODY><H1>AUTH REQUIRED</H1><P>Browser not authentication-capable or authentication failed.</BODY>\r\n" + AFX_IDS_HTTP_FORBIDDEN "<BODY><H1>FORBIDDEN</H1><P>Your client does not have permission to get this URL from the server.</BODY>\r\n" + AFX_IDS_HTTP_NOT_FOUND "<BODY><H1>NOT FOUND</H1><P>The requested URL was not found on this server.</BODY>\r\n" + AFX_IDS_HTTP_SERVER_ERROR "<BODY><H1>SERVER ERROR</H1>The server encountered an internal error or misconfiguration and was unable to complete your request.</BODY>\r\n" + AFX_IDS_HTTP_NOT_IMPLEMENTED "<BODY><H1>NOT IMPLEMENTED</H1>The server is unable to perform the method <b>%s</b> at this time.</BODY>\r\n" +END + + +#endif //!_AFXDLL +#endif //!__AFXISAPI_RC__ diff --git a/public/sdk/inc/mfc42/afxmsg_.h b/public/sdk/inc/mfc42/afxmsg_.h new file mode 100644 index 000000000..73feb1f05 --- /dev/null +++ b/public/sdk/inc/mfc42/afxmsg_.h @@ -0,0 +1,695 @@ + +// 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. + +// Do not include this file directly (included by AFXWIN.H) + +///////////////////////////////////////////////////////////////////////////// + +// Entries in a message map (a 'AFX_MSGMAP_ENTRY') table can be of 9 formats +// +// 1) control notification message (i.e. in response to WM_COMMAND) +// WM_COMMAND, nNotifyCode, nControlID, nControlID, signature type, parameterless member function +// (eg: WM_COMMAND, LBN_SELCHANGE, IDC_LISTBOX, AfxSig_vv, ... ) +// 2) control notification message range (i.e. in response to WM_COMMAND) +// WM_COMMAND, nNotifyCode, nControlIDFirst, nControlIDLast, signature type, parameterless member function +// (eg: WM_COMMAND, LBN_SELCHANGE, IDC_LISTBOX1, IDC_LISTBOX5, AfxSig_vw, ... ) +// 3) WM_NOTIFY notification +// WM_NOTIFY, nNotifyCode, nControlID, nControlID, signature type, ...) +// 3) Update Command UI +// -1, 0, nControlID, 0, signature Unknown, parameterless member function +// 4) Update Command UI Range +// -1, 0, nControlIDFirst, nControlIDLast, signature Unknown, parameterless member function +// 5) menu/accelerator notification message (i.e. special case of first format) +// WM_COMMAND, 0, nID, 0, signature type, parameterless member function +// (eg: WM_COMMAND, 0, IDM_FILESAVE, 0, AfxSig_vv, ... ) +// 6) menu/accelerator notification message range +// WM_COMMAND, 0, nIDFirst, nIDLast, signature type, parameterless member function +// (eg: WM_COMMAND, 0, IDM_FILE_MRU1, IDM_FILE_MRU4, AfxSig_vw, ... ) +// 7) constant windows message +// nMessage, 0, 0, 0, signature type, member function +// (eg: WM_PAINT, 0, ...) +// 8) variable windows message (using RegisterWindowMessage) +// 0xC000, 0, 0, 0, &nMessage, special member function +// +// The end of the message map is marked with a special value +// 0, 0, AfxSig_end, 0 +///////////////////////////////////////////////////////////////////////////// + +enum AfxSig +{ + AfxSig_end = 0, // [marks end of message map] + + AfxSig_bD, // BOOL (CDC*) + AfxSig_bb, // BOOL (BOOL) + AfxSig_bWww, // BOOL (CWnd*, UINT, UINT) + AfxSig_hDWw, // HBRUSH (CDC*, CWnd*, UINT) + AfxSig_hDw, // HBRUSH (CDC*, UINT) + AfxSig_iwWw, // int (UINT, CWnd*, UINT) + AfxSig_iww, // int (UINT, UINT) + AfxSig_iWww, // int (CWnd*, UINT, UINT) + AfxSig_is, // int (LPTSTR) + AfxSig_lwl, // LRESULT (WPARAM, LPARAM) + AfxSig_lwwM, // LRESULT (UINT, UINT, CMenu*) + AfxSig_vv, // void (void) + + AfxSig_vw, // void (UINT) + AfxSig_vww, // void (UINT, UINT) + AfxSig_vvii, // void (int, int) // wParam is ignored + AfxSig_vwww, // void (UINT, UINT, UINT) + AfxSig_vwii, // void (UINT, int, int) + AfxSig_vwl, // void (UINT, LPARAM) + AfxSig_vbWW, // void (BOOL, CWnd*, CWnd*) + AfxSig_vD, // void (CDC*) + AfxSig_vM, // void (CMenu*) + AfxSig_vMwb, // void (CMenu*, UINT, BOOL) + + AfxSig_vW, // void (CWnd*) + AfxSig_vWww, // void (CWnd*, UINT, UINT) + AfxSig_vWp, // void (CWnd*, CPoint) + AfxSig_vWh, // void (CWnd*, HANDLE) + AfxSig_vwW, // void (UINT, CWnd*) + AfxSig_vwWb, // void (UINT, CWnd*, BOOL) + AfxSig_vwwW, // void (UINT, UINT, CWnd*) + AfxSig_vwwx, // void (UINT, UINT) + AfxSig_vs, // void (LPTSTR) + AfxSig_vOWNER, // void (int, LPTSTR), force return TRUE + AfxSig_iis, // int (int, LPTSTR) + AfxSig_wp, // UINT (CPoint) + AfxSig_wv, // UINT (void) + AfxSig_vPOS, // void (WINDOWPOS*) + AfxSig_vCALC, // void (BOOL, NCCALCSIZE_PARAMS*) + AfxSig_vNMHDRpl, // void (NMHDR*, LRESULT*) + AfxSig_bNMHDRpl, // BOOL (NMHDR*, LRESULT*) + AfxSig_vwNMHDRpl, // void (UINT, NMHDR*, LRESULT*) + AfxSig_bwNMHDRpl, // BOOL (UINT, NMHDR*, LRESULT*) + AfxSig_bHELPINFO, // BOOL (HELPINFO*) + AfxSig_vwSIZING, // void (UINT, LPRECT) -- return TRUE + + // signatures specific to CCmdTarget + AfxSig_cmdui, // void (CCmdUI*) + AfxSig_cmduiw, // void (CCmdUI*, UINT) + AfxSig_vpv, // void (void*) + AfxSig_bpv, // BOOL (void*) + + // Other aliases (based on implementation) + AfxSig_vwwh, // void (UINT, UINT, HANDLE) + AfxSig_vwp, // void (UINT, CPoint) + AfxSig_bw = AfxSig_bb, // BOOL (UINT) + AfxSig_bh = AfxSig_bb, // BOOL (HANDLE) + AfxSig_iw = AfxSig_bb, // int (UINT) + AfxSig_ww = AfxSig_bb, // UINT (UINT) + AfxSig_bv = AfxSig_wv, // BOOL (void) + AfxSig_hv = AfxSig_wv, // HANDLE (void) + AfxSig_vb = AfxSig_vw, // void (BOOL) + AfxSig_vbh = AfxSig_vww, // void (BOOL, HANDLE) + AfxSig_vbw = AfxSig_vww, // void (BOOL, UINT) + AfxSig_vhh = AfxSig_vww, // void (HANDLE, HANDLE) + AfxSig_vh = AfxSig_vw, // void (HANDLE) + AfxSig_viSS = AfxSig_vwl, // void (int, STYLESTRUCT*) + AfxSig_bwl = AfxSig_lwl, + AfxSig_vwMOVING = AfxSig_vwSIZING, // void (UINT, LPRECT) -- return TRUE + + AfxSig_vW2, // void (CWnd*) (CWnd* comes from lParam) +}; + +///////////////////////////////////////////////////////////////////////////// +// Command notifications for CCmdTarget notifications + +#define CN_COMMAND 0 // void () +#define CN_UPDATE_COMMAND_UI ((UINT)(-1)) // void (CCmdUI*) +#define CN_EVENT ((UINT)(-2)) // OLE event +#define CN_OLECOMMAND ((UINT)(-3)) // OLE document command +// > 0 are control notifications + +#define ON_COMMAND(id, memberFxn) \ + { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)id, AfxSig_vv, (AFX_PMSG)&memberFxn }, + // ON_COMMAND(id, OnFoo) is the same as + // ON_CONTROL(0, id, OnFoo) or ON_BN_CLICKED(0, id, OnFoo) + +#define ON_COMMAND_RANGE(id, idLast, memberFxn) \ + { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)idLast, AfxSig_vw, \ + (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(UINT))&memberFxn }, + // ON_COMMAND_RANGE(id, idLast, OnFoo) is the same as + // ON_CONTROL_RANGE(0, id, idLast, OnFoo) + +#define ON_COMMAND_EX(id, memberFxn) \ + { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)id, AfxSig_bw, \ + (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)(UINT))&memberFxn }, + +#define ON_COMMAND_EX_RANGE(id, idLast, memberFxn) \ + { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)idLast, AfxSig_bw, \ + (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)(UINT))&memberFxn }, + +// update ui's are listed as WM_COMMAND's so they get routed like commands +#define ON_UPDATE_COMMAND_UI(id, memberFxn) \ + { WM_COMMAND, CN_UPDATE_COMMAND_UI, (WORD)id, (WORD)id, AfxSig_cmdui, \ + (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(CCmdUI*))&memberFxn }, + +#define ON_UPDATE_COMMAND_UI_RANGE(id, idLast, memberFxn) \ + { WM_COMMAND, CN_UPDATE_COMMAND_UI, (WORD)id, (WORD)idLast, AfxSig_cmdui, \ + (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(CCmdUI*))&memberFxn }, + +#define ON_NOTIFY(wNotifyCode, id, memberFxn) \ + { WM_NOTIFY, (WORD)(int)wNotifyCode, (WORD)id, (WORD)id, AfxSig_vNMHDRpl, \ + (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(NMHDR*, LRESULT*))&memberFxn }, + +#define ON_NOTIFY_RANGE(wNotifyCode, id, idLast, memberFxn) \ + { WM_NOTIFY, (WORD)(int)wNotifyCode, (WORD)id, (WORD)idLast, AfxSig_vwNMHDRpl, \ + (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(UINT, NMHDR*, LRESULT*))&memberFxn }, + +#define ON_NOTIFY_EX(wNotifyCode, id, memberFxn) \ + { WM_NOTIFY, (WORD)(int)wNotifyCode, (WORD)id, (WORD)id, AfxSig_bwNMHDRpl, \ + (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)(UINT, NMHDR*, LRESULT*))&memberFxn }, + +#define ON_NOTIFY_EX_RANGE(wNotifyCode, id, idLast, memberFxn) \ + { WM_NOTIFY, (WORD)(int)wNotifyCode, (WORD)id, (WORD)idLast, AfxSig_bwNMHDRpl, \ + (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)(UINT, NMHDR*, LRESULT*))&memberFxn }, + +// for general controls +#define ON_CONTROL(wNotifyCode, id, memberFxn) \ + { WM_COMMAND, (WORD)wNotifyCode, (WORD)id, (WORD)id, AfxSig_vv, \ + (AFX_PMSG)&memberFxn }, + +#define ON_CONTROL_RANGE(wNotifyCode, id, idLast, memberFxn) \ + { WM_COMMAND, (WORD)wNotifyCode, (WORD)id, (WORD)idLast, AfxSig_vw, \ + (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(UINT))&memberFxn }, + +#define WM_REFLECT_BASE 0xBC00 + +// for control notification reflection +#define ON_CONTROL_REFLECT(wNotifyCode, memberFxn) \ + { WM_COMMAND+WM_REFLECT_BASE, (WORD)wNotifyCode, 0, 0, AfxSig_vv, \ + (AFX_PMSG)&memberFxn }, + +#define ON_CONTROL_REFLECT_EX(wNotifyCode, memberFxn) \ + { WM_COMMAND+WM_REFLECT_BASE, (WORD)wNotifyCode, 0, 0, AfxSig_bv, \ + (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)())&memberFxn }, + +#define ON_NOTIFY_REFLECT(wNotifyCode, memberFxn) \ + { WM_NOTIFY+WM_REFLECT_BASE, (WORD)(int)wNotifyCode, 0, 0, AfxSig_vNMHDRpl, \ + (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(NMHDR*, LRESULT*))&memberFxn }, + +#define ON_NOTIFY_REFLECT_EX(wNotifyCode, memberFxn) \ + { WM_NOTIFY+WM_REFLECT_BASE, (WORD)(int)wNotifyCode, 0, 0, AfxSig_bNMHDRpl, \ + (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)(NMHDR*, LRESULT*))&memberFxn }, + +#define ON_UPDATE_COMMAND_UI_REFLECT(memberFxn) \ + { WM_COMMAND+WM_REFLECT_BASE, CN_UPDATE_COMMAND_UI, 0, 0, AfxSig_cmdui, \ + (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(CCmdUI*))&memberFxn }, + +///////////////////////////////////////////////////////////////////////////// +// Message map tables for Windows messages + +#define ON_WM_CREATE() \ + { WM_CREATE, 0, 0, 0, AfxSig_is, \ + (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(LPCREATESTRUCT))&OnCreate }, +#define ON_WM_DESTROY() \ + { WM_DESTROY, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&OnDestroy }, +#define ON_WM_MOVE() \ + { WM_MOVE, 0, 0, 0, AfxSig_vvii, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, int))&OnMove }, +#define ON_WM_SIZE() \ + { WM_SIZE, 0, 0, 0, AfxSig_vwii, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, int, int))&OnSize }, +#define ON_WM_ACTIVATE() \ + { WM_ACTIVATE, 0, 0, 0, AfxSig_vwWb, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CWnd*, BOOL))&OnActivate }, +#define ON_WM_SETFOCUS() \ + { WM_SETFOCUS, 0, 0, 0, AfxSig_vW, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))&OnSetFocus }, +#define ON_WM_KILLFOCUS() \ + { WM_KILLFOCUS, 0, 0, 0, AfxSig_vW, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))&OnKillFocus }, +#define ON_WM_ENABLE() \ + { WM_ENABLE, 0, 0, 0, AfxSig_vb, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL))&OnEnable }, +#define ON_WM_HELPINFO() \ + { WM_HELP, 0, 0, 0, AfxSig_bHELPINFO, \ + (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(HELPINFO*))&OnHelpInfo }, +#define ON_WM_PAINT() \ + { WM_PAINT, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&OnPaint }, +#define ON_WM_CLOSE() \ + { WM_CLOSE, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&OnClose }, +#define ON_WM_QUERYENDSESSION() \ + { WM_QUERYENDSESSION, 0, 0, 0, AfxSig_bv, \ + (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(void))&OnQueryEndSession }, +#define ON_WM_QUERYOPEN() \ + { WM_QUERYOPEN, 0, 0, 0, AfxSig_bv, \ + (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(void))&OnQueryOpen }, +#define ON_WM_ERASEBKGND() \ + { WM_ERASEBKGND, 0, 0, 0, AfxSig_bD, \ + (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(CDC*))&OnEraseBkgnd }, +#define ON_WM_SYSCOLORCHANGE() \ + { WM_SYSCOLORCHANGE, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&OnSysColorChange }, +#define ON_WM_ENDSESSION() \ + { WM_ENDSESSION, 0, 0, 0, AfxSig_vb, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL))&OnEndSession }, +#define ON_WM_SHOWWINDOW() \ + { WM_SHOWWINDOW, 0, 0, 0, AfxSig_vbw, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL, UINT))&OnShowWindow }, +#define ON_WM_CTLCOLOR() \ + { WM_CTLCOLOR, 0, 0, 0, AfxSig_hDWw, \ + (AFX_PMSG)(AFX_PMSGW)(HBRUSH (AFX_MSG_CALL CWnd::*)(CDC*, CWnd*, UINT))&OnCtlColor }, +#define ON_WM_CTLCOLOR_REFLECT() \ + { WM_CTLCOLOR+WM_REFLECT_BASE, 0, 0, 0, AfxSig_hDw, \ + (AFX_PMSG)(AFX_PMSGW)(HBRUSH (AFX_MSG_CALL CWnd::*)(CDC*, UINT))CtlColor }, +#define ON_WM_WININICHANGE() \ + { WM_WININICHANGE, 0, 0, 0, AfxSig_vs, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPCTSTR))&OnWinIniChange }, +#define ON_WM_DEVMODECHANGE() \ + { WM_DEVMODECHANGE, 0, 0, 0, AfxSig_vs, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPTSTR))&OnDevModeChange }, +#define ON_WM_ACTIVATEAPP() \ + { WM_ACTIVATEAPP, 0, 0, 0, AfxSig_vbh, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL, HTASK))&OnActivateApp }, +#define ON_WM_FONTCHANGE() \ + { WM_FONTCHANGE, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&OnFontChange }, +#define ON_WM_TIMECHANGE() \ + { WM_TIMECHANGE, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&OnTimeChange }, +#define ON_WM_CANCELMODE() \ + { WM_CANCELMODE, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&OnCancelMode }, +#define ON_WM_SETCURSOR() \ + { WM_SETCURSOR, 0, 0, 0, AfxSig_bWww, \ + (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))&OnSetCursor }, +#define ON_WM_MOUSEACTIVATE() \ + { WM_MOUSEACTIVATE, 0, 0, 0, AfxSig_iWww, \ + (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))&OnMouseActivate }, +#define ON_WM_CHILDACTIVATE() \ + { WM_CHILDACTIVATE, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&OnChildActivate }, +#define ON_WM_GETMINMAXINFO() \ + { WM_GETMINMAXINFO, 0, 0, 0, AfxSig_vs, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(MINMAXINFO*))&OnGetMinMaxInfo }, +#define ON_WM_ICONERASEBKGND() \ + { WM_ICONERASEBKGND, 0, 0, 0, AfxSig_vD, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CDC*))&OnIconEraseBkgnd }, +#define ON_WM_SPOOLERSTATUS() \ + { WM_SPOOLERSTATUS, 0, 0, 0, AfxSig_vww, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT))&OnSpoolerStatus }, +#define ON_WM_DRAWITEM() \ + { WM_DRAWITEM, 0, 0, 0, AfxSig_vOWNER, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, LPDRAWITEMSTRUCT))&OnDrawItem }, +#define ON_WM_DRAWITEM_REFLECT() \ + { WM_DRAWITEM+WM_REFLECT_BASE, 0, 0, 0, AfxSig_vs, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPDRAWITEMSTRUCT))DrawItem }, +#define ON_WM_MEASUREITEM() \ + { WM_MEASUREITEM, 0, 0, 0, AfxSig_vOWNER, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, LPMEASUREITEMSTRUCT))&OnMeasureItem }, +#define ON_WM_MEASUREITEM_REFLECT() \ + { WM_MEASUREITEM+WM_REFLECT_BASE, 0, 0, 0, AfxSig_vs, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPMEASUREITEMSTRUCT))MeasureItem }, +#define ON_WM_DELETEITEM() \ + { WM_DELETEITEM, 0, 0, 0, AfxSig_vOWNER, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, LPDELETEITEMSTRUCT))&OnDeleteItem }, +#define ON_WM_DELETEITEM_REFLECT() \ + { WM_DELETEITEM+WM_REFLECT_BASE, 0, 0, 0, AfxSig_vs, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPDELETEITEMSTRUCT))DeleteItem }, +#define ON_WM_CHARTOITEM() \ + { WM_CHARTOITEM, 0, 0, 0, AfxSig_iwWw, \ + (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(UINT, CListBox*, UINT))&OnCharToItem }, +#define ON_WM_CHARTOITEM_REFLECT() \ + { WM_CHARTOITEM+WM_REFLECT_BASE, 0, 0, 0, AfxSig_iww, \ + (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(UINT, UINT))CharToItem }, +#define ON_WM_VKEYTOITEM() \ + { WM_VKEYTOITEM, 0, 0, 0, AfxSig_iwWw, \ + (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(UINT, CListBox*, UINT))&OnVKeyToItem }, +#define ON_WM_VKEYTOITEM_REFLECT() \ + { WM_VKEYTOITEM+WM_REFLECT_BASE, 0, 0, 0, AfxSig_iww, \ + (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(UINT, UINT))VKeyToItem }, +#define ON_WM_QUERYDRAGICON() \ + { WM_QUERYDRAGICON, 0, 0, 0, AfxSig_hv, \ + (AFX_PMSG)(AFX_PMSGW)(HCURSOR (AFX_MSG_CALL CWnd::*)())&OnQueryDragIcon }, +#define ON_WM_COMPAREITEM() \ + { WM_COMPAREITEM, 0, 0, 0, AfxSig_iis, \ + (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(int, LPCOMPAREITEMSTRUCT))&OnCompareItem }, +#define ON_WM_COMPAREITEM_REFLECT() \ + { WM_COMPAREITEM+WM_REFLECT_BASE, 0, 0, 0, AfxSig_is, \ + (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(LPCOMPAREITEMSTRUCT))CompareItem }, +#define ON_WM_COMPACTING() \ + { WM_COMPACTING, 0, 0, 0, AfxSig_vw, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT))&OnCompacting }, +#define ON_WM_NCCREATE() \ + { WM_NCCREATE, 0, 0, 0, AfxSig_is, \ + (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(LPCREATESTRUCT))&OnNcCreate }, +#define ON_WM_NCDESTROY() \ + { WM_NCDESTROY, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&OnNcDestroy }, +#define ON_WM_NCCALCSIZE() \ + { WM_NCCALCSIZE, 0, 0, 0, AfxSig_vCALC, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL, NCCALCSIZE_PARAMS*))&OnNcCalcSize }, +#define ON_WM_NCHITTEST() \ + { WM_NCHITTEST, 0, 0, 0, AfxSig_wp, \ + (AFX_PMSG)(AFX_PMSGW)(UINT (AFX_MSG_CALL CWnd::*)(CPoint))&OnNcHitTest }, +#define ON_WM_NCPAINT() \ + { WM_NCPAINT, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&OnNcPaint }, +#define ON_WM_NCACTIVATE() \ + { WM_NCACTIVATE, 0, 0, 0, AfxSig_bb, \ + (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(BOOL))&OnNcActivate }, +#define ON_WM_GETDLGCODE() \ + { WM_GETDLGCODE, 0, 0, 0, AfxSig_wv, \ + (AFX_PMSG)(AFX_PMSGW)(UINT (AFX_MSG_CALL CWnd::*)(void))&OnGetDlgCode }, +#define ON_WM_NCMOUSEMOVE() \ + { WM_NCMOUSEMOVE, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnNcMouseMove }, +#define ON_WM_NCLBUTTONDOWN() \ + { WM_NCLBUTTONDOWN, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnNcLButtonDown }, +#define ON_WM_NCLBUTTONUP() \ + { WM_NCLBUTTONUP, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnNcLButtonUp }, +#define ON_WM_NCLBUTTONDBLCLK() \ + { WM_NCLBUTTONDBLCLK, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnNcLButtonDblClk }, +#define ON_WM_NCRBUTTONDOWN() \ + { WM_NCRBUTTONDOWN, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnNcRButtonDown }, +#define ON_WM_NCRBUTTONUP() \ + { WM_NCRBUTTONUP, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnNcRButtonUp }, +#define ON_WM_NCRBUTTONDBLCLK() \ + { WM_NCRBUTTONDBLCLK, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnNcRButtonDblClk }, +#define ON_WM_NCMBUTTONDOWN() \ + { WM_NCMBUTTONDOWN, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnNcMButtonDown }, +#define ON_WM_NCMBUTTONUP() \ + { WM_NCMBUTTONUP, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnNcMButtonUp }, +#define ON_WM_NCMBUTTONDBLCLK() \ + { WM_NCMBUTTONDBLCLK, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnNcMButtonDblClk }, +#define ON_WM_KEYDOWN() \ + { WM_KEYDOWN, 0, 0, 0, AfxSig_vwww, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))&OnKeyDown }, +#define ON_WM_KEYUP() \ + { WM_KEYUP, 0, 0, 0, AfxSig_vwww, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))&OnKeyUp }, +#define ON_WM_CHAR() \ + { WM_CHAR, 0, 0, 0, AfxSig_vwww, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))&OnChar }, +#define ON_WM_DEADCHAR() \ + { WM_DEADCHAR, 0, 0, 0, AfxSig_vwww, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))&OnDeadChar }, +#define ON_WM_SYSKEYDOWN() \ + { WM_SYSKEYDOWN, 0, 0, 0, AfxSig_vwww, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))&OnSysKeyDown }, +#define ON_WM_SYSKEYUP() \ + { WM_SYSKEYUP, 0, 0, 0, AfxSig_vwww, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))&OnSysKeyUp }, +#define ON_WM_SYSCHAR() \ + { WM_SYSCHAR, 0, 0, 0, AfxSig_vwww, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))&OnSysChar }, +#define ON_WM_SYSDEADCHAR() \ + { WM_SYSDEADCHAR, 0, 0, 0, AfxSig_vwww, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))&OnSysDeadChar }, +#define ON_WM_SYSCOMMAND() \ + { WM_SYSCOMMAND, 0, 0, 0, AfxSig_vwl, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPARAM))&OnSysCommand }, +#define ON_WM_TCARD() \ + { WM_TCARD, 0, 0, 0, AfxSig_vwl, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, DWORD))&OnTCard }, +#define ON_WM_TIMER() \ + { WM_TIMER, 0, 0, 0, AfxSig_vw, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT))&OnTimer }, +#define ON_WM_HSCROLL() \ + { WM_HSCROLL, 0, 0, 0, AfxSig_vwwW, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, CScrollBar*))&OnHScroll }, +#define ON_WM_HSCROLL_REFLECT() \ + { WM_HSCROLL+WM_REFLECT_BASE, 0, 0, 0, AfxSig_vwwx, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT))HScroll }, +#define ON_WM_VSCROLL() \ + { WM_VSCROLL, 0, 0, 0, AfxSig_vwwW, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, CScrollBar*))&OnVScroll }, +#define ON_WM_VSCROLL_REFLECT() \ + { WM_VSCROLL+WM_REFLECT_BASE, 0, 0, 0, AfxSig_vwwx, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT))VScroll }, +#define ON_WM_INITMENU() \ + { WM_INITMENU, 0, 0, 0, AfxSig_vM, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CMenu*))&OnInitMenu }, +#define ON_WM_INITMENUPOPUP() \ + { WM_INITMENUPOPUP, 0, 0, 0, AfxSig_vMwb, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CMenu*, UINT, BOOL))&OnInitMenuPopup }, +#define ON_WM_MENUSELECT() \ + { WM_MENUSELECT, 0, 0, 0, AfxSig_vwwh, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, HMENU))&OnMenuSelect }, +#define ON_WM_MENUCHAR() \ + { WM_MENUCHAR, 0, 0, 0, AfxSig_lwwM, \ + (AFX_PMSG)(AFX_PMSGW)(LRESULT (AFX_MSG_CALL CWnd::*)(UINT, UINT, CMenu*))&OnMenuChar }, +#define ON_WM_ENTERIDLE() \ + { WM_ENTERIDLE, 0, 0, 0, AfxSig_vwW, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CWnd*))&OnEnterIdle }, +#define ON_WM_MOUSEMOVE() \ + { WM_MOUSEMOVE, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnMouseMove }, +#define ON_WM_LBUTTONDOWN() \ + { WM_LBUTTONDOWN, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnLButtonDown }, +#define ON_WM_LBUTTONUP() \ + { WM_LBUTTONUP, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnLButtonUp }, +#define ON_WM_LBUTTONDBLCLK() \ + { WM_LBUTTONDBLCLK, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnLButtonDblClk }, +#define ON_WM_RBUTTONDOWN() \ + { WM_RBUTTONDOWN, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnRButtonDown }, +#define ON_WM_RBUTTONUP() \ + { WM_RBUTTONUP, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnRButtonUp }, +#define ON_WM_RBUTTONDBLCLK() \ + { WM_RBUTTONDBLCLK, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnRButtonDblClk }, +#define ON_WM_MBUTTONDOWN() \ + { WM_MBUTTONDOWN, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnMButtonDown }, +#define ON_WM_MBUTTONUP() \ + { WM_MBUTTONUP, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnMButtonUp }, +#define ON_WM_MBUTTONDBLCLK() \ + { WM_MBUTTONDBLCLK, 0, 0, 0, AfxSig_vwp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnMButtonDblClk }, +#define ON_WM_PARENTNOTIFY() \ + { WM_PARENTNOTIFY, 0, 0, 0, AfxSig_vwl, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPARAM))&OnParentNotify }, +#define ON_WM_PARENTNOTIFY_REFLECT() \ + { WM_PARENTNOTIFY+WM_REFLECT_BASE, 0, 0, 0, AfxSig_vwl, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPARAM))ParentNotify }, +#define ON_WM_MDIACTIVATE() \ + { WM_MDIACTIVATE, 0, 0, 0, AfxSig_vbWW, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL, CWnd*, CWnd*))&OnMDIActivate }, +#define ON_WM_RENDERFORMAT() \ + { WM_RENDERFORMAT, 0, 0, 0, AfxSig_vw, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT))&OnRenderFormat }, +#define ON_WM_RENDERALLFORMATS() \ + { WM_RENDERALLFORMATS, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&OnRenderAllFormats }, +#define ON_WM_DESTROYCLIPBOARD() \ + { WM_DESTROYCLIPBOARD, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&OnDestroyClipboard }, +#define ON_WM_DRAWCLIPBOARD() \ + { WM_DRAWCLIPBOARD, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&OnDrawClipboard }, +#define ON_WM_PAINTCLIPBOARD() \ + { WM_PAINTCLIPBOARD, 0, 0, 0, AfxSig_vWh, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, HGLOBAL))&OnPaintClipboard }, +#define ON_WM_VSCROLLCLIPBOARD() \ + { WM_VSCROLLCLIPBOARD, 0, 0, 0, AfxSig_vWww, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))&OnVScrollClipboard }, +#define ON_WM_CONTEXTMENU() \ + { WM_CONTEXTMENU, 0, 0, 0, AfxSig_vWp, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, CPoint))&OnContextMenu }, +#define ON_WM_SIZECLIPBOARD() \ + { WM_SIZECLIPBOARD, 0, 0, 0, AfxSig_vWh, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, HGLOBAL))&OnSizeClipboard }, +#define ON_WM_ASKCBFORMATNAME() \ + { WM_ASKCBFORMATNAME, 0, 0, 0, AfxSig_vwl, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPTSTR))&OnAskCbFormatName }, +#define ON_WM_CHANGECBCHAIN() \ + { WM_CHANGECBCHAIN, 0, 0, 0, AfxSig_vhh, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(HWND, HWND))&OnChangeCbChain }, +#define ON_WM_HSCROLLCLIPBOARD() \ + { WM_HSCROLLCLIPBOARD, 0, 0, 0, AfxSig_vWww, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))&OnHScrollClipboard }, +#define ON_WM_QUERYNEWPALETTE() \ + { WM_QUERYNEWPALETTE, 0, 0, 0, AfxSig_bv, \ + (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(void))&OnQueryNewPalette }, +#define ON_WM_PALETTECHANGED() \ + { WM_PALETTECHANGED, 0, 0, 0, AfxSig_vW, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))&OnPaletteChanged }, + +#define ON_WM_PALETTEISCHANGING() \ + { WM_PALETTEISCHANGING, 0, 0, 0, AfxSig_vW, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))&OnPaletteIsChanging }, +#define ON_WM_DROPFILES() \ + { WM_DROPFILES, 0, 0, 0, AfxSig_vh, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(HDROP))&OnDropFiles }, +#define ON_WM_WINDOWPOSCHANGING() \ + { WM_WINDOWPOSCHANGING, 0, 0, 0, AfxSig_vPOS, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(WINDOWPOS*))&OnWindowPosChanging }, +#define ON_WM_WINDOWPOSCHANGED() \ + { WM_WINDOWPOSCHANGED, 0, 0, 0, AfxSig_vPOS, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(WINDOWPOS*))&OnWindowPosChanged }, + +#define ON_WM_EXITMENULOOP() \ + { WM_EXITMENULOOP, 0, 0, 0, AfxSig_vb, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL))&OnExitMenuLoop }, +#define ON_WM_ENTERMENULOOP() \ + { WM_ENTERMENULOOP, 0, 0, 0, AfxSig_vb, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL))&OnEnterMenuLoop }, + +#define ON_WM_STYLECHANGED() \ + { WM_STYLECHANGED, 0, 0, 0, AfxSig_viSS, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, LPSTYLESTRUCT))&OnStyleChanged }, +#define ON_WM_STYLECHANGING() \ + { WM_STYLECHANGING, 0, 0, 0, AfxSig_viSS, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, LPSTYLESTRUCT))&OnStyleChanging }, +#define ON_WM_SIZING() \ + { WM_SIZING, 0, 0, 0, AfxSig_vwSIZING, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPRECT))&OnSizing }, +#define ON_WM_MOVING() \ + { WM_MOVING, 0, 0, 0, AfxSig_vwMOVING, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPRECT))&OnMoving }, +#define ON_WM_CAPTURECHANGED() \ + { WM_CAPTURECHANGED, 0, 0, 0, AfxSig_vW2, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))&OnCaptureChanged }, +#define ON_WM_DEVICECHANGE() \ + { WM_DEVICECHANGE, 0, 0, 0, AfxSig_bwl, \ + (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(UINT, DWORD))&OnDeviceChange }, + +///////////////////////////////////////////////////////////////////////////// +// Message map tables for Control Notification messages + +// Static control notification codes +#define ON_STN_CLICKED(id, memberFxn) \ + ON_CONTROL(STN_CLICKED, id, memberFxn) +#define ON_STN_DBLCLK(id, memberFxn) \ + ON_CONTROL(STN_DBLCLK, id, memberFxn) +#define ON_STN_ENABLE(id, memberFxn) \ + ON_CONTROL(STN_ENABLE, id, memberFxn) +#define ON_STN_DISABLE(id, memberFxn) \ + ON_CONTROL(STN_DISABLE, id, memberFxn) + + +// Edit Control Notification Codes +#define ON_EN_SETFOCUS(id, memberFxn) \ + ON_CONTROL(EN_SETFOCUS, id, memberFxn) +#define ON_EN_KILLFOCUS(id, memberFxn) \ + ON_CONTROL(EN_KILLFOCUS, id, memberFxn) +#define ON_EN_CHANGE(id, memberFxn) \ + ON_CONTROL(EN_CHANGE, id, memberFxn) +#define ON_EN_UPDATE(id, memberFxn) \ + ON_CONTROL(EN_UPDATE, id, memberFxn) +#define ON_EN_ERRSPACE(id, memberFxn) \ + ON_CONTROL(EN_ERRSPACE, id, memberFxn) +#define ON_EN_MAXTEXT(id, memberFxn) \ + ON_CONTROL(EN_MAXTEXT, id, memberFxn) +#define ON_EN_HSCROLL(id, memberFxn) \ + ON_CONTROL(EN_HSCROLL, id, memberFxn) +#define ON_EN_VSCROLL(id, memberFxn) \ + ON_CONTROL(EN_VSCROLL, id, memberFxn) + +// User Button Notification Codes +#define ON_BN_CLICKED(id, memberFxn) \ + ON_CONTROL(BN_CLICKED, id, memberFxn) +#define ON_BN_DOUBLECLICKED(id, memberFxn) \ + ON_CONTROL(BN_DOUBLECLICKED, id, memberFxn) +#define ON_BN_SETFOCUS(id, memberFxn) \ + ON_CONTROL(BN_SETFOCUS, id, memberFxn) +#define ON_BN_KILLFOCUS(id, memberFxn) \ + ON_CONTROL(BN_KILLFOCUS, id, memberFxn) + +// old BS_USERBUTTON button notifications - obsolete in Win31 +#define ON_BN_PAINT(id, memberFxn) \ + ON_CONTROL(BN_PAINT, id, memberFxn) +#define ON_BN_HILITE(id, memberFxn) \ + ON_CONTROL(BN_HILITE, id, memberFxn) +#define ON_BN_UNHILITE(id, memberFxn) \ + ON_CONTROL(BN_UNHILITE, id, memberFxn) +#define ON_BN_DISABLE(id, memberFxn) \ + ON_CONTROL(BN_DISABLE, id, memberFxn) + +// Listbox Notification Codes +#define ON_LBN_ERRSPACE(id, memberFxn) \ + ON_CONTROL(LBN_ERRSPACE, id, memberFxn) +#define ON_LBN_SELCHANGE(id, memberFxn) \ + ON_CONTROL(LBN_SELCHANGE, id, memberFxn) +#define ON_LBN_DBLCLK(id, memberFxn) \ + ON_CONTROL(LBN_DBLCLK, id, memberFxn) +#define ON_LBN_SELCANCEL(id, memberFxn) \ + ON_CONTROL(LBN_SELCANCEL, id, memberFxn) +#define ON_LBN_SETFOCUS(id, memberFxn) \ + ON_CONTROL(LBN_SETFOCUS, id, memberFxn) +#define ON_LBN_KILLFOCUS(id, memberFxn) \ + ON_CONTROL(LBN_KILLFOCUS, id, memberFxn) + +// Check Listbox Notification codes +#define CLBN_CHKCHANGE (40) +#define ON_CLBN_CHKCHANGE(id, memberFxn) \ + ON_CONTROL(CLBN_CHKCHANGE, id, memberFxn) + +// Combo Box Notification Codes +#define ON_CBN_ERRSPACE(id, memberFxn) \ + ON_CONTROL(CBN_ERRSPACE, id, memberFxn) +#define ON_CBN_SELCHANGE(id, memberFxn) \ + ON_CONTROL(CBN_SELCHANGE, id, memberFxn) +#define ON_CBN_DBLCLK(id, memberFxn) \ + ON_CONTROL(CBN_DBLCLK, id, memberFxn) +#define ON_CBN_SETFOCUS(id, memberFxn) \ + ON_CONTROL(CBN_SETFOCUS, id, memberFxn) +#define ON_CBN_KILLFOCUS(id, memberFxn) \ + ON_CONTROL(CBN_KILLFOCUS, id, memberFxn) +#define ON_CBN_EDITCHANGE(id, memberFxn) \ + ON_CONTROL(CBN_EDITCHANGE, id, memberFxn) +#define ON_CBN_EDITUPDATE(id, memberFxn) \ + ON_CONTROL(CBN_EDITUPDATE, id, memberFxn) +#define ON_CBN_DROPDOWN(id, memberFxn) \ + ON_CONTROL(CBN_DROPDOWN, id, memberFxn) +#define ON_CBN_CLOSEUP(id, memberFxn) \ + ON_CONTROL(CBN_CLOSEUP, id, memberFxn) +#define ON_CBN_SELENDOK(id, memberFxn) \ + ON_CONTROL(CBN_SELENDOK, id, memberFxn) +#define ON_CBN_SELENDCANCEL(id, memberFxn) \ + ON_CONTROL(CBN_SELENDCANCEL, id, memberFxn) + +///////////////////////////////////////////////////////////////////////////// +// User extensions for message map entries + +// for Windows messages +#define ON_MESSAGE(message, memberFxn) \ + { message, 0, 0, 0, AfxSig_lwl, \ + (AFX_PMSG)(AFX_PMSGW)(LRESULT (AFX_MSG_CALL CWnd::*)(WPARAM, LPARAM))&memberFxn }, + +// for Registered Windows messages +#define ON_REGISTERED_MESSAGE(nMessageVariable, memberFxn) \ + { 0xC000, 0, 0, 0, (UINT)(UINT*)(&nMessageVariable), \ + /*implied 'AfxSig_lwl'*/ \ + (AFX_PMSG)(AFX_PMSGW)(LRESULT (AFX_MSG_CALL CWnd::*)(WPARAM, LPARAM))&memberFxn }, + +// for Thread messages +#define ON_THREAD_MESSAGE(message, memberFxn) \ + { message, 0, 0, 0, AfxSig_vwl, \ + (AFX_PMSG)(AFX_PMSGT)(void (AFX_MSG_CALL CWinThread::*)(WPARAM, LPARAM))&memberFxn }, + +// for Registered Windows messages +#define ON_REGISTERED_THREAD_MESSAGE(nMessageVariable, memberFxn) \ + { 0xC000, 0, 0, 0, (UINT)(UINT*)(&nMessageVariable), \ + /*implied 'AfxSig_vwl'*/ \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(WPARAM, LPARAM))&memberFxn }, + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxmt.h b/public/sdk/inc/mfc42/afxmt.h new file mode 100644 index 000000000..d12d79aba --- /dev/null +++ b/public/sdk/inc/mfc42/afxmt.h @@ -0,0 +1,255 @@ +// 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. + +#ifndef __AFXMT_H__ +#define __AFXMT_H__ + +#ifdef _MAC + #error Multithreaded classes not supported in this library variant. +#endif + +#ifndef __AFX_H__ + #include <afx.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// AFXMT - MFC Multithreaded Extensions (Syncronization Objects) + +// Classes declared in this file + +//CObject + class CSyncObject; + class CSemaphore; + class CMutex; + class CEvent; + class CCriticalSection; + +class CSingleLock; +class CMultiLock; + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +///////////////////////////////////////////////////////////////////////////// +// Basic synchronization object + +class CSyncObject : public CObject +{ + DECLARE_DYNAMIC(CSyncObject) + +// Constructor +public: + CSyncObject(LPCTSTR pstrName); + +// Attributes +public: + operator HANDLE() const; + HANDLE m_hObject; + +// Operations + virtual BOOL Lock(DWORD dwTimeout = INFINITE); + virtual BOOL Unlock() = 0; + virtual BOOL Unlock(LONG /* lCount */, LPLONG /* lpPrevCount=NULL */) + { return TRUE; } + +// Implementation +public: + virtual ~CSyncObject(); +#ifdef _DEBUG + CString m_strName; + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + friend class CSingleLock; + friend class CMultiLock; +}; + +///////////////////////////////////////////////////////////////////////////// +// CSemaphore + +class CSemaphore : public CSyncObject +{ + DECLARE_DYNAMIC(CSemaphore) + +// Constructor +public: + CSemaphore(LONG lInitialCount = 1, LONG lMaxCount = 1, + LPCTSTR pstrName=NULL, LPSECURITY_ATTRIBUTES lpsaAttributes = NULL); + +// Implementation +public: + virtual ~CSemaphore(); + virtual BOOL Unlock(); + virtual BOOL Unlock(LONG lCount, LPLONG lprevCount = NULL); +}; + +///////////////////////////////////////////////////////////////////////////// +// CMutex + +class CMutex : public CSyncObject +{ + DECLARE_DYNAMIC(CMutex) + +// Constructor +public: + CMutex(BOOL bInitiallyOwn = FALSE, LPCTSTR lpszName = NULL, + LPSECURITY_ATTRIBUTES lpsaAttribute = NULL); + +// Implementation +public: + virtual ~CMutex(); + BOOL Unlock(); +}; + +///////////////////////////////////////////////////////////////////////////// +// CEvent + +class CEvent : public CSyncObject +{ + DECLARE_DYNAMIC(CEvent) + +// Constructor +public: + CEvent(BOOL bInitiallyOwn = FALSE, BOOL bManualReset = FALSE, + LPCTSTR lpszNAme = NULL, LPSECURITY_ATTRIBUTES lpsaAttribute = NULL); + +// Operations +public: + BOOL SetEvent(); + BOOL PulseEvent(); + BOOL ResetEvent(); + BOOL Unlock(); + +// Implementation +public: + virtual ~CEvent(); +}; + +///////////////////////////////////////////////////////////////////////////// +// CCriticalSection + +class CCriticalSection : public CSyncObject +{ + DECLARE_DYNAMIC(CCriticalSection) + +// Constructor +public: + CCriticalSection(); + +// Attributes +public: + operator CRITICAL_SECTION*(); + CRITICAL_SECTION m_sect; + +// Operations +public: + BOOL Unlock(); + BOOL Lock(); + BOOL Lock(DWORD dwTimeout); + +// Implementation +public: + virtual ~CCriticalSection(); +}; + +///////////////////////////////////////////////////////////////////////////// +// CSingleLock + +class CSingleLock +{ +// Constructors +public: + CSingleLock(CSyncObject* pObject, BOOL bInitialLock = FALSE); + +// Operations +public: + BOOL Lock(DWORD dwTimeOut = INFINITE); + BOOL Unlock(); + BOOL Unlock(LONG lCount, LPLONG lPrevCount = NULL); + BOOL IsLocked(); + +// Implementation +public: + ~CSingleLock(); + +protected: + CSyncObject* m_pObject; + HANDLE m_hObject; + BOOL m_bAcquired; +}; + +///////////////////////////////////////////////////////////////////////////// +// CMultiLock + +class CMultiLock +{ +// Constructor +public: + CMultiLock(CSyncObject* ppObjects[], DWORD dwCount, BOOL bInitialLock = FALSE); + +// Operations +public: + DWORD Lock(DWORD dwTimeOut = INFINITE, BOOL bWaitForAll = TRUE, + DWORD dwWakeMask = 0); + BOOL Unlock(); + BOOL Unlock(LONG lCount, LPLONG lPrevCount = NULL); + BOOL IsLocked(DWORD dwItem); + +// Implementation +public: + ~CMultiLock(); + +protected: + HANDLE m_hPreallocated[8]; + BOOL m_bPreallocated[8]; + + CSyncObject* const * m_ppObjectArray; + HANDLE* m_pHandleArray; + BOOL* m_bLockedArray; + DWORD m_dwCount; +}; + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXMT_INLINE inline +#include <afxmt.inl> +#undef _AFXMT_INLINE +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif // __AFXMT_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxmt.inl b/public/sdk/inc/mfc42/afxmt.inl new file mode 100644 index 000000000..036c5c2a4 --- /dev/null +++ b/public/sdk/inc/mfc42/afxmt.inl @@ -0,0 +1,50 @@ +// 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. + +// Inlines for AFXMT.H + +#ifdef _AFXMT_INLINE + +_AFXMT_INLINE CSyncObject::operator HANDLE() const + { return m_hObject;} + +_AFXMT_INLINE BOOL CSemaphore::Unlock() + { return Unlock(1, NULL); } + +_AFXMT_INLINE BOOL CEvent::SetEvent() + { ASSERT(m_hObject != NULL); return ::SetEvent(m_hObject); } +_AFXMT_INLINE BOOL CEvent::PulseEvent() + { ASSERT(m_hObject != NULL); return ::PulseEvent(m_hObject); } +_AFXMT_INLINE BOOL CEvent::ResetEvent() + { ASSERT(m_hObject != NULL); return ::ResetEvent(m_hObject); } + +_AFXMT_INLINE CSingleLock::~CSingleLock() + { Unlock(); } +_AFXMT_INLINE BOOL CSingleLock::IsLocked() + { return m_bAcquired; } + +_AFXMT_INLINE BOOL CMultiLock::IsLocked(DWORD dwObject) + { ASSERT(dwObject >= 0 && dwObject < m_dwCount); + return m_bLockedArray[dwObject]; } + +_AFXMT_INLINE CCriticalSection::CCriticalSection() : CSyncObject(NULL) + { ::InitializeCriticalSection(&m_sect); } +_AFXMT_INLINE CCriticalSection::operator CRITICAL_SECTION*() + { return (CRITICAL_SECTION*) &m_sect; } +_AFXMT_INLINE CCriticalSection::~CCriticalSection() + { ::DeleteCriticalSection(&m_sect); } +_AFXMT_INLINE BOOL CCriticalSection::Lock() + { ::EnterCriticalSection(&m_sect); return TRUE; } +_AFXMT_INLINE BOOL CCriticalSection::Lock(DWORD /* dwTimeout */) + { return Lock(); } +_AFXMT_INLINE BOOL CCriticalSection::Unlock() + { ::LeaveCriticalSection(&m_sect); return TRUE; } + +#endif //_AFXMT_INLINE diff --git a/public/sdk/inc/mfc42/afxodlgs.h b/public/sdk/inc/mfc42/afxodlgs.h new file mode 100644 index 000000000..dd887df4c --- /dev/null +++ b/public/sdk/inc/mfc42/afxodlgs.h @@ -0,0 +1,502 @@ +// 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. + +#ifndef __AFXODLGS_H__ +#define __AFXODLGS_H__ + +#ifdef _AFX_NO_OLE_SUPPORT + #error OLE classes not supported in this library variant. +#endif + +#ifndef __AFXOLE_H__ + #include <afxole.h> +#endif + +#ifndef __AFXDLGS_H__ + #include <afxdlgs.h> +#endif + +#ifdef _MAC + // include OLE dialog/helper APIs + #include <ole2ui.h> +#else + // include OLE dialog/helper APIs + #ifndef _OLEDLG_H_ + #include <oledlg.h> + #endif +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// AFXODLGS.H - MFC OLE dialogs + +// Classes declared in this file + +//CCommonDialog + class COleDialog; // base class for OLE dialog wrappers + class COleInsertDialog; // insert object dialog + class COleConvertDialog; // convert dialog + class COleChangeIconDialog; // change icon dialog + class COlePasteSpecialDialog; // paste special dialog + class COleLinksDialog; // edit links dialog + class COleUpdateDialog; // update links/embeddings dialog + class COleBusyDialog; // used for + class COlePropertiesDialog; + class COleChangeSourceDialog; + +///////////////////////////////////////////////////////////////////////////// + +// AFXDLL support +#undef AFX_DATA +#define AFX_DATA AFX_OLE_DATA + +///////////////////////////////////////////////////////////////////////////// +// COleUILinkInfo -- used internally to implement +// IOleUILinkInfo and IOleUILinkContainer +// used by COleLinksDialog and COleChangeSourceDialog + +class COleUILinkInfo : public IOleUILinkInfo +{ +public: + COleUILinkInfo(COleDocument* pDocument); + +// Implementation + COleDocument* m_pDocument; // document being manipulated + COleClientItem* m_pSelectedItem; // primary selected item in m_pDocument + POSITION m_pos; // used during link enumeration + BOOL m_bUpdateLinks; // update links? + BOOL m_bUpdateEmbeddings; // update embeddings? + + STDMETHOD_(ULONG, AddRef)(); + STDMETHOD_(ULONG, Release)(); + STDMETHOD(QueryInterface)(REFIID, LPVOID*); + + // IOleUILinkContainer + STDMETHOD_(DWORD,GetNextLink)(DWORD); + STDMETHOD(SetLinkUpdateOptions)(DWORD, DWORD); + STDMETHOD(GetLinkUpdateOptions)(DWORD, LPDWORD); + STDMETHOD(SetLinkSource)(DWORD, LPTSTR, ULONG, ULONG*, BOOL); + STDMETHOD(GetLinkSource)(DWORD, LPTSTR*, ULONG*, LPTSTR*, LPTSTR*, BOOL*, + BOOL*); + STDMETHOD(OpenLinkSource)(DWORD); + STDMETHOD(UpdateLink)(DWORD, BOOL, BOOL); + STDMETHOD(CancelLink)(DWORD); + // IOleUILinkInfo + STDMETHOD(GetLastUpdate)(DWORD dwLink, FILETIME* lpLastUpdate); +}; + +///////////////////////////////////////////////////////////////////////////// +// Wrappers for OLE UI dialogs + +class COleDialog : public CCommonDialog +{ + DECLARE_DYNAMIC(COleDialog) + +// Attributes +public: + UINT GetLastError() const; + +// Implementation +public: + int MapResult(UINT nResult); + COleDialog(CWnd* pParentWnd); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + UINT m_nLastError; + +protected: + friend UINT CALLBACK _AfxOleHookProc(HWND, UINT, WPARAM, LPARAM); +}; + +///////////////////////////////////////////////////////////////////////////// +// COleInsertDialog + +class COleInsertDialog : public COleDialog +{ + DECLARE_DYNAMIC(COleInsertDialog) + +// Attributes +public: + OLEUIINSERTOBJECT m_io; // structure for OleUIInsertObject + +// Constructors + COleInsertDialog(DWORD dwFlags = IOF_SELECTCREATENEW, + CWnd* pParentWnd = NULL); + +// Operations + virtual int DoModal(); + BOOL CreateItem(COleClientItem* pItem); + // call after DoModal to create item based on dialog data + +// Attributes (after DoModal returns IDOK) + enum Selection { createNewItem, insertFromFile, linkToFile }; + UINT GetSelectionType() const; + // return type of selection made + + CString GetPathName() const; // return full path name + REFCLSID GetClassID() const; // get class ID of new item + + DVASPECT GetDrawAspect() const; + // DVASPECT_CONTENT or DVASPECT_ICON + HGLOBAL GetIconicMetafile() const; + // returns HGLOBAL to METAFILEPICT struct with iconic data + +// Implementation +public: + virtual ~COleInsertDialog(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + TCHAR m_szFileName[_MAX_PATH]; + // contains full path name after return +}; + +///////////////////////////////////////////////////////////////////////////// +// COleConvertDialog + +class COleConvertDialog : public COleDialog +{ + DECLARE_DYNAMIC(COleConvertDialog) + +// Attributes +public: + OLEUICONVERT m_cv; // structure for OleUIConvert + +// Constructors + COleConvertDialog(COleClientItem* pItem, + DWORD dwFlags = CF_SELECTCONVERTTO, CLSID* pClassID = NULL, + CWnd* pParentWnd = NULL); + +// Operations + virtual int DoModal(); + // just display the dialog and collect convert info + BOOL DoConvert(COleClientItem* pItem); + // do the conversion on pItem (after DoModal == IDOK) + +// Attributes (after DoModal returns IDOK) + enum Selection { noConversion, convertItem, activateAs }; + UINT GetSelectionType() const; + + HGLOBAL GetIconicMetafile() const; // will return NULL if same as before + REFCLSID GetClassID() const; // get class ID to convert or activate as + DVASPECT GetDrawAspect() const; // get new draw aspect + +// Implementation +public: + virtual ~COleConvertDialog(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// COleChangeIconDialog + +class COleChangeIconDialog : public COleDialog +{ + DECLARE_DYNAMIC(COleChangeIconDialog) + +// Attributes +public: + OLEUICHANGEICON m_ci; // structure for OleUIChangeIcon + +// Constructors + COleChangeIconDialog(COleClientItem* pItem, + DWORD dwFlags = CIF_SELECTCURRENT, + CWnd* pParentWnd = NULL); + +// Operations + virtual int DoModal(); + BOOL DoChangeIcon(COleClientItem* pItem); + +// Attributes + HGLOBAL GetIconicMetafile() const; + +// Implementation +public: + virtual ~COleChangeIconDialog(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// COlePasteSpecialDialog + +class COlePasteSpecialDialog : public COleDialog +{ + DECLARE_DYNAMIC(COlePasteSpecialDialog) + +// Attributes +public: + OLEUIPASTESPECIAL m_ps; // structure for OleUIPasteSpecial + +// Constructors + COlePasteSpecialDialog(DWORD dwFlags = PSF_SELECTPASTE, + COleDataObject* pDataObject = NULL, CWnd *pParentWnd = NULL); + +// Operations + OLEUIPASTEFLAG AddLinkEntry(UINT cf); + void AddFormat(const FORMATETC& formatEtc, LPTSTR lpszFormat, + LPTSTR lpszResult, DWORD flags); + void AddFormat(UINT cf, DWORD tymed, UINT nFormatID, BOOL bEnableIcon, + BOOL bLink); + void AddStandardFormats(BOOL bEnableLink = TRUE); + + virtual int DoModal(); + BOOL CreateItem(COleClientItem *pNewItem); + // creates a standard OLE item from selection data + +// Attributes (after DoModal returns IDOK) + int GetPasteIndex() const; // resulting index to use for paste + + enum Selection { pasteLink = 1, pasteNormal = 2, pasteStatic = 3, pasteOther = 4}; + UINT GetSelectionType() const; + // get selection type (pasteLink, pasteNormal, pasteStatic) + + DVASPECT GetDrawAspect() const; + // DVASPECT_CONTENT or DVASPECT_ICON + HGLOBAL GetIconicMetafile() const; + // returns HGLOBAL to METAFILEPICT struct with iconic data + +// Implementation +public: + virtual ~COlePasteSpecialDialog(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + virtual void AssertValid() const; +#endif + unsigned int m_arrLinkTypes[8]; + // size limit imposed by MFCUIx32.DLL library +}; + +///////////////////////////////////////////////////////////////////////////// +// COleLinksDialog + +class COleLinksDialog : public COleDialog +{ + DECLARE_DYNAMIC(COleLinksDialog) + +// Attributes +public: + OLEUIEDITLINKS m_el; // structure for OleUIEditLinks + +// Constructors + COleLinksDialog(COleDocument* pDoc, CView* pView, DWORD dwFlags = 0, + CWnd* pParentWnd = NULL); + +// Operations + virtual int DoModal(); // display the dialog and edit links + +// Implementation +public: + virtual ~COleLinksDialog(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + virtual void AssertValid() const; +#endif + +public: + COleUILinkInfo m_xLinkInfo; // implements IOleUILinkContainer +}; + +///////////////////////////////////////////////////////////////////////////// +// COleUpdateDialog + +class COleUpdateDialog : public COleLinksDialog +{ + DECLARE_DYNAMIC(COleUpdateDialog) + +// Constructors +public: + COleUpdateDialog(COleDocument* pDoc, + BOOL bUpdateLinks = TRUE, BOOL bUpdateEmbeddings = FALSE, + CWnd* pParentWnd = NULL); + +// Operations + virtual int DoModal(); + +// Implementation +public: + virtual ~COleUpdateDialog(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + CString m_strCaption; // caption for the dialog +}; + +///////////////////////////////////////////////////////////////////////////// +// COleBusyDialog - useful in managing concurrency + +class COleBusyDialog : public COleDialog +{ + DECLARE_DYNAMIC(COleBusyDialog) + +// Attributes +public: + OLEUIBUSY m_bz; + +// Constructors + COleBusyDialog(HTASK htaskBusy, BOOL bNotResponding = FALSE, + DWORD dwFlags = 0, CWnd* pParentWnd = NULL); + +// Operations + virtual int DoModal(); + + enum Selection { switchTo = 1, retry = 2, callUnblocked = 3 }; + UINT GetSelectionType() const; + +// Implementation +public: + ~COleBusyDialog(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + Selection m_selection; // selection after DoModal returns IDOK +}; + +///////////////////////////////////////////////////////////////////////////// +// COleEditProperties + +class COlePropertiesDialog : public COleDialog +{ + DECLARE_DYNAMIC(COlePropertiesDialog) + +// Attributes +public: + OLEUIOBJECTPROPS m_op; // structure for OleUIObjectProperties + OLEUIGNRLPROPS m_gp; // specific to "General" page + OLEUIVIEWPROPS m_vp; // specific to "View" page + OLEUILINKPROPS m_lp; // specific to "Link" page + PROPSHEETHEADER m_psh; // PROPSHEETHEADER for customization + +// Constructors +public: + COlePropertiesDialog(COleClientItem* pItem, + UINT nScaleMin = 10, UINT nScaleMax = 500, CWnd* pParentWnd = NULL); + +// Operations + virtual int DoModal(); + +// Overridables + virtual BOOL OnApplyScale( + COleClientItem* pItem, int nCurrentScale, BOOL bRelativeToOrig); + +// Implementation +public: +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + virtual void AssertValid() const; +#endif + virtual BOOL OnInitDialog(); + + BEGIN_INTERFACE_PART(OleUIObjInfo, IOleUIObjInfo) + INIT_INTERFACE_PART(COlePropertiesDialog, OleUIObjInfo) + STDMETHOD(GetObjectInfo) (THIS_ DWORD dwObject, + DWORD* lpdwObjSize, LPTSTR* lplpszLabel, + LPTSTR* lplpszType, LPTSTR* lplpszShortType, + LPTSTR* lplpszLocation); + STDMETHOD(GetConvertInfo) (THIS_ DWORD dwObject, + CLSID* lpClassID, WORD* lpwFormat, + CLSID* lpConvertDefaultClassID, + LPCLSID* lplpClsidExclude, UINT* lpcClsidExclude); + STDMETHOD(ConvertObject) (THIS_ DWORD dwObject, REFCLSID clsidNew); + STDMETHOD(GetViewInfo) (THIS_ DWORD dwObject, + HGLOBAL* phMetaPict, DWORD* pdvAspect, int* pnCurrentScale); + STDMETHOD(SetViewInfo) (THIS_ DWORD dwObject, + HGLOBAL hMetaPict, DWORD dvAspect, + int nCurrentScale, BOOL bRelativeToOrig); + END_INTERFACE_PART(OleUIObjInfo) + COleUILinkInfo m_xLinkInfo; // implements IOleUILinkContainer +}; + +///////////////////////////////////////////////////////////////////////////// +// COleChangeSourceDialog + +class COleChangeSourceDialog : public COleDialog +{ + DECLARE_DYNAMIC(COleChangeSourceDialog) + +// Attributes +public: + OLEUICHANGESOURCE m_cs; // structure for OleUIChangeSource + +// Constructors +public: + COleChangeSourceDialog(COleClientItem* pItem, CWnd* pParentWnd = NULL); + +// Operations + virtual int DoModal(); + +// Attributes (after DoModal returns IDOK) + BOOL IsValidSource(); + CString GetDisplayName(); + CString GetFileName(); + CString GetItemName(); + CString GetFromPrefix(); + CString GetToPrefix(); + +// Implementation +public: + COleUILinkInfo m_xLinkInfo; + + virtual ~COleChangeSourceDialog(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + virtual void AssertValid() const; +#endif + virtual void PreInitDialog(); +}; + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXODLGS_INLINE inline +#include <afxole.inl> +#undef _AFXODLGS_INLINE +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif //__AFXODLGS_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxole.h b/public/sdk/inc/mfc42/afxole.h new file mode 100644 index 000000000..9133184b9 --- /dev/null +++ b/public/sdk/inc/mfc42/afxole.h @@ -0,0 +1,1907 @@ +// 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. + +#ifndef __AFXOLE_H__ +#define __AFXOLE_H__ + +#ifdef _AFX_NO_OLE_SUPPORT + #error OLE classes not supported in this library variant. +#endif + +#ifndef __AFXEXT_H__ + #include <afxext.h> +#endif + +#ifndef __AFXDISP_H__ + #include <afxdisp.h> +#endif + +// include OLE Compound Document headers +#ifndef _OLE2_H_ + #include <ole2.h> +#endif + +#ifndef __docobj_h__ + #include <docobj.h> +#endif + +#ifndef __datapath_h__ + #include <datapath.h> +#endif + +#ifndef __AFXCOM_H__ +#include <afxcom_.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + + +#ifndef _AFX_NOFORCE_LIBS + +#ifndef _MAC + #pragma comment(lib, "urlmon.lib") +#endif // !_MAC + +#endif // !_AFX_NOFORCE_LIBS + +///////////////////////////////////////////////////////////////////////////// +// AFXOLE.H - MFC OLE support + +// Classes declared in this file + +//CDocument + class COleDocument; // OLE container document + class COleLinkingDoc; // supports links to embeddings + class COleServerDoc; // OLE server document + class CDocObjectServer; // might be owned by a COleServerDoc + +//CCmdTarget + class CDocItem; // part of a document + class COleClientItem; // embedded ole object from outside + class COleServerItem; // ole object to export + class COleDataSource; // clipboard data source mechanism + class COleDropSource; // drag/drop source + class COleDropTarget; // drag/drop target + class COleMessageFilter; // concurrency management + +//CFrameWnd + class COleIPFrameWnd; // frame window for in-place servers + +//CControlBar +#ifndef _MAC + class COleResizeBar; // implements in-place resizing +#endif + +//CFile + class COleStreamFile; // CFile wrapper for IStream interface + class CMonikerFile; // bound to via IMoniker +#ifndef _MAC + class CAsyncMonikerFile;// asynchronous IMoniker +#endif + +class COleDataObject; // wrapper for IDataObject interface + +///////////////////////////////////////////////////////////////////////////// + +// AFXDLL support +#undef AFX_DATA +#define AFX_DATA AFX_OLE_DATA + +///////////////////////////////////////////////////////////////////////////// +// backward compatibility + +// COleClientDoc is now obsolete -- use COleDocument instead +#define COleClientDoc COleDocument + +// COleServer has been replaced by the more general COleObjectFactory +#define COleServer COleObjectFactory + +///////////////////////////////////////////////////////////////////////////// +// Useful OLE specific types (some from OLE 1.0 headers) + +// Codes for CallBack events +enum OLE_NOTIFICATION +{ + OLE_CHANGED, // representation of a draw aspect has changed + OLE_SAVED, // the item has committed its storage + OLE_CLOSED, // the item has closed + OLE_RENAMED, // the item has changed its moniker + OLE_CHANGED_STATE, // the item state (open, active, etc.) has changed + OLE_CHANGED_ASPECT, // the item draw aspect has changed +}; + +// Object types +enum OLE_OBJTYPE +{ + OT_UNKNOWN = 0, + + // These are OLE 1.0 types and OLE 2.0 types as returned from GetType(). + OT_LINK = 1, + OT_EMBEDDED = 2, + OT_STATIC = 3, + + // All OLE2 objects are written with this tag when serialized. This + // differentiates them from OLE 1.0 objects written with MFC 2.0. + // This value will never be returned from GetType(). + OT_OLE2 = 256, +}; + +///////////////////////////////////////////////////////////////////////////// +// COleDataObject -- simple wrapper for IDataObject + +class COleDataObject +{ +// Constructors +public: + COleDataObject(); + +// Operations + void Attach(LPDATAOBJECT lpDataObject, BOOL bAutoRelease = TRUE); + LPDATAOBJECT Detach(); // detach and get ownership of m_lpDataObject + void Release(); // detach and Release ownership of m_lpDataObject + BOOL AttachClipboard(); // attach to current clipboard object + +// Attributes + void BeginEnumFormats(); + BOOL GetNextFormat(LPFORMATETC lpFormatEtc); + CFile* GetFileData(CLIPFORMAT cfFormat, LPFORMATETC lpFormatEtc = NULL); + HGLOBAL GetGlobalData(CLIPFORMAT cfFormat, LPFORMATETC lpFormatEtc = NULL); + BOOL GetData(CLIPFORMAT cfFormat, LPSTGMEDIUM lpStgMedium, + LPFORMATETC lpFormatEtc = NULL); + BOOL IsDataAvailable(CLIPFORMAT cfFormat, LPFORMATETC lpFormatEtc = NULL); + +// Implementation +public: + LPDATAOBJECT m_lpDataObject; + LPENUMFORMATETC m_lpEnumerator; + ~COleDataObject(); + + // advanced use and implementation + LPDATAOBJECT GetIDataObject(BOOL bAddRef); + void EnsureClipboardObject(); + BOOL m_bClipboard; // TRUE if represents the Win32 clipboard + +protected: + BOOL m_bAutoRelease; // TRUE if destructor should call Release + +private: + // Disable the copy constructor and assignment by default so you will get + // compiler errors instead of unexpected behaviour if you pass objects + // by value or assign objects. + COleDataObject(const COleDataObject&); // no implementation + void operator=(const COleDataObject&); // no implementation +}; + +///////////////////////////////////////////////////////////////////////////// +// COleDataSource -- wrapper for implementing IDataObject +// (works similar to how data is provided on the clipboard) + +struct AFX_DATACACHE_ENTRY; +class COleDropSource; + +class COleDataSource : public CCmdTarget +{ +// Constructors +public: + COleDataSource(); + +// Operations + void Empty(); // empty cache (similar to ::EmptyClipboard) + + // CacheData & DelayRenderData operations similar to ::SetClipboardData + void CacheGlobalData(CLIPFORMAT cfFormat, HGLOBAL hGlobal, + LPFORMATETC lpFormatEtc = NULL); // for HGLOBAL based data + void DelayRenderFileData(CLIPFORMAT cfFormat, + LPFORMATETC lpFormatEtc = NULL); // for CFile* based delayed render + + // Clipboard and Drag/Drop access + DROPEFFECT DoDragDrop( + DWORD dwEffects = DROPEFFECT_COPY|DROPEFFECT_MOVE|DROPEFFECT_LINK, + LPCRECT lpRectStartDrag = NULL, + COleDropSource* pDropSource = NULL); + void SetClipboard(); + static void PASCAL FlushClipboard(); + static COleDataSource* PASCAL GetClipboardOwner(); + + // Advanced: STGMEDIUM based cached data + void CacheData(CLIPFORMAT cfFormat, LPSTGMEDIUM lpStgMedium, + LPFORMATETC lpFormatEtc = NULL); // for LPSTGMEDIUM based data + // Advanced: STGMEDIUM or HGLOBAL based delayed render + void DelayRenderData(CLIPFORMAT cfFormat, LPFORMATETC lpFormatEtc = NULL); + + // Advanced: support for SetData in COleServerItem + // (not generally useful for clipboard or drag/drop operations) + void DelaySetData(CLIPFORMAT cfFormat, LPFORMATETC lpFormatEtc = NULL); + +// Overidables + virtual BOOL OnRenderGlobalData(LPFORMATETC lpFormatEtc, HGLOBAL* phGlobal); + virtual BOOL OnRenderFileData(LPFORMATETC lpFormatEtc, CFile* pFile); + virtual BOOL OnRenderData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium); + // OnRenderFileData and OnRenderGlobalData are called by + // the default implementation of OnRenderData. + + virtual BOOL OnSetData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium, + BOOL bRelease); + // used only in COleServerItem implementation + +// Implementation +public: + virtual ~COleDataSource(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + AFX_DATACACHE_ENTRY* m_pDataCache; // data cache itself + UINT m_nMaxSize; // current allocated size + UINT m_nSize; // current size of the cache + UINT m_nGrowBy; // number of cache elements to grow by for new allocs + + AFX_DATACACHE_ENTRY* Lookup( + LPFORMATETC lpFormatEtc, DATADIR nDataDir) const; + AFX_DATACACHE_ENTRY* GetCacheEntry( + LPFORMATETC lpFormatEtc, DATADIR nDataDir); + +// Interface Maps +public: + BEGIN_INTERFACE_PART(DataObject, IDataObject) + INIT_INTERFACE_PART(COleDataSource, DataObject) + STDMETHOD(GetData)(LPFORMATETC, LPSTGMEDIUM); + STDMETHOD(GetDataHere)(LPFORMATETC, LPSTGMEDIUM); + STDMETHOD(QueryGetData)(LPFORMATETC); + STDMETHOD(GetCanonicalFormatEtc)(LPFORMATETC, LPFORMATETC); + STDMETHOD(SetData)(LPFORMATETC, LPSTGMEDIUM, BOOL); + STDMETHOD(EnumFormatEtc)(DWORD, LPENUMFORMATETC*); + STDMETHOD(DAdvise)(LPFORMATETC, DWORD, LPADVISESINK, LPDWORD); + STDMETHOD(DUnadvise)(DWORD); + STDMETHOD(EnumDAdvise)(LPENUMSTATDATA*); + END_INTERFACE_PART(DataObject) + + DECLARE_INTERFACE_MAP() + + friend class COleServerItem; +}; + +////////////////////////////////////////////////////////////////////////////// +// DocItem support + +class CDocItem : public CCmdTarget +{ + DECLARE_SERIAL(CDocItem) + +// Constructors +protected: // abstract class + CDocItem(); + +// Attributes +public: + CDocument* GetDocument() const; // return container document + +// Overridables +public: + // Raw data access (native format) + virtual BOOL IsBlank() const; + +// Implementation +protected: + COleDocument* m_pDocument; + +public: + virtual void Serialize(CArchive& ar); // for Native data + virtual ~CDocItem(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + friend class COleDocument; // for access to back pointer +}; + +////////////////////////////////////////////////////////////////////////////// +// COleDocument - common OLE container behavior (enables server functionality) + +class COleDocument : public CDocument +{ + DECLARE_DYNAMIC(COleDocument) + +// Constructors +public: + COleDocument(); + +// Attributes + BOOL HasBlankItems() const; // check for BLANK items + virtual COleClientItem* GetInPlaceActiveItem(CWnd* pWnd); + // return in-place active item for this view or NULL if none + +// Operations + // iterating over existing items + virtual POSITION GetStartPosition() const; + virtual CDocItem* GetNextItem(POSITION& pos) const; + + // iterator helpers (helpers use virtual GetNextItem above) + COleClientItem* GetNextClientItem(POSITION& pos) const; + COleServerItem* GetNextServerItem(POSITION& pos) const; + + // adding new items - called from item constructors + virtual void AddItem(CDocItem* pItem); + virtual void RemoveItem(CDocItem* pItem); + + void EnableCompoundFile(BOOL bEnable = TRUE); + // enable compound file support (only call during constructor) + virtual void UpdateModifiedFlag(); + // scan for modified items -- mark document modified + + // printer-device caching/control + BOOL ApplyPrintDevice(const DVTARGETDEVICE* ptd); + BOOL ApplyPrintDevice(const PRINTDLG* ppd); + // these apply the target device to all COleClientItem objects + +// Overridables + virtual COleClientItem* GetPrimarySelectedItem(CView* pView); + // return primary selected item or NULL if none + virtual void OnShowViews(BOOL bVisible); + // called during app-idle when visibility of a document has changed + +// Implementation +public: + CObList m_docItemList; // not owned items + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + CFrameWnd* GetFirstFrame(); + + // document handling overrides + virtual void SetPathName(LPCTSTR lpszPathName, BOOL bAddToMRU = TRUE); + virtual ~COleDocument(); + virtual void DeleteContents(); // delete client items in list + virtual void Serialize(CArchive& ar); // serialize items to file + virtual void PreCloseFrame(CFrameWnd* pFrame); + virtual BOOL SaveModified(); + virtual void OnIdle(); + + // compound file implementation + virtual BOOL OnNewDocument(); + virtual BOOL OnOpenDocument(LPCTSTR lpszPathName); + virtual BOOL OnSaveDocument(LPCTSTR lpszPathName); + virtual void OnCloseDocument(); + void CommitItems(BOOL bSuccess); // called during File.Save & File.Save As + + // minimal linking protocol + virtual LPMONIKER GetMoniker(OLEGETMONIKER nAssign); + virtual LPOLEITEMCONTAINER GetContainer(); + +protected: + // document state implementation + UINT m_dwNextItemNumber;// serial number for next item in this document + BOOL m_bLastVisible; // TRUE if one or more views was last visible + + // 'docfile' support + BOOL m_bCompoundFile; // TRUE if use compound files + LPSTORAGE m_lpRootStg; // root storage for the document + BOOL m_bSameAsLoad; // TRUE = file-save, FALSE = Save [Copy] As + BOOL m_bRemember; // if FALSE, indicates Save Copy As + + DVTARGETDEVICE* m_ptd; // current document target device + + // implementation helpers + virtual void LoadFromStorage(); + virtual void SaveToStorage(CObject* pObject = NULL); + CDocItem* GetNextItemOfKind(POSITION& pos, CRuntimeClass* pClass) const; + + // command handling + virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, + AFX_CMDHANDLERINFO* pHandlerInfo); + + afx_msg void OnUpdatePasteMenu(CCmdUI* pCmdUI); + afx_msg void OnUpdatePasteLinkMenu(CCmdUI* pCmdUI); + afx_msg void OnUpdateEditLinksMenu(CCmdUI* pCmdUI); + afx_msg void OnEditLinks(); + afx_msg void OnEditConvert(); + afx_msg void OnUpdateEditChangeIcon(CCmdUI* pCmdUI); + afx_msg void OnEditChangeIcon(); + afx_msg void OnUpdateObjectVerbMenu(CCmdUI* pCmdUI); + afx_msg void OnFileSendMail(); + + friend class COleClientItem; + friend class COleServerItem; +}; + +///////////////////////////////////////////////////////////////////////////// +// COleClientItem - Supports OLE2 non-inplace editing. +// implements IOleClientSite, IAdviseSink, and IOleInPlaceSite + +class COleFrameHook; // forward reference (see ..\src\oleimpl.h) + +class COleClientItem : public CDocItem +{ + DECLARE_DYNAMIC(COleClientItem) + +// Constructors +public: + COleClientItem(COleDocument* pContainerDoc = NULL); + + // create from the clipboard + BOOL CreateFromClipboard(OLERENDER render = OLERENDER_DRAW, + CLIPFORMAT cfFormat = 0, LPFORMATETC lpFormatEtc = NULL); + BOOL CreateLinkFromClipboard(OLERENDER render = OLERENDER_DRAW, + CLIPFORMAT cfFormat = 0, LPFORMATETC lpFormatEtc = NULL); + BOOL CreateStaticFromClipboard(OLERENDER render = OLERENDER_DRAW, + CLIPFORMAT cfFormat = 0, LPFORMATETC lpFormatEtc = NULL); + + // create from a class ID (Insert New Object dialog) + BOOL CreateNewItem(REFCLSID clsid, OLERENDER render = OLERENDER_DRAW, + CLIPFORMAT cfFormat = 0, LPFORMATETC lpFormatEtc = NULL); + + // create from COleDataObject + BOOL CreateFromData(COleDataObject* pDataObject, + OLERENDER render = OLERENDER_DRAW, + CLIPFORMAT cfFormat = 0, LPFORMATETC lpFormatEtc = NULL); + BOOL CreateLinkFromData(COleDataObject* pDataObject, + OLERENDER render = OLERENDER_DRAW, + CLIPFORMAT cfFormat = 0, LPFORMATETC lpFormatEtc = NULL); + BOOL CreateStaticFromData(COleDataObject* pDataObject, + OLERENDER render = OLERENDER_DRAW, + CLIPFORMAT cfFormat = 0, LPFORMATETC lpFormatEtc = NULL); + + // create from file (package support) + BOOL CreateFromFile(LPCTSTR lpszFileName, REFCLSID clsid = CLSID_NULL, + OLERENDER render = OLERENDER_DRAW, + CLIPFORMAT cfFormat = 0, LPFORMATETC lpFormatEtc = NULL); + BOOL CreateLinkFromFile(LPCTSTR lpszFileName, + OLERENDER render = OLERENDER_DRAW, + CLIPFORMAT cfFormat = 0, LPFORMATETC lpFormatEtc = NULL); + + // create a copy + BOOL CreateCloneFrom(const COleClientItem* pSrcItem); + +// General Attributes +public: + SCODE GetLastStatus() const; + OLE_OBJTYPE GetType() const; // OT_LINK, OT_EMBEDDED, OT_STATIC + void GetClassID(CLSID* pClassID) const; + void GetUserType(USERCLASSTYPE nUserClassType, CString& rString); + BOOL GetExtent(LPSIZE lpSize, DVASPECT nDrawAspect = (DVASPECT)-1); + // will return FALSE if item is BLANK + BOOL GetCachedExtent(LPSIZE lpSize, DVASPECT nDrawAspect = (DVASPECT)-1); + + // getting/setting iconic cache + HGLOBAL GetIconicMetafile(); + BOOL SetIconicMetafile(HGLOBAL hMetaPict); + + // setting/getting default display aspect + DVASPECT GetDrawAspect() const; + virtual void SetDrawAspect(DVASPECT nDrawAspect); + + // for printer presentation cache + BOOL SetPrintDevice(const DVTARGETDEVICE* ptd); + BOOL SetPrintDevice(const PRINTDLG* ppd); + + // Item state + enum ItemState + { emptyState, loadedState, openState, activeState, activeUIState }; + UINT GetItemState() const; + + BOOL IsModified() const; + BOOL IsRunning() const; + BOOL IsInPlaceActive() const; + BOOL IsOpen() const; + CView* GetActiveView() const; + + // Data access + void AttachDataObject(COleDataObject& rDataObject) const; + + // other rare access information + COleDocument* GetDocument() const; // return container + + // helpers for checking clipboard data availability + static BOOL PASCAL CanPaste(); + static BOOL PASCAL CanPasteLink(); + + // helpers for checking COleDataObject, useful in drag drop + static BOOL PASCAL CanCreateFromData(const COleDataObject* pDataObject); + static BOOL PASCAL CanCreateLinkFromData(const COleDataObject* pDataObject); + +// General Operations + virtual void Release(OLECLOSE dwCloseOption = OLECLOSE_NOSAVE); + // cleanup, detach (close if needed) + void Close(OLECLOSE dwCloseOption = OLECLOSE_SAVEIFDIRTY); + // close without releasing the item + void Delete(BOOL bAutoDelete = TRUE); + // logically delete from file -- not part of the document anymore + void Run(); // insure item is in running state + + // Drawing + BOOL Draw(CDC* pDC, LPCRECT lpBounds, + DVASPECT nDrawAspect = (DVASPECT)-1); // defaults to m_nDrawAspect + + // Activation + virtual BOOL DoVerb(LONG nVerb, CView* pView, LPMSG lpMsg = NULL); + void Activate(LONG nVerb, CView* pView, LPMSG lpMsg = NULL); + + // In-place Activation + void Deactivate(); // completely deactivate + void DeactivateUI(); // deactivate the user interface + BOOL ReactivateAndUndo(); // reactivate then perform undo command + BOOL SetItemRects(LPCRECT lpPosRect = NULL, LPCRECT lpClipRect = NULL); + CWnd* GetInPlaceWindow(); + + // Clipboard operations + void CopyToClipboard(BOOL bIncludeLink = FALSE); + DROPEFFECT DoDragDrop(LPCRECT lpItemRect, CPoint ptOffset, + BOOL bIncludeLink = FALSE, + DWORD dwEffects = DROPEFFECT_COPY|DROPEFFECT_MOVE, + LPCRECT lpRectStartDrag = NULL); + void GetClipboardData(COleDataSource* pDataSource, + BOOL bIncludeLink = FALSE, LPPOINT lpOffset = NULL, + LPSIZE lpSize = NULL); + + // called for creating a COleDataSource by CopyToClipboard and DoDragDrop + virtual COleDataSource* OnGetClipboardData(BOOL bIncludeLink, + LPPOINT lpOffset, LPSIZE lpSize); + + // Operations that apply to embedded items only + void SetHostNames(LPCTSTR lpszHost, LPCTSTR lpszHostObj); + void SetExtent(const CSize& size, DVASPECT nDrawAspect = DVASPECT_CONTENT); + + // Operations that apply to linked items only + // (link options are rarely changed, except through Links dialog) + OLEUPDATE GetLinkUpdateOptions(); + void SetLinkUpdateOptions(OLEUPDATE dwUpdateOpt); + + // Link-source update status (also useful for embeddings that contain links) + BOOL UpdateLink(); // make up-to-date + BOOL IsLinkUpToDate() const; // is link up-to-date + + // object conversion + virtual BOOL ConvertTo(REFCLSID clsidNew); + virtual BOOL ActivateAs(LPCTSTR lpszUserType, REFCLSID clsidOld, REFCLSID clsidNew); + BOOL Reload(); // for lazy reload after ActivateAs + +// Overridables (notifications of IAdviseSink, IOleClientSite and IOleInPlaceSite) + // Callbacks/notifications from the server you must/should implement + virtual void OnChange(OLE_NOTIFICATION nCode, DWORD dwParam); + // implement OnChange to invalidate when item changes + +protected: + virtual void OnGetItemPosition(CRect& rPosition); + // implement OnGetItemPosition if you support in-place activation + + // Common overrides for in-place activation + virtual BOOL OnScrollBy(CSize sizeExtent); + + // Common overrides for applications supporting undo + virtual void OnDiscardUndoState(); + virtual void OnDeactivateAndUndo(); + +public: + virtual void OnDeactivateUI(BOOL bUndoable); + +protected: + // Common overrides for applications supporting links to embeddings + virtual void OnShowItem(); + + // Advanced overrides for in-place activation + virtual void OnGetClipRect(CRect& rClipRect); + virtual BOOL CanActivate(); + +public: + virtual void OnActivate(); + virtual void OnActivateUI(); + virtual void OnDeactivate(); + +protected: + virtual BOOL OnGetWindowContext(CFrameWnd** ppMainFrame, + CFrameWnd** ppDocFrame, LPOLEINPLACEFRAMEINFO lpFrameInfo); + virtual BOOL OnChangeItemPosition(const CRect& rectPos); + // default calls SetItemRects and caches the pos rect + +public: + // Advanced overrides for menu/title handling (rarely overridden) + virtual void OnInsertMenus(CMenu* pMenuShared, + LPOLEMENUGROUPWIDTHS lpMenuWidths); + virtual void OnSetMenu(CMenu* pMenuShared, HOLEMENU holemenu, + HWND hwndActiveObject); + virtual void OnRemoveMenus(CMenu* pMenuShared); + virtual BOOL OnUpdateFrameTitle(); + + // Advanced override for control bar handling + virtual BOOL OnShowControlBars(CFrameWnd* pFrameWnd, BOOL bShow); + +// Implementation +public: + // data to support non-inplace activated items + LPOLEOBJECT m_lpObject; // in case you want direct access to the OLE object + LPVIEWOBJECT2 m_lpViewObject;// IViewObject for IOleObject above + DWORD m_dwItemNumber; // serial number for this item in this document + DVASPECT m_nDrawAspect; // current default display aspect + SCODE m_scLast; // last error code encountered + LPSTORAGE m_lpStorage; // provides storage for m_lpObject + LPLOCKBYTES m_lpLockBytes; // part of implementation of m_lpStorage + DWORD m_dwConnection; // advise connection to the m_lpObject + BYTE m_bLinkUnavail; // TRUE if link is currently unavailable + BYTE m_bMoniker; // TRUE if moniker is assigned + BYTE m_bLocked; // TRUE if object has external lock + BYTE m_bNeedCommit; // TRUE if need CommitItem + BYTE m_bClosing; // TRUE if currently doing COleClientItem::Close + BYTE m_bReserved[3]; // (reserved for future use) + + // for compound file support + LPSTORAGE m_lpNewStorage; // used during Save As situations + + // item state & item type + ItemState m_nItemState; // item state (see ItemState enumeration) + OLE_OBJTYPE m_nItemType; // item type (depends on how created) + + // data valid when in-place activated + CView* m_pView; // view when object is in-place activated + DWORD m_dwContainerStyle; // style of the container wnd before activation + COleFrameHook* m_pInPlaceFrame;// frame window when in-place active + COleFrameHook* m_pInPlaceDoc; // doc window when in-place (may be NULL) + HWND m_hWndServer; // HWND of in-place server window + +public: + virtual ~COleClientItem(); + virtual void Serialize(CArchive& ar); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +// Implementation +public: + virtual BOOL ReportError(SCODE sc) const; + virtual BOOL FreezeLink(); // converts to static: for edit links dialog + + DWORD GetNewItemNumber(); // generates new item number + void GetItemName(LPTSTR lpszItemName) const; // gets readable item name + + void UpdateItemType(); // update m_nItemType + +protected: + // clipboard helpers + void GetEmbeddedItemData(LPSTGMEDIUM lpStgMedium); + void AddCachedData(COleDataSource* pDataSource); + BOOL GetLinkSourceData(LPSTGMEDIUM lpStgMedium); + void GetObjectDescriptorData(LPPOINT lpOffset, LPSIZE lpSize, + LPSTGMEDIUM lpStgMedium); + + // interface helpers + virtual LPOLECLIENTSITE GetClientSite(); + + // helpers for printer-cached representation + BOOL GetPrintDeviceInfo(LPOLECACHE* plpOleCache, + DVTARGETDEVICE** pptd, DWORD* pdwConnection); + +// Advanced Overridables for implementation +protected: + virtual BOOL FinishCreate(SCODE sc); + virtual void CheckGeneral(SCODE sc); + + virtual void OnDataChange(LPFORMATETC lpFormatEtc, + LPSTGMEDIUM lpStgMedium); + +public: + // for storage hookability (override to use 'docfiles') + virtual void GetItemStorage(); // allocate storage for new item + virtual void ReadItem(CArchive& ar); // read item from archive + virtual void WriteItem(CArchive& ar); // write item to archive + virtual void CommitItem(BOOL bSuccess); // commit item's storage + + // compound & flat file implementations of above + void GetItemStorageFlat(); + void ReadItemFlat(CArchive& ar); + void WriteItemFlat(CArchive& ar); + void GetItemStorageCompound(); + void ReadItemCompound(CArchive& ar); + void WriteItemCompound(CArchive& ar); + +// Interface Maps +public: + BEGIN_INTERFACE_PART(OleClientSite, IOleClientSite) + INIT_INTERFACE_PART(COleClientItem, OleClientSite) + STDMETHOD(SaveObject)(); + STDMETHOD(GetMoniker)(DWORD, DWORD, LPMONIKER*); + STDMETHOD(GetContainer)(LPOLECONTAINER*); + STDMETHOD(ShowObject)(); + STDMETHOD(OnShowWindow)(BOOL); + STDMETHOD(RequestNewObjectLayout)(); + END_INTERFACE_PART(OleClientSite) + + BEGIN_INTERFACE_PART(AdviseSink, IAdviseSink) + INIT_INTERFACE_PART(COleClientItem, AdviseSink) + STDMETHOD_(void,OnDataChange)(LPFORMATETC, LPSTGMEDIUM); + STDMETHOD_(void,OnViewChange)(DWORD, LONG); + STDMETHOD_(void,OnRename)(LPMONIKER); + STDMETHOD_(void,OnSave)(); + STDMETHOD_(void,OnClose)(); + END_INTERFACE_PART(AdviseSink) + + BEGIN_INTERFACE_PART(OleIPSite, IOleInPlaceSite) + INIT_INTERFACE_PART(COleClientItem, OleIPSite) + STDMETHOD(GetWindow)(HWND*); + STDMETHOD(ContextSensitiveHelp)(BOOL); + STDMETHOD(CanInPlaceActivate)(); + STDMETHOD(OnInPlaceActivate)(); + STDMETHOD(OnUIActivate)(); + STDMETHOD(GetWindowContext)(LPOLEINPLACEFRAME*, + LPOLEINPLACEUIWINDOW*, LPRECT, LPRECT, LPOLEINPLACEFRAMEINFO); + STDMETHOD(Scroll)(SIZE); + STDMETHOD(OnUIDeactivate)(BOOL); + STDMETHOD(OnInPlaceDeactivate)(); + STDMETHOD(DiscardUndoState)(); + STDMETHOD(DeactivateAndUndo)(); + STDMETHOD(OnPosRectChange)(LPCRECT); + END_INTERFACE_PART(OleIPSite) + + DECLARE_INTERFACE_MAP() + +// Friendship declarations (to avoid many public members) + friend class COleUIWindow; + friend class COleFrameWindow; + friend class COleLinkingDoc; +}; + +///////////////////////////////////////////////////////////////////////////// +// COleServerItem - IOleObject & IDataObject OLE component + +class COleServerItem : public CDocItem +{ + DECLARE_DYNAMIC(COleServerItem) +protected: + // NOTE: many members in this class are protected - since everything + // in this class is designed for implementing an OLE server. + // Requests will come from OLE containers through non-C++ mechanisms, + // which will result in virtual functions in this class being called. + +// Constructors + COleServerItem(COleServerDoc* pServerDoc, BOOL bAutoDelete); + // If your COleServerItem is an integral part of your data, + // bAutoDelete should be FALSE. If your COleServerItem can be + // deleted when a link is released, it can be TRUE. + + COleDataSource* GetDataSource(); + // Use this data source to add conversion formats that your + // server should support. Usually such formats are + // added in the item's constructor. + +// Public Attributes +public: + COleServerDoc* GetDocument() const; // return server document + + // naming (for links only) + const CString& GetItemName() const; // get name of linked item + void SetItemName(LPCTSTR lpszItemName); // set name of linked item + + // link state + BOOL IsConnected() const; // returns TRUE if item has a client + BOOL IsLinkedItem() const; // returns TRUE if item is not embedded item + + // extents + CSize m_sizeExtent; + // HIMETRIC size -- the default implementation of OnSetExtent + // updates this member variable. This member tells the server how + // much of the object is visible in the container document. + +// Operations +public: + void NotifyChanged(DVASPECT nDrawAspect = DVASPECT_CONTENT); + // call this after you change item + void CopyToClipboard(BOOL bIncludeLink = FALSE); + // helper for implementing server 'copy to clipboard' + DROPEFFECT DoDragDrop(LPCRECT lpRectItem, CPoint ptOffset, + BOOL bIncludeLink = FALSE, + DWORD dwEffects = DROPEFFECT_COPY|DROPEFFECT_MOVE, + LPCRECT lpRectStartDrag = NULL); + void GetClipboardData(COleDataSource* pDataSource, + BOOL bIncludeLink = FALSE, LPPOINT lpOffset = NULL, + LPSIZE lpSize = NULL); + +// Overridables + // overridables you must implement for yourself + virtual BOOL OnDraw(CDC* pDC, CSize& rSize) = 0; + // drawing for metafile format (return FALSE if not supported or error) + // (called for DVASPECT_CONTENT only) + + // overridables you may want to implement yourself + virtual void OnUpdate(COleServerItem* pSender, + LPARAM lHint, CObject* pHint, DVASPECT nDrawAspect); + // the default implementation always calls NotifyChanged + + virtual BOOL OnDrawEx(CDC* pDC, DVASPECT nDrawAspect, CSize& rSize); + // advanced drawing -- called for DVASPECT other than DVASPECT_CONTENT + virtual BOOL OnSetExtent(DVASPECT nDrawAspect, const CSize& size); + virtual BOOL OnGetExtent(DVASPECT nDrawAspect, CSize& rSize); + // default implementation uses m_sizeExtent + + // overridables you do not have to implement + virtual void OnDoVerb(LONG iVerb); + // default routes to OnShow &/or OnOpen + virtual BOOL OnSetColorScheme(const LOGPALETTE* lpLogPalette); + // default does nothing + virtual COleDataSource* OnGetClipboardData(BOOL bIncludeLink, + LPPOINT lpOffset, LPSIZE lpSize); + // called for access to clipboard data + virtual BOOL OnQueryUpdateItems(); + // called to determine if there are any contained out-of-date links + virtual void OnUpdateItems(); + // called to update any out-of-date links + +protected: + virtual void OnShow(); + // show item in the user interface (may edit in-place) + virtual void OnOpen(); + // show item in the user interface (must open fully) + virtual void OnHide(); + // hide document (and sometimes application) + + // very advanced overridables +public: + virtual BOOL OnInitFromData(COleDataObject* pDataObject, BOOL bCreation); + // initialize object from IDataObject + + // see COleDataSource for a description of these overridables + virtual BOOL OnRenderGlobalData(LPFORMATETC lpFormatEtc, HGLOBAL* phGlobal); + virtual BOOL OnRenderFileData(LPFORMATETC lpFormatEtc, CFile* pFile); + virtual BOOL OnRenderData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium); + // HGLOBAL version will be called first, then CFile* version + + virtual BOOL OnSetData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium, + BOOL bRelease); + // Rare -- only if you support SetData (programmatic paste) + + // advanced helpers for CopyToClipboard + void GetEmbedSourceData(LPSTGMEDIUM lpStgMedium); + void AddOtherClipboardData(COleDataSource* pDataSource); + BOOL GetLinkSourceData(LPSTGMEDIUM lpStgMedium); + void GetObjectDescriptorData(LPPOINT lpOffset, LPSIZE lpSize, + LPSTGMEDIUM lpStgMedium); + +// Implementation +public: + BOOL m_bNeedUnlock; // if TRUE need to pDoc->LockExternal(FALSE) + BOOL m_bAutoDelete; // if TRUE will OnRelease will 'delete this' + + // special version of OnFinalRelease to implement document locking + virtual void OnFinalRelease(); + +protected: + CString m_strItemName; // simple item name + +public: + LPOLEADVISEHOLDER m_lpOleAdviseHolder; // may be NULL + LPDATAADVISEHOLDER m_lpDataAdviseHolder; // may be NULL + + virtual ~COleServerItem(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + // implementation helpers + void NotifyClient(OLE_NOTIFICATION wNotification, DWORD dwParam); + LPDATAOBJECT GetDataObject(); + LPOLEOBJECT GetOleObject(); + LPMONIKER GetMoniker(OLEGETMONIKER nAssign); + +protected: + virtual BOOL GetMetafileData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM pmedium); + // calls OnDraw or OnDrawEx + virtual void OnSaveEmbedding(LPSTORAGE lpStorage); + virtual BOOL IsBlank() const; + + // CItemDataSource implements OnRender reflections to COleServerItem + class CItemDataSource : public COleDataSource + { + protected: + // the GetData and SetData interfaces forward to m_pItem + virtual BOOL OnRenderGlobalData(LPFORMATETC lpFormatEtc, HGLOBAL* phGlobal); + virtual BOOL OnRenderFileData(LPFORMATETC lpFormatEtc, CFile* pFile); + virtual BOOL OnRenderData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium); + // HGLOBAL version will be called first, then CFile* version + + virtual BOOL OnSetData(LPFORMATETC lpFormatEtc, LPSTGMEDIUM lpStgMedium, + BOOL bRelease); + }; + CItemDataSource m_dataSource; + // data source used to implement IDataObject + +// Interface Maps +// (Note: these interface maps are used just for link implementation) +public: + BEGIN_INTERFACE_PART(OleObject, IOleObject) + INIT_INTERFACE_PART(COleServerItem, OleObject) + STDMETHOD(SetClientSite)(LPOLECLIENTSITE); + STDMETHOD(GetClientSite)(LPOLECLIENTSITE*); + STDMETHOD(SetHostNames)(LPCOLESTR, LPCOLESTR); + STDMETHOD(Close)(DWORD); + STDMETHOD(SetMoniker)(DWORD, LPMONIKER); + STDMETHOD(GetMoniker)(DWORD, DWORD, LPMONIKER*); + STDMETHOD(InitFromData)(LPDATAOBJECT, BOOL, DWORD); + STDMETHOD(GetClipboardData)(DWORD, LPDATAOBJECT*); + STDMETHOD(DoVerb)(LONG, LPMSG, LPOLECLIENTSITE, LONG, HWND, LPCRECT); + STDMETHOD(EnumVerbs)(LPENUMOLEVERB*); + STDMETHOD(Update)(); + STDMETHOD(IsUpToDate)(); + STDMETHOD(GetUserClassID)(LPCLSID); + STDMETHOD(GetUserType)(DWORD, LPOLESTR*); + STDMETHOD(SetExtent)(DWORD, LPSIZEL); + STDMETHOD(GetExtent)(DWORD, LPSIZEL); + STDMETHOD(Advise)(LPADVISESINK, LPDWORD); + STDMETHOD(Unadvise)(DWORD); + STDMETHOD(EnumAdvise)(LPENUMSTATDATA*); + STDMETHOD(GetMiscStatus)(DWORD, LPDWORD); + STDMETHOD(SetColorScheme)(LPLOGPALETTE); + END_INTERFACE_PART(OleObject) + + BEGIN_INTERFACE_PART(DataObject, IDataObject) + INIT_INTERFACE_PART(COleServerItem, DataObject) + STDMETHOD(GetData)(LPFORMATETC, LPSTGMEDIUM); + STDMETHOD(GetDataHere)(LPFORMATETC, LPSTGMEDIUM); + STDMETHOD(QueryGetData)(LPFORMATETC); + STDMETHOD(GetCanonicalFormatEtc)(LPFORMATETC, LPFORMATETC); + STDMETHOD(SetData)(LPFORMATETC, LPSTGMEDIUM, BOOL); + STDMETHOD(EnumFormatEtc)(DWORD, LPENUMFORMATETC*); + STDMETHOD(DAdvise)(LPFORMATETC, DWORD, LPADVISESINK, LPDWORD); + STDMETHOD(DUnadvise)(DWORD); + STDMETHOD(EnumDAdvise)(LPENUMSTATDATA*); + END_INTERFACE_PART(DataObject) + + DECLARE_INTERFACE_MAP() + + friend class CItemDataSource; + friend class COleServerDoc; + friend class COleLinkingDoc; +}; + +///////////////////////////////////////////////////////////////////////////// +// COleLinkingDoc - +// (enables linking to embeddings - beginnings of server fuctionality) + +class COleLinkingDoc : public COleDocument +{ + DECLARE_DYNAMIC(COleLinkingDoc) + +// Constructors +public: + COleLinkingDoc(); + +// Operations + BOOL Register(COleObjectFactory* pFactory, LPCTSTR lpszPathName); + // notify the running object table and connect to pServer + void Revoke(); + // revoke from running object table + +// Overridables +protected: + virtual COleServerItem* OnGetLinkedItem(LPCTSTR lpszItemName); + // return item for the named linked item (for supporting links) + virtual COleClientItem* OnFindEmbeddedItem(LPCTSTR lpszItemName); + // return item for the named embedded item (for links to embeddings) + +// Implementation +public: + COleObjectFactory* m_pFactory; // back-pointer to server + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual ~COleLinkingDoc(); + + // overrides for updating of monikers & running object table registration + virtual BOOL OnNewDocument(); + virtual BOOL OnOpenDocument(LPCTSTR lpszPathName); + virtual BOOL OnSaveDocument(LPCTSTR lpszPathName); + virtual void OnCloseDocument(); + virtual LPOLEITEMCONTAINER GetContainer(); + virtual LPMONIKER GetMoniker(OLEGETMONIKER nAssign); + + // special handling of error messages during save/load + virtual void ReportSaveLoadException(LPCTSTR lpszPathName, + CException* e, BOOL bSaving, UINT nIDPDefault); + void BeginDeferErrors(); + SCODE EndDeferErrors(SCODE sc); + +protected: + BOOL m_bDeferErrors; // TRUE if in non-interactive OLE mode + CException* m_pLastException; + + DWORD m_dwRegister; // file moniker's registration in the ROT + LPMONIKER m_lpMonikerROT; // file moniker that is registered + CString m_strMoniker; // filename used to create moniker + BOOL m_bVisibleLock; // TRUE if user is holding lock on document + + // implementation helpers + virtual BOOL RegisterIfServerAttached(LPCTSTR lpszPathName, BOOL bMessage); + void LockExternal(BOOL bLock, BOOL bRemoveRefs); + void UpdateVisibleLock(BOOL bVisible, BOOL bRemoveRefs); + virtual void OnShowViews(BOOL bVisible); + + virtual void SaveToStorage(CObject* pObject = NULL); + +// Interface Maps +public: + BEGIN_INTERFACE_PART(PersistFile, IPersistFile) + INIT_INTERFACE_PART(COleLinkingDoc, PersistFile) + STDMETHOD(GetClassID)(LPCLSID); + STDMETHOD(IsDirty)(); + STDMETHOD(Load)(LPCOLESTR, DWORD); + STDMETHOD(Save)(LPCOLESTR, BOOL); + STDMETHOD(SaveCompleted)(LPCOLESTR); + STDMETHOD(GetCurFile)(LPOLESTR*); + END_INTERFACE_PART(PersistFile) + + BEGIN_INTERFACE_PART(OleItemContainer, IOleItemContainer) + INIT_INTERFACE_PART(COleLinkingDoc, OleItemContainer) + STDMETHOD(ParseDisplayName)(LPBC, LPOLESTR, ULONG*, LPMONIKER*); + STDMETHOD(EnumObjects)(DWORD, LPENUMUNKNOWN*); + STDMETHOD(LockContainer)(BOOL); + STDMETHOD(GetObject)(LPOLESTR, DWORD, LPBINDCTX, REFIID, LPVOID*); + STDMETHOD(GetObjectStorage)(LPOLESTR, LPBINDCTX, REFIID, LPVOID*); + STDMETHOD(IsRunning)(LPOLESTR); + END_INTERFACE_PART(OleItemContainer) + + DECLARE_INTERFACE_MAP() + + friend class COleClientItem; + friend class COleClientItem::XOleClientSite; + friend class COleServerItem::XOleObject; +}; + +////////////////////////////////////////////////////////////////////////////// +// COleServerDoc - registered server document containing COleServerItems + +class COleServerDoc : public COleLinkingDoc +{ + DECLARE_DYNAMIC(COleServerDoc) + +// Constructors and Destructors +public: + COleServerDoc(); + +// Attributes + BOOL IsEmbedded() const; // TRUE if document is an embedding + BOOL IsDocObject() const; // TRUE if document is a DocObject + COleServerItem* GetEmbeddedItem(); + // return embedded item for document (will allocate if necessary) + + // attributes specific to in-place activation + BOOL IsInPlaceActive() const; + void GetItemPosition(LPRECT lpPosRect) const; + // get current position rectangle of in-place edit + void GetItemClipRect(LPRECT lpClipRect) const; + // get current clipping rectangle of in-place edit + BOOL GetZoomFactor(LPSIZE lpSizeNum = NULL, LPSIZE lpSizeDenom = NULL, + LPCRECT lpPosRect = NULL) const; + // returns the zoom factor in pixels + +// Operations + void NotifyChanged(); + // call this after you change some global attribute like + // document dimensions + void UpdateAllItems(COleServerItem* pSender, + LPARAM lHint = 0L, CObject* pHint = NULL, + DVASPECT nDrawAspect = DVASPECT_CONTENT); + + // changes to the entire document (automatically notifies clients) + void NotifyRename(LPCTSTR lpszNewName); + void NotifySaved(); + void NotifyClosed(); // call this after you close document + + // specific operations for embedded documents + void SaveEmbedding(); // call this to save embedded (before closing) + + // specific to in-place activation + BOOL ActivateInPlace(); + void ActivateDocObject(); + void RequestPositionChange(LPCRECT lpPosRect); + BOOL ScrollContainerBy(CSize sizeScroll); + BOOL DeactivateAndUndo(); + BOOL DiscardUndoState(); + +public: +// Overridables for standard user interface (full server) + virtual BOOL OnUpdateDocument(); // implementation of embedded update + +protected: +// Overridables you must implement for yourself + virtual COleServerItem* OnGetEmbeddedItem() = 0; + // return item representing entire (embedded) document + +// Overridables you do not have to implement + virtual void OnClose(OLECLOSE dwCloseOption); + virtual void OnSetHostNames(LPCTSTR lpszHost, LPCTSTR lpszHostObj); +#ifndef _MAC + virtual HRESULT OnExecOleCmd(const GUID* pguidCmdGroup, DWORD nCmdID, + DWORD nCmdExecOpt, VARIANTARG* pvarargIn, VARIANTARG* pvarargOut); + virtual CDocObjectServer* GetDocObjectServer(LPOLEDOCUMENTSITE pDocSite); +#endif + +// Advanced overridables + LPUNKNOWN GetInterfaceHook(const void* piid); + virtual void OnShowDocument(BOOL bShow); + // show first frame for document or hide all frames for document + +// Advanced overridables for in-place activation +public: + virtual void OnDeactivate(); + virtual void OnDeactivateUI(BOOL bUndoable); + +protected: + virtual void OnSetItemRects(LPCRECT lpPosRect, LPCRECT lpClipRect); + virtual BOOL OnReactivateAndUndo(); + + virtual void OnFrameWindowActivate(BOOL bActivate); + virtual void OnDocWindowActivate(BOOL bActivate); + virtual void OnShowControlBars(CFrameWnd* pFrameWnd, BOOL bShow); + virtual COleIPFrameWnd* CreateInPlaceFrame(CWnd* pParentWnd); + virtual void DestroyInPlaceFrame(COleIPFrameWnd* pFrameWnd); +public: + virtual void OnResizeBorder(LPCRECT lpRectBorder, + LPOLEINPLACEUIWINDOW lpUIWindow, BOOL bFrame); + +// Implementation +protected: + LPOLECLIENTSITE m_lpClientSite; // for embedded item + CString m_strHostObj; // name of document in container + BOOL m_bCntrVisible; // TRUE if OnShowWindow(TRUE) called + BOOL m_bClosing; // TRUE if shutting down +#ifdef _MAC + BOOL m_bDeactivating; // TRUE if in-place deactivating +#endif + COleServerItem* m_pEmbeddedItem; // pointer to embedded item for document + + COleIPFrameWnd* m_pInPlaceFrame; // not NULL if in-place activated + CWnd* m_pOrigParent; // not NULL if existing view used + DWORD m_dwOrigStyle; // original style of in-place view + DWORD m_dwOrigStyleEx; // original extended style + + CDocObjectServer* m_pDocObjectServer; // if DocObject, ptr to doc site + +public: + virtual ~COleServerDoc(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + // overridables for implementation + virtual BOOL OnSaveDocument(LPCTSTR lpszPathName); + virtual void OnCloseDocument(); + virtual void DeleteContents(); // delete auto-delete server items + virtual LPMONIKER GetMoniker(OLEGETMONIKER nAssign); + virtual COleServerItem* OnGetLinkedItem(LPCTSTR lpszItemName); + // return item for the named linked item (only if supporting links) + virtual BOOL CanCloseFrame(CFrameWnd* pFrame); + +protected: + // overrides to handle server user-interface + virtual BOOL SaveModified(); // return TRUE if ok to continue + virtual HMENU GetDefaultMenu(); // return menu based on doc type + virtual HACCEL GetDefaultAccelerator(); // return accel table based on doc type + virtual BOOL GetFileTypeString(CString& rString); + + // IPersistStorage implementation + virtual void OnNewEmbedding(LPSTORAGE lpStorage); + virtual void OnOpenEmbedding(LPSTORAGE lpStorage); + virtual void OnSaveEmbedding(LPSTORAGE lpStorage); + + // Implementation helpers + void NotifyAllItems(OLE_NOTIFICATION wNotification, DWORD dwParam); + BOOL SaveModifiedPrompt(); + void ConnectView(CWnd* pParentWnd, CView* pView); + void UpdateUsingHostObj(UINT nIDS, CCmdUI* pCmdUI); + +// Message Maps + //{{AFX_MSG(COleServerDoc) + afx_msg void OnFileUpdate(); + afx_msg void OnFileSaveCopyAs(); + afx_msg void OnUpdateFileUpdate(CCmdUI* pCmdUI); + afx_msg void OnUpdateFileExit(CCmdUI* pCmdUI); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +// Interface Maps +public: + BEGIN_INTERFACE_PART(PersistStorage, IPersistStorage) + INIT_INTERFACE_PART(COleServerDoc, PersistStorage) + STDMETHOD(GetClassID)(LPCLSID); + STDMETHOD(IsDirty)(); + STDMETHOD(InitNew)(LPSTORAGE); + STDMETHOD(Load)(LPSTORAGE); + STDMETHOD(Save)(LPSTORAGE, BOOL); + STDMETHOD(SaveCompleted)(LPSTORAGE); + STDMETHOD(HandsOffStorage)(); + END_INTERFACE_PART(PersistStorage) + + BEGIN_INTERFACE_PART(OleObject, IOleObject) + INIT_INTERFACE_PART(COleServerDoc, OleObject) + STDMETHOD(SetClientSite)(LPOLECLIENTSITE); + STDMETHOD(GetClientSite)(LPOLECLIENTSITE*); + STDMETHOD(SetHostNames)(LPCOLESTR, LPCOLESTR); + STDMETHOD(Close)(DWORD); + STDMETHOD(SetMoniker)(DWORD, LPMONIKER); + STDMETHOD(GetMoniker)(DWORD, DWORD, LPMONIKER*); + STDMETHOD(InitFromData)(LPDATAOBJECT, BOOL, DWORD); + STDMETHOD(GetClipboardData)(DWORD, LPDATAOBJECT*); + STDMETHOD(DoVerb)(LONG, LPMSG, LPOLECLIENTSITE, LONG, HWND, LPCRECT); + STDMETHOD(EnumVerbs)(IEnumOLEVERB**); + STDMETHOD(Update)(); + STDMETHOD(IsUpToDate)(); + STDMETHOD(GetUserClassID)(CLSID*); + STDMETHOD(GetUserType)(DWORD, LPOLESTR*); + STDMETHOD(SetExtent)(DWORD, LPSIZEL); + STDMETHOD(GetExtent)(DWORD, LPSIZEL); + STDMETHOD(Advise)(LPADVISESINK, LPDWORD); + STDMETHOD(Unadvise)(DWORD); + STDMETHOD(EnumAdvise)(LPENUMSTATDATA*); + STDMETHOD(GetMiscStatus)(DWORD, LPDWORD); + STDMETHOD(SetColorScheme)(LPLOGPALETTE); + END_INTERFACE_PART(OleObject) + + BEGIN_INTERFACE_PART(DataObject, IDataObject) + INIT_INTERFACE_PART(COleServerDoc, DataObject) + STDMETHOD(GetData)(LPFORMATETC, LPSTGMEDIUM); + STDMETHOD(GetDataHere)(LPFORMATETC, LPSTGMEDIUM); + STDMETHOD(QueryGetData)(LPFORMATETC); + STDMETHOD(GetCanonicalFormatEtc)(LPFORMATETC, LPFORMATETC); + STDMETHOD(SetData)(LPFORMATETC, LPSTGMEDIUM, BOOL); + STDMETHOD(EnumFormatEtc)(DWORD, LPENUMFORMATETC*); + STDMETHOD(DAdvise)(LPFORMATETC, DWORD, LPADVISESINK, LPDWORD); + STDMETHOD(DUnadvise)(DWORD); + STDMETHOD(EnumDAdvise)(LPENUMSTATDATA*); + END_INTERFACE_PART(DataObject) + + BEGIN_INTERFACE_PART(OleInPlaceObject, IOleInPlaceObject) + INIT_INTERFACE_PART(COleServerDoc, OleInPlaceObject) + STDMETHOD(GetWindow)(HWND*); + STDMETHOD(ContextSensitiveHelp)(BOOL); + STDMETHOD(InPlaceDeactivate)(); + STDMETHOD(UIDeactivate)(); + STDMETHOD(SetObjectRects)(LPCRECT, LPCRECT); + STDMETHOD(ReactivateAndUndo)(); + END_INTERFACE_PART(OleInPlaceObject) + + BEGIN_INTERFACE_PART(OleInPlaceActiveObject, IOleInPlaceActiveObject) + INIT_INTERFACE_PART(COleServerDoc, OleInPlaceActiveObject) + STDMETHOD(GetWindow)(HWND*); + STDMETHOD(ContextSensitiveHelp)(BOOL); + STDMETHOD(TranslateAccelerator)(LPMSG); + STDMETHOD(OnFrameWindowActivate)(BOOL); + STDMETHOD(OnDocWindowActivate)(BOOL); + STDMETHOD(ResizeBorder)(LPCRECT, LPOLEINPLACEUIWINDOW, BOOL); + STDMETHOD(EnableModeless)(BOOL); + END_INTERFACE_PART(OleInPlaceActiveObject) + + DECLARE_INTERFACE_MAP() + + friend class COleServer; + friend class COleServerItem; + friend class CDocObjectServer; +}; + +////////////////////////////////////////////////////////////////////////////// +// COleIPFrameWnd + +class COleCntrFrameWnd; + +class COleIPFrameWnd : public CFrameWnd +{ + DECLARE_DYNCREATE(COleIPFrameWnd) + +// Constructors +public: + COleIPFrameWnd(); + +// Overridables +public: + virtual BOOL OnCreateControlBars(CWnd* pWndFrame, CWnd* pWndDoc); + // create control bars on container windows (pWndDoc can be NULL) + virtual BOOL OnCreateControlBars(CFrameWnd* pWndFrame, CFrameWnd* pWndDoc); + // create control bars on container windows (pWndDoc can be NULL) + + virtual void RepositionFrame(LPCRECT lpPosRect, LPCRECT lpClipRect); + // Advanced: reposition frame to wrap around new lpPosRect + +// Implementation +public: + BOOL m_bUIActive; // TRUE if currently in uiacitve state + + virtual BOOL LoadFrame(UINT nIDResource, + DWORD dwDefaultStyle = WS_CHILD|WS_BORDER|WS_CLIPSIBLINGS, + CWnd* pParentWnd = NULL, + CCreateContext* pContext = NULL); + virtual void RecalcLayout(BOOL bNotify = TRUE); + virtual BOOL PreTranslateMessage(MSG* pMsg); + virtual LRESULT OnSetMessageString(WPARAM wParam, LPARAM lParam); + virtual ~COleIPFrameWnd(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + // in-place state + OLEINPLACEFRAMEINFO m_frameInfo; + LPOLEINPLACEFRAME m_lpFrame; + LPOLEINPLACEUIWINDOW m_lpDocFrame; + COleCntrFrameWnd* m_pMainFrame; + COleCntrFrameWnd* m_pDocFrame; + + HMENU m_hSharedMenu; + OLEMENUGROUPWIDTHS m_menuWidths; + HOLEMENU m_hOleMenu; + CRect m_rectPos; // client area rect of the item + CRect m_rectClip; // area to which frame should be clipped + BOOL m_bInsideRecalc; + + HMENU m_hMenuHelpPopup; // shared Help menu for DocObjects + + // Advanced: in-place activation virtual implementation + virtual BOOL BuildSharedMenu(); + virtual void DestroySharedMenu(); + virtual HMENU GetInPlaceMenu(); + + // Advanced: possible override to change in-place sizing behavior + virtual void OnRequestPositionChange(LPCRECT lpRect); + +protected: + //{{AFX_MSG(COleIPFrameWnd) + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg LRESULT OnRecalcParent(WPARAM wParam, LPARAM lParam); + afx_msg void OnIdleUpdateCmdUI(); + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnDestroy(); + afx_msg LRESULT OnResizeChild(WPARAM wParam, LPARAM lParam); + afx_msg void OnContextHelp(); + afx_msg void OnUpdateControlBarMenu(CCmdUI* pCmdUI); + afx_msg BOOL OnBarCheck(UINT nID); + afx_msg void OnWindowPosChanging(LPWINDOWPOS lpWndPos); +#ifdef _MAC + afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); +#endif + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + friend class COleServerDoc; + friend class COleCntrFrameWnd; + friend class CDocObjectServer; +}; + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// COleResizeBar - supports in-place resizing in server applications + +class COleResizeBar : public CControlBar +{ + DECLARE_DYNAMIC(COleResizeBar) + +// Constructors +public: + COleResizeBar(); + BOOL Create(CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE, + UINT nID = AFX_IDW_RESIZE_BAR); + +// Implementation +public: + virtual ~COleResizeBar(); + virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler); + +protected: + CRectTracker m_tracker; // implemented with a tracker + +protected: + //{{AFX_MSG(COleResizeBar) + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + afx_msg void OnPaint(); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); + afx_msg void OnLButtonDown(UINT, CPoint point); + afx_msg LRESULT OnSizeParent(WPARAM wParam, LPARAM lParam); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; +#endif + +///////////////////////////////////////////////////////////////////////////// +// COleStreamFile - implementation of CFile which uses an IStream + +class COleStreamFile : public CFile +{ + DECLARE_DYNAMIC(COleStreamFile) + +// Constructors and Destructors +public: + COleStreamFile(LPSTREAM lpStream = NULL); + +// Operations + // Note: OpenStream and CreateStream can accept eith STGM_ flags or + // CFile::OpenFlags bits since common values are guaranteed to have + // the same semantics. + BOOL OpenStream(LPSTORAGE lpStorage, LPCTSTR lpszStreamName, + DWORD nOpenFlags = modeReadWrite|shareExclusive, + CFileException* pError = NULL); + BOOL CreateStream(LPSTORAGE lpStorage, LPCTSTR lpszStreamName, + DWORD nOpenFlags = modeReadWrite|shareExclusive|modeCreate, + CFileException* pError = NULL); + + BOOL CreateMemoryStream(CFileException* pError = NULL); + + // attach & detach can be used when Open/Create functions aren't adequate + void Attach(LPSTREAM lpStream); + LPSTREAM Detach(); + + IStream* GetStream() const; + // Returns the current stream + +// Implementation +public: + LPSTREAM m_lpStream; +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual ~COleStreamFile(); + + // attributes for implementation + BOOL GetStatus(CFileStatus& rStatus) const; + virtual DWORD GetPosition() const; + + virtual const CString GetStorageName() const; + + // overrides for implementation + virtual CFile* Duplicate() const; + virtual LONG Seek(LONG lOff, UINT nFrom); + virtual void SetLength(DWORD dwNewLen); + virtual DWORD GetLength() const; + virtual UINT Read(void* lpBuf, UINT nCount); + virtual void Write(const void* lpBuf, UINT nCount); + virtual void LockRange(DWORD dwPos, DWORD dwCount); + virtual void UnlockRange(DWORD dwPos, DWORD dwCount); + virtual void Abort(); + virtual void Flush(); + virtual void Close(); + +protected: + CString m_strStorageName; +}; + +///////////////////////////////////////////////////////////////////////////// +// CMonikerFile - implementation of COleStreamFile that uses an IMoniker to +// get the IStream + +class CMonikerFile: public COleStreamFile +{ + DECLARE_DYNAMIC(CMonikerFile) + +public: + CMonikerFile(); + +#ifndef _MAC + virtual BOOL Open(LPCTSTR lpszURL, CFileException* pError=NULL); + // Uses synchronous URLMonikers to create a moniker. + // Opens the URL specified. + // If provided, pError will be set in case of error. + // Return value: TRUE if successful, FALSE otherwise. +#endif //!_MAC + + virtual BOOL Open(IMoniker* pMoniker, CFileException* pError=NULL); + // Binds to the provided moniker to obtain a stream. + // If provided, pError will be set in case of error. + // Return value: TRUE if successful, FALSE otherwise. + + virtual void Close(); + // Detaches the stream, Release()s it, and the moniker. Close may be + // called on unopened, or already closed streams. + + BOOL Detach(CFileException* pError = NULL); + // Closes the stream. If there is an error when closing, then the + // error code will be placed in pError and the function will return FALSE. + + IMoniker* GetMoniker() const; + // Returns the current moniker. The moniker returned is not AddRef()'ed. + +protected: +// Overidables + IBindCtx* CreateBindContext(CFileException* pError); + // A hook so users can provide a particular IBindCtx, potentially one + // on which the user has registered one or more objects. + +// Implementation +protected: +#ifndef _MAC + virtual BOOL Open(LPCTSTR lpszUrl, IBindHost* pBindHost, + IBindStatusCallback* pBSC, IBindCtx* pBindCtx, CFileException* pError); + BOOL Attach(LPCTSTR lpszUrl, IBindHost* pBindHost, + IBindStatusCallback* pBSC, IBindCtx* pBindCtx, CFileException* pError); +#endif + virtual BOOL Open(IMoniker* pMoniker, IBindHost* pBindHost, + IBindStatusCallback* pBSC, IBindCtx* pBindCtx, CFileException* pError); + + BOOL Attach(IMoniker* pMoniker, IBindHost* pBindHost, + IBindStatusCallback* pBSC, IBindCtx* pBindCtx, CFileException* pError); + + virtual BOOL PostBindToStream(CFileException* pError); + + static IBindHost* CreateBindHost(); +public: + virtual ~CMonikerFile(); + // Closes the stream, and releases the moniker if needed. + + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; + // Calls COleStreamFile::Dump(), and prints out moniker value. +#endif + +private: + IPTR(IMoniker) m_Moniker; + // The moniker provided or created to which this class is bound. + + CMonikerFile(const CMonikerFile&); + // Prevents copying. +}; + +///////////////////////////////////////////////////////////////////////////// +// CAsyncMonikerFile - implementation of COleStreamFile that uses an +// asynchronous IMoniker to get the IStream + +#ifndef _MAC + +class _AfxBindStatusCallback; // Forward declaration + +class CAsyncMonikerFile: public CMonikerFile +{ + DECLARE_DYNAMIC(CAsyncMonikerFile) + +public: + CAsyncMonikerFile(); + // Creates the IBindStatusCallback used internally to provide asynchronous + // operation. + + //All Open overloads call one of these two. + virtual BOOL Open(LPCTSTR lpszURL, IBindHost* pBindHost, + CFileException* pError=NULL); + virtual BOOL Open(IMoniker* pMoniker, IBindHost* pBindHost, + CFileException* pError=NULL); + + //Open overloads that take monikers + virtual BOOL Open(IMoniker* pMoniker, CFileException* pError=NULL); + virtual BOOL Open(IMoniker* pMoniker, IServiceProvider* pServiceProvider, + CFileException* pError=NULL); + virtual BOOL Open(IMoniker* pMoniker, IUnknown* pUnknown, + CFileException* pError=NULL); + + //Open overloads that take strings + virtual BOOL Open(LPCTSTR lpszURL, CFileException* pError=NULL); + virtual BOOL Open(LPCTSTR lpszURL, IServiceProvider* pServiceProvider, + CFileException* pError=NULL); + virtual BOOL Open(LPCTSTR lpszURL, IUnknown* pUnknown, + CFileException* pError=NULL); + + virtual void Close(); + + IBinding* GetBinding() const; + // Returns the binding provided when the asychronous transfer begins. + // With the IBinding*, the user may abort, or pause the transfer. + // NULL may be returned if for any reason the transfer could not be + // made asynchronous, or if the IBinding* has not yet been provided by + // the system. + + FORMATETC* GetFormatEtc() const; + // Returns the FORMATETC for the currently opened stream. NULL will be + // returned if this is called from outside the context of OnDataAvailable. + // If you want to keep the FORMATETC beyond this call, make a copy of it. + // The FORMATETC indicates the format of the data in the stream. + +protected: +// Overidables + virtual DWORD GetBindInfo() const; + // Returns the settings returned by IBindStatusCallback::GetBindInfo. + // The default values returned should work for most cases and should not + // be changed lightly. + + virtual LONG GetPriority() const; + // Returns the priority at which the asynchronous transfer will take + // place. The value is one of the standard thread priority flags. + // By default THREAD_PRIORITY_NORMAL is returned. + + virtual void OnDataAvailable(DWORD dwSize, DWORD bscfFlag); + // Called when there is data available to be read. dwSize indicates + // the cumulative number of bytes which can be read. The bscfFlag may be used + // to identify first, last, and intermediate blocks of data. + + virtual void OnLowResource(); + // This is called when resources are low. + + virtual void OnStartBinding(); + // Called when the binding is starting up. + + virtual void OnProgress(ULONG ulProgress, ULONG ulProgressMax, + ULONG ulStatusCode, LPCTSTR szStatusText); + + virtual void OnStopBinding(HRESULT hresult, LPCTSTR szError); + // Called when the transfer is stopped. This function releases the + // IBinding and should nearly always be call when overidden. + +// Implementation +public: + virtual ~CAsyncMonikerFile(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; + // Calls CMonikerFile::Dump(), and prints out IBinding, + // IBindStatusCallback, and m_pFormatEtc values. +#endif + +private: + friend class _AfxBindStatusCallback; + + IPTR(IBinding) m_Binding; + _AfxBindStatusCallback* m_BSC; + FORMATETC* m_pFormatEtc; + + void SetBinding(IBinding* pBinding); + // Sets and AddRefs m_Binding + + void SetFormatEtc(FORMATETC* pFormatEtc); + // Sets the FORMATETC for the current stream. + +protected: + virtual BOOL PostBindToStream(CFileException* pError); +}; + +#endif // !_MAC + +///////////////////////////////////////////////////////////////////////////// +// COleDropSource (advanced drop source support) + +class COleDropSource : public CCmdTarget +{ +// Constructors +public: + COleDropSource(); + +// Overridables + virtual SCODE QueryContinueDrag(BOOL bEscapePressed, DWORD dwKeyState); + virtual SCODE GiveFeedback(DROPEFFECT dropEffect); + virtual BOOL OnBeginDrag(CWnd* pWnd); + +// Implementation +public: +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif + +public: + BEGIN_INTERFACE_PART(DropSource, IDropSource) + INIT_INTERFACE_PART(COleDropSource, DropSource) + STDMETHOD(QueryContinueDrag)(BOOL, DWORD); + STDMETHOD(GiveFeedback)(DWORD); + END_INTERFACE_PART(DropSource) + + DECLARE_INTERFACE_MAP() + + CRect m_rectStartDrag; // when mouse leaves this rect, drag drop starts + BOOL m_bDragStarted; // has drag really started yet? + DWORD m_dwButtonCancel; // which button will cancel (going down) + DWORD m_dwButtonDrop; // which button will confirm (going up) + + // metrics for drag start determination + static AFX_DATA UINT nDragMinDist; // min. amount mouse must move for drag + static AFX_DATA UINT nDragDelay; // delay before drag starts + + friend class COleDataSource; +}; + +///////////////////////////////////////////////////////////////////////////// +// COleDropTarget (advanced drop target support) + +class COleDropTarget : public CCmdTarget +{ +// Constructors +public: + COleDropTarget(); + +// Operations + BOOL Register(CWnd* pWnd); + virtual void Revoke(); // virtual for implementation + +// Overridables + virtual DROPEFFECT OnDragEnter(CWnd* pWnd, COleDataObject* pDataObject, + DWORD dwKeyState, CPoint point); + virtual DROPEFFECT OnDragOver(CWnd* pWnd, COleDataObject* pDataObject, + DWORD dwKeyState, CPoint point); + virtual BOOL OnDrop(CWnd* pWnd, COleDataObject* pDataObject, + DROPEFFECT dropEffect, CPoint point); + virtual DROPEFFECT OnDropEx(CWnd* pWnd, COleDataObject* pDataObject, + DROPEFFECT dropDefault, DROPEFFECT dropList, CPoint point); + virtual void OnDragLeave(CWnd* pWnd); + virtual DROPEFFECT OnDragScroll(CWnd* pWnd, DWORD dwKeyState, + CPoint point); + +// Implementation +public: + virtual ~COleDropTarget(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + HWND m_hWnd; // HWND this IDropTarget is attached to + LPDATAOBJECT m_lpDataObject; // != NULL between OnDragEnter, OnDragLeave + UINT m_nTimerID; // != MAKEWORD(-1, -1) when in scroll area + DWORD m_dwLastTick; // only valid when m_nTimerID valid + UINT m_nScrollDelay; // time to next scroll + + // metrics for drag-scrolling + static AFX_DATA int nScrollInset; + static AFX_DATA UINT nScrollDelay; + static AFX_DATA UINT nScrollInterval; + + // implementation helpers + void SetupTimer(CView* pView, UINT nTimerID); + void CancelTimer(CWnd* pWnd); + +// Interface Maps +public: + BEGIN_INTERFACE_PART(DropTarget, IDropTarget) + INIT_INTERFACE_PART(COleDropTarget, DropTarget) + STDMETHOD(DragEnter)(LPDATAOBJECT, DWORD, POINTL, LPDWORD); + STDMETHOD(DragOver)(DWORD, POINTL, LPDWORD); + STDMETHOD(DragLeave)(); + STDMETHOD(Drop)(LPDATAOBJECT, DWORD, POINTL pt, LPDWORD); + END_INTERFACE_PART(DropTarget) + + DECLARE_INTERFACE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// COleMessageFilter (implements IMessageFilter) + +class COleMessageFilter : public CCmdTarget +{ +// Constructors +public: + COleMessageFilter(); + +// Operations + BOOL Register(); + void Revoke(); + + // for controlling the busy state of the server application (called app) + virtual void BeginBusyState(); + virtual void EndBusyState(); + void SetBusyReply(SERVERCALL nBusyReply); + + // for controlling actions taken against rejected/retried calls + void SetRetryReply(DWORD nRetryReply = 0); + // only used when the "not responding" dialog is disabled + void SetMessagePendingDelay(DWORD nTimeout = 5000); + // used to determine amount of time before significant message + void EnableBusyDialog(BOOL bEnableBusy = TRUE); + void EnableNotRespondingDialog(BOOL bEnableNotResponding = TRUE); + // used to enable/disable the two types of busy dialogs + +// Overridables + virtual BOOL OnMessagePending(const MSG* pMsg); + // return TRUE to eat the message (usually only if processed) + +// Implementation +public: +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual ~COleMessageFilter(); + virtual BOOL IsSignificantMessage(MSG* pMsg); + // determine if any significant messages are present in the queue + virtual int OnBusyDialog(HTASK htaskBusy); + virtual int OnNotRespondingDialog(HTASK htaskBusy); + // these functions display the busy dialog + +protected: + BOOL m_bRegistered; + LONG m_nBusyCount; // for BeginBusyState & EndBusyState + BOOL m_bEnableBusy; + BOOL m_bEnableNotResponding; + BOOL m_bUnblocking; + DWORD m_nRetryReply; // only used if m_bEnableNotResponding == FALSE + DWORD m_nBusyReply; + DWORD m_nTimeout; + +// Interface Maps +public: + BEGIN_INTERFACE_PART(MessageFilter, IMessageFilter) + INIT_INTERFACE_PART(COleMessageFilter, MessageFilter) + STDMETHOD_(DWORD, HandleInComingCall)(DWORD, HTASK, DWORD, + LPINTERFACEINFO); + STDMETHOD_(DWORD, RetryRejectedCall)(HTASK, DWORD, DWORD); + STDMETHOD_(DWORD, MessagePending)(HTASK, DWORD, DWORD); + END_INTERFACE_PART(MessageFilter) + + DECLARE_INTERFACE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// message map entries for OLE verbs + +#define ON_STDOLEVERB(iVerb, memberFxn) \ + { 0xC002, 0, (UINT)iVerb, (UINT)iVerb, (UINT)-1, \ + (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)(LPMSG, HWND, LPCRECT))&memberFxn }, + +#define ON_OLEVERB(idsVerbName, memberFxn) \ + { 0xC002, 0, 1, 1, idsVerbName, \ + (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)(LPMSG, HWND, LPCRECT))&memberFxn }, + +///////////////////////////////////////////////////////////////////////////// +// global helpers and debugging + +void AFXAPI AfxOleSetEditMenu(COleClientItem* pClient, CMenu* pMenu, + UINT iMenuItem, UINT nIDVerbMin, UINT nIDVerbMax = 0, UINT nIDConvert = 0); + +#ifdef _DEBUG +// Mapping SCODEs to readable text +LPCTSTR AFXAPI AfxGetFullScodeString(SCODE sc); +LPCTSTR AFXAPI AfxGetScodeString(SCODE sc); +LPCTSTR AFXAPI AfxGetScodeRangeString(SCODE sc); +LPCTSTR AFXAPI AfxGetSeverityString(SCODE sc); +LPCTSTR AFXAPI AfxGetFacilityString(SCODE sc); + +// Mapping IIDs to readable text +LPCTSTR AFXAPI AfxGetIIDString(REFIID iid); +#endif + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXOLE_INLINE inline +#define _AFXOLECLI_INLINE inline +#define _AFXOLESVR_INLINE inline +#define _AFXOLEDOBJ_INLINE inline +#include <afxole.inl> +#undef _AFXOLE_INLINE +#undef _AFXOLECLI_INLINE +#undef _AFXOLESVR_INLINE +#undef _AFXOLEDOBJ_INLINE +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif //__AFXOLE_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxole.inl b/public/sdk/inc/mfc42/afxole.inl new file mode 100644 index 000000000..6a970c553 --- /dev/null +++ b/public/sdk/inc/mfc42/afxole.inl @@ -0,0 +1,408 @@ +// 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. + +// Inlines for AFXOLE.H + +///////////////////////////////////////////////////////////////////////////// +// General OLE inlines (CDocItem, COleDocument) + +#ifdef _AFXOLE_INLINE + +// CDocItem +_AFXOLE_INLINE CDocument* CDocItem::GetDocument() const + { return m_pDocument; } + +// COleDocument +_AFXOLE_INLINE void COleDocument::EnableCompoundFile(BOOL bEnable) + { m_bCompoundFile = bEnable; } + +// COleMessageFilter +_AFXOLE_INLINE void COleMessageFilter::SetBusyReply(SERVERCALL nBusyReply) + { ASSERT_VALID(this); m_nBusyReply = nBusyReply; } +_AFXOLE_INLINE void COleMessageFilter::SetRetryReply(DWORD nRetryReply) + { ASSERT_VALID(this); m_nRetryReply = nRetryReply; } +_AFXOLE_INLINE void COleMessageFilter::SetMessagePendingDelay(DWORD nTimeout) + { ASSERT_VALID(this); m_nTimeout = nTimeout; } +_AFXOLE_INLINE void COleMessageFilter::EnableBusyDialog(BOOL bEnable) + { ASSERT_VALID(this); m_bEnableBusy = bEnable; } +_AFXOLE_INLINE void COleMessageFilter::EnableNotRespondingDialog(BOOL bEnable) + { ASSERT_VALID(this); m_bEnableNotResponding = bEnable; } + +// CMonikerFile +_AFXOLE_INLINE CMonikerFile::CMonikerFile() { } +_AFXOLE_INLINE IMoniker* CMonikerFile::GetMoniker() const + { ASSERT_VALID(this); return m_Moniker; } + +#ifndef _MAC +// CAsyncMonikerFile +_AFXOLE_INLINE IBinding* CAsyncMonikerFile::GetBinding() const + { ASSERT_VALID(this); return m_Binding; } +_AFXOLE_INLINE void CAsyncMonikerFile::SetBinding(IBinding* pBinding) + { ASSERT_VALID(this); m_Binding=pBinding; } +_AFXOLE_INLINE void CAsyncMonikerFile::SetFormatEtc(FORMATETC* pFormatEtc) + { ASSERT_VALID(this); m_pFormatEtc=pFormatEtc; } +_AFXOLE_INLINE FORMATETC* CAsyncMonikerFile::GetFormatEtc() const + { ASSERT_VALID(this); return m_pFormatEtc; } +#endif // !_MAC + +#endif //_AFXOLE_INLINE + +///////////////////////////////////////////////////////////////////////////// +// OLE automation inlines + +#ifdef _AFXDISP_INLINE + +// COleException +_AFXDISP_INLINE COleException::COleException() + { m_sc = S_OK; } +_AFXDISP_INLINE COleException::~COleException() + { } + +// CCmdTarget +_AFXDISP_INLINE DWORD CCmdTarget::InternalAddRef() + { ASSERT(GetInterfaceMap() != NULL); return InterlockedIncrement(&m_dwRef); } + +// CObjectFactory +_AFXDISP_INLINE BOOL COleObjectFactory::IsRegistered() const + { ASSERT_VALID(this); return m_dwRegister != 0; } +_AFXDISP_INLINE REFCLSID COleObjectFactory::GetClassID() const + { ASSERT_VALID(this); return m_clsid; } + +// COleDispatchDriver +_AFXDISP_INLINE COleDispatchDriver::~COleDispatchDriver() + { ReleaseDispatch(); } +_AFXDISP_INLINE COleDispatchDriver::operator LPDISPATCH() + { return m_lpDispatch; } + +// COleVariant +_AFXDISP_INLINE COleVariant::COleVariant() + { AfxVariantInit(this); } +_AFXDISP_INLINE COleVariant::~COleVariant() + { ::VariantClear(this); } +_AFXDISP_INLINE COleVariant::COleVariant(LPCTSTR lpszSrc) + { vt = VT_EMPTY; *this = lpszSrc; } +_AFXDISP_INLINE COleVariant::COleVariant(CString& strSrc) + { vt = VT_EMPTY; *this = strSrc; } +_AFXDISP_INLINE COleVariant::COleVariant(BYTE nSrc) + { vt = VT_UI1; bVal = nSrc; } +_AFXDISP_INLINE COleVariant::COleVariant(const COleCurrency& curSrc) + { vt = VT_CY; cyVal = curSrc.m_cur; } +_AFXDISP_INLINE COleVariant::COleVariant(float fltSrc) + { vt = VT_R4; fltVal = fltSrc; } +_AFXDISP_INLINE COleVariant::COleVariant(double dblSrc) + { vt = VT_R8; dblVal = dblSrc; } +_AFXDISP_INLINE COleVariant::COleVariant(const COleDateTime& dateSrc) + { vt = VT_DATE; date = dateSrc.m_dt; } +_AFXDISP_INLINE COleVariant::COleVariant(const CByteArray& arrSrc) + { vt = VT_EMPTY; *this = arrSrc; } +_AFXDISP_INLINE COleVariant::COleVariant(const CLongBinary& lbSrc) + { vt = VT_EMPTY; *this = lbSrc; } +_AFXDISP_INLINE BOOL COleVariant::operator==(LPCVARIANT pSrc) const + { return *this == *pSrc; } +_AFXDISP_INLINE COleVariant::operator LPVARIANT() + { return this; } +_AFXDISP_INLINE COleVariant::operator LPCVARIANT() const + { return this; } + +// COleCurrency +_AFXDISP_INLINE COleCurrency::COleCurrency() + { m_cur.Hi = 0; m_cur.Lo = 0; SetStatus(valid); } +_AFXDISP_INLINE COleCurrency::COleCurrency(CURRENCY cySrc) + { m_cur = cySrc; SetStatus(valid); } +_AFXDISP_INLINE COleCurrency::COleCurrency(const COleCurrency& curSrc) + { m_cur = curSrc.m_cur; m_status = curSrc.m_status; } +_AFXDISP_INLINE COleCurrency::COleCurrency(const VARIANT& varSrc) + { *this = varSrc; } +_AFXDISP_INLINE COleCurrency::CurrencyStatus COleCurrency::GetStatus() const + { return m_status; } +_AFXDISP_INLINE void COleCurrency::SetStatus(CurrencyStatus status) + { m_status = status; } +_AFXDISP_INLINE const COleCurrency& COleCurrency::operator+=(const COleCurrency& cur) + { *this = *this + cur; return *this; } +_AFXDISP_INLINE const COleCurrency& COleCurrency::operator-=(const COleCurrency& cur) + { *this = *this - cur; return *this; } +_AFXDISP_INLINE const COleCurrency& COleCurrency::operator*=(long nOperand) + { *this = *this * nOperand; return *this; } +_AFXDISP_INLINE const COleCurrency& COleCurrency::operator/=(long nOperand) + { *this = *this / nOperand; return *this; } +_AFXDISP_INLINE BOOL COleCurrency::operator==(const COleCurrency& cur) const + { return(m_status == cur.m_status && m_cur.Hi == cur.m_cur.Hi && + m_cur.Lo == cur.m_cur.Lo); } +_AFXDISP_INLINE BOOL COleCurrency::operator!=(const COleCurrency& cur) const + { return(m_status != cur.m_status || m_cur.Hi != cur.m_cur.Hi || + m_cur.Lo != cur.m_cur.Lo); } +_AFXDISP_INLINE COleCurrency::operator CURRENCY() const + { return m_cur; } + +// COleDateTime +_AFXDISP_INLINE COleDateTime::COleDateTime() + { m_dt = 0; SetStatus(valid); } +_AFXDISP_INLINE COleDateTime::COleDateTime(const COleDateTime& dateSrc) + { m_dt = dateSrc.m_dt; m_status = dateSrc.m_status; } +_AFXDISP_INLINE COleDateTime::COleDateTime(const VARIANT& varSrc) + { *this = varSrc; } +_AFXDISP_INLINE COleDateTime::COleDateTime(DATE dtSrc) + { m_dt = dtSrc; SetStatus(valid); } +_AFXDISP_INLINE COleDateTime::COleDateTime(time_t timeSrc) + { *this = timeSrc; } +_AFXDISP_INLINE COleDateTime::COleDateTime(const SYSTEMTIME& systimeSrc) + { *this = systimeSrc; } +_AFXDISP_INLINE COleDateTime::COleDateTime(const FILETIME& filetimeSrc) + { *this = filetimeSrc; } +_AFXDISP_INLINE COleDateTime::COleDateTime(int nYear, int nMonth, int nDay, + int nHour, int nMin, int nSec) + { SetDateTime(nYear, nMonth, nDay, nHour, nMin, nSec); } +_AFXDISP_INLINE COleDateTime::COleDateTime(WORD wDosDate, WORD wDosTime) + { m_status = DosDateTimeToVariantTime(wDosDate, wDosTime, &m_dt) ? + valid : invalid; } +_AFXDISP_INLINE const COleDateTime& COleDateTime::operator=(const COleDateTime& dateSrc) + { m_dt = dateSrc.m_dt; m_status = dateSrc.m_status; return *this; } +_AFXDISP_INLINE COleDateTime::DateTimeStatus COleDateTime::GetStatus() const + { return m_status; } +_AFXDISP_INLINE void COleDateTime::SetStatus(DateTimeStatus status) + { m_status = status; } +_AFXDISP_INLINE BOOL COleDateTime::operator==(const COleDateTime& date) const + { return (m_status == date.m_status && m_dt == date.m_dt); } +_AFXDISP_INLINE BOOL COleDateTime::operator!=(const COleDateTime& date) const + { return (m_status != date.m_status || m_dt != date.m_dt); } +_AFXDISP_INLINE const COleDateTime& COleDateTime::operator+=( + const COleDateTimeSpan dateSpan) + { *this = *this + dateSpan; return *this; } +_AFXDISP_INLINE const COleDateTime& COleDateTime::operator-=( + const COleDateTimeSpan dateSpan) + { *this = *this - dateSpan; return *this; } +_AFXDISP_INLINE COleDateTime::operator DATE() const + { return m_dt; } +_AFXDISP_INLINE COleDateTime::SetDate(int nYear, int nMonth, int nDay) + { return SetDateTime(nYear, nMonth, nDay, 0, 0, 0); } +_AFXDISP_INLINE COleDateTime::SetTime(int nHour, int nMin, int nSec) + // Set date to zero date - 12/30/1899 + { return SetDateTime(1899, 12, 30, nHour, nMin, nSec); } + +// COleDateTimeSpan +_AFXDISP_INLINE COleDateTimeSpan::COleDateTimeSpan() + { m_span = 0; SetStatus(valid); } +_AFXDISP_INLINE COleDateTimeSpan::COleDateTimeSpan(double dblSpanSrc) + { m_span = dblSpanSrc; SetStatus(valid); } +_AFXDISP_INLINE COleDateTimeSpan::COleDateTimeSpan( + const COleDateTimeSpan& dateSpanSrc) + { m_span = dateSpanSrc.m_span; m_status = dateSpanSrc.m_status; } +_AFXDISP_INLINE COleDateTimeSpan::COleDateTimeSpan( + long lDays, int nHours, int nMins, int nSecs) + { SetDateTimeSpan(lDays, nHours, nMins, nSecs); } +_AFXDISP_INLINE COleDateTimeSpan::DateTimeSpanStatus COleDateTimeSpan::GetStatus() const + { return m_status; } +_AFXDISP_INLINE void COleDateTimeSpan::SetStatus(DateTimeSpanStatus status) + { m_status = status; } +_AFXDISP_INLINE double COleDateTimeSpan::GetTotalDays() const + { ASSERT(GetStatus() == valid); return m_span; } +_AFXDISP_INLINE double COleDateTimeSpan::GetTotalHours() const + { ASSERT(GetStatus() == valid); return m_span * 24; } +_AFXDISP_INLINE double COleDateTimeSpan::GetTotalMinutes() const + { ASSERT(GetStatus() == valid); return m_span * 24 * 60; } +_AFXDISP_INLINE double COleDateTimeSpan::GetTotalSeconds() const + { ASSERT(GetStatus() == valid); return m_span * 24 * 60 * 60; } +_AFXDISP_INLINE long COleDateTimeSpan::GetDays() const + { ASSERT(GetStatus() == valid); return (long)m_span; } +_AFXDISP_INLINE BOOL COleDateTimeSpan::operator==( + const COleDateTimeSpan& dateSpan) const + { return (m_status == dateSpan.m_status && + m_span == dateSpan.m_span); } +_AFXDISP_INLINE BOOL COleDateTimeSpan::operator!=( + const COleDateTimeSpan& dateSpan) const + { return (m_status != dateSpan.m_status || + m_span != dateSpan.m_span); } +_AFXDISP_INLINE BOOL COleDateTimeSpan::operator<( + const COleDateTimeSpan& dateSpan) const + { ASSERT(GetStatus() == valid); + ASSERT(dateSpan.GetStatus() == valid); + return m_span < dateSpan.m_span; } +_AFXDISP_INLINE BOOL COleDateTimeSpan::operator>( + const COleDateTimeSpan& dateSpan) const + { ASSERT(GetStatus() == valid); + ASSERT(dateSpan.GetStatus() == valid); + return m_span > dateSpan.m_span; } +_AFXDISP_INLINE BOOL COleDateTimeSpan::operator<=( + const COleDateTimeSpan& dateSpan) const + { ASSERT(GetStatus() == valid); + ASSERT(dateSpan.GetStatus() == valid); + return m_span <= dateSpan.m_span; } +_AFXDISP_INLINE BOOL COleDateTimeSpan::operator>=( + const COleDateTimeSpan& dateSpan) const + { ASSERT(GetStatus() == valid); + ASSERT(dateSpan.GetStatus() == valid); + return m_span >= dateSpan.m_span; } +_AFXDISP_INLINE const COleDateTimeSpan& COleDateTimeSpan::operator+=( + const COleDateTimeSpan dateSpan) + { *this = *this + dateSpan; return *this; } +_AFXDISP_INLINE const COleDateTimeSpan& COleDateTimeSpan::operator-=( + const COleDateTimeSpan dateSpan) + { *this = *this - dateSpan; return *this; } +_AFXDISP_INLINE COleDateTimeSpan COleDateTimeSpan::operator-() const + { return -this->m_span; } +_AFXDISP_INLINE COleDateTimeSpan::operator double() const + { return m_span; } + +// COleSafeArray +_AFXDISP_INLINE COleSafeArray::COleSafeArray() + { AfxSafeArrayInit(this); + vt = VT_EMPTY; } +_AFXDISP_INLINE COleSafeArray::~COleSafeArray() + { Clear(); } +_AFXDISP_INLINE void COleSafeArray::Clear() + { VERIFY(::VariantClear(this) == NOERROR); } +_AFXDISP_INLINE COleSafeArray::operator LPVARIANT() + { return this; } +_AFXDISP_INLINE COleSafeArray::operator LPCVARIANT() const + { return this; } +_AFXDISP_INLINE DWORD COleSafeArray::GetDim() + { return ::SafeArrayGetDim(parray); } +_AFXDISP_INLINE DWORD COleSafeArray::GetElemSize() + { return ::SafeArrayGetElemsize(parray); } + +#endif //_AFXDISP_INLINE + +///////////////////////////////////////////////////////////////////////////// +// OLE Container inlines + +#ifdef _AFXOLECLI_INLINE + +// COleClientItem +_AFXOLECLI_INLINE SCODE COleClientItem::GetLastStatus() const + { ASSERT_VALID(this); return m_scLast; } +_AFXOLECLI_INLINE COleDocument* COleClientItem::GetDocument() const + { ASSERT_VALID(this); return (COleDocument*)m_pDocument; } +_AFXOLECLI_INLINE OLE_OBJTYPE COleClientItem::GetType() const + { ASSERT_VALID(this); return m_nItemType; } +_AFXOLECLI_INLINE DVASPECT COleClientItem::GetDrawAspect() const + { ASSERT_VALID(this); return m_nDrawAspect; } +_AFXOLECLI_INLINE BOOL COleClientItem::IsRunning() const + { ASSERT_VALID(this); + ASSERT(m_lpObject != NULL); + return ::OleIsRunning(m_lpObject); } +_AFXOLECLI_INLINE UINT COleClientItem::GetItemState() const + { ASSERT_VALID(this); return m_nItemState; } +_AFXOLECLI_INLINE BOOL COleClientItem::IsInPlaceActive() const + { ASSERT_VALID(this); + return m_nItemState == activeState || m_nItemState == activeUIState; } +_AFXOLECLI_INLINE BOOL COleClientItem::IsOpen() const + { ASSERT_VALID(this); return m_nItemState == openState; } +_AFXOLECLI_INLINE BOOL COleClientItem::IsLinkUpToDate() const + { ASSERT_VALID(this); + ASSERT(m_lpObject != NULL); + // TRUE if result is S_OK (aka S_TRUE) + return m_lpObject->IsUpToDate() == NOERROR; } +_AFXOLECLI_INLINE CView* COleClientItem::GetActiveView() const + { return m_pView; } + +// COleLinkingDoc +_AFXOLECLI_INLINE void COleLinkingDoc::BeginDeferErrors() + { ASSERT(m_pLastException == NULL); ++m_bDeferErrors; } + +#endif //_AFXOLECLI_INLINE + +#ifdef _AFXOLEDOBJ_INLINE + +// COleDataObject +_AFXOLEDOBJ_INLINE COleDataObject::~COleDataObject() + { Release(); } + +#endif //_AFXOLECTL_INLINE + +///////////////////////////////////////////////////////////////////////////// +// OLE dialog inlines + +#ifdef _AFXODLGS_INLINE + +_AFXODLGS_INLINE UINT COleDialog::GetLastError() const + { return m_nLastError; } +_AFXODLGS_INLINE CString COleInsertDialog::GetPathName() const + { ASSERT_VALID(this); + ASSERT(GetSelectionType() != createNewItem); return m_szFileName; } +_AFXODLGS_INLINE REFCLSID COleInsertDialog::GetClassID() const + { ASSERT_VALID(this); return m_io.clsid; } +_AFXODLGS_INLINE HGLOBAL COleInsertDialog::GetIconicMetafile() const + { ASSERT_VALID(this); return m_io.hMetaPict; } +_AFXODLGS_INLINE DVASPECT COleInsertDialog::GetDrawAspect() const + { ASSERT_VALID(this); return m_io.dwFlags & IOF_CHECKDISPLAYASICON ? + DVASPECT_ICON : DVASPECT_CONTENT; } +_AFXODLGS_INLINE HGLOBAL COleConvertDialog::GetIconicMetafile() const + { ASSERT_VALID(this); return m_cv.hMetaPict; } +_AFXODLGS_INLINE DVASPECT COleConvertDialog::GetDrawAspect() const + { ASSERT_VALID(this); return (DVASPECT)m_cv.dvAspect; } +_AFXODLGS_INLINE REFCLSID COleConvertDialog::GetClassID() const + { ASSERT_VALID(this); return m_cv.clsidNew; } +_AFXODLGS_INLINE HGLOBAL COleChangeIconDialog::GetIconicMetafile() const + { ASSERT_VALID(this); return m_ci.hMetaPict; } +_AFXODLGS_INLINE int COlePasteSpecialDialog::GetPasteIndex() const + { ASSERT_VALID(this); return m_ps.nSelectedIndex; } +_AFXODLGS_INLINE DVASPECT COlePasteSpecialDialog::GetDrawAspect() const + { ASSERT_VALID(this); return m_ps.dwFlags & PSF_CHECKDISPLAYASICON ? + DVASPECT_ICON : DVASPECT_CONTENT; } +_AFXODLGS_INLINE HGLOBAL COlePasteSpecialDialog::GetIconicMetafile() const + { ASSERT_VALID(this); return m_ps.hMetaPict; } +_AFXODLGS_INLINE UINT COleBusyDialog::GetSelectionType() const + { ASSERT_VALID(this); return m_selection; } + +_AFXODLGS_INLINE BOOL COleChangeSourceDialog::IsValidSource() + { return m_cs.dwFlags & CSF_VALIDSOURCE; } +_AFXODLGS_INLINE CString COleChangeSourceDialog::GetDisplayName() + { return m_cs.lpszDisplayName; } +_AFXODLGS_INLINE CString COleChangeSourceDialog::GetFileName() + { return CString(m_cs.lpszDisplayName, m_cs.nFileLength); } +_AFXODLGS_INLINE CString COleChangeSourceDialog::GetItemName() + { return m_cs.lpszDisplayName+m_cs.nFileLength; } +_AFXODLGS_INLINE CString COleChangeSourceDialog::GetFromPrefix() + { return m_cs.lpszFrom; } +_AFXODLGS_INLINE CString COleChangeSourceDialog::GetToPrefix() + { return m_cs.lpszTo; } + +#endif //_AFXODLGS_INLINE + +///////////////////////////////////////////////////////////////////////////// +// OLE Server inlines + +#ifdef _AFXOLESVR_INLINE + +// COleServerItem +_AFXOLESVR_INLINE COleServerDoc* COleServerItem::GetDocument() const + { ASSERT_VALID(this); return (COleServerDoc*)m_pDocument; } +_AFXOLESVR_INLINE void COleServerItem::NotifyChanged(DVASPECT nDrawAspect) + { ASSERT_VALID(this); NotifyClient(OLE_CHANGED, nDrawAspect); } +_AFXOLESVR_INLINE const CString& COleServerItem::GetItemName() const + { ASSERT_VALID(this); return m_strItemName; } +_AFXOLESVR_INLINE void COleServerItem::SetItemName(LPCTSTR lpszItemName) +{ + ASSERT_VALID(this); + ASSERT(lpszItemName != NULL); + ASSERT(AfxIsValidString(lpszItemName)); + m_strItemName = lpszItemName; +} +_AFXOLESVR_INLINE BOOL COleServerItem::IsLinkedItem() const + { ASSERT_VALID(this); return GetDocument()->m_pEmbeddedItem != this; } +_AFXOLESVR_INLINE COleDataSource* COleServerItem::GetDataSource() + { ASSERT_VALID(this); return &m_dataSource; } + +// COleServerDoc +_AFXOLESVR_INLINE void COleServerDoc::NotifyChanged() + { ASSERT_VALID(this); NotifyAllItems(OLE_CHANGED, DVASPECT_CONTENT); } +_AFXOLESVR_INLINE void COleServerDoc::NotifyClosed() + { ASSERT_VALID(this); NotifyAllItems(OLE_CLOSED, 0); } +_AFXOLESVR_INLINE void COleServerDoc::NotifySaved() + { ASSERT_VALID(this); NotifyAllItems(OLE_SAVED, 0); } +_AFXOLESVR_INLINE BOOL COleServerDoc::IsEmbedded() const + { ASSERT_VALID(this); return m_bEmbedded; } +_AFXOLESVR_INLINE BOOL COleServerDoc::IsDocObject() const + { ASSERT_VALID(this); return (m_pDocObjectServer != NULL) ? TRUE : FALSE; } +_AFXOLESVR_INLINE BOOL COleServerDoc::IsInPlaceActive() const + { ASSERT_VALID(this); return m_pInPlaceFrame != NULL; } +#endif //_AFXOLESVR_INLINE + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxolecl.rc b/public/sdk/inc/mfc42/afxolecl.rc new file mode 100644 index 000000000..70e3032a7 --- /dev/null +++ b/public/sdk/inc/mfc42/afxolecl.rc @@ -0,0 +1,66 @@ +// 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. + +#ifndef __AFXOLECL_RC__ +#define __AFXOLECL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifndef _INC_DLGS + #include <dlgs.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Client Resources + +///////////////////////////////////////////////////////////////////////////// +// OLE strings + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_STATIC_OBJECT "Can not activate a static OLE object." + AFX_IDP_FAILED_TO_CONNECT "Failed to connect.\nLink may be broken." + AFX_IDP_SERVER_BUSY "Unable to process command, server busy." + AFX_IDP_BAD_VERB "Failed to perform server operation." + AFX_IDP_FAILED_TO_LAUNCH "Failed to launch server application." + AFX_IDS_UPDATING_ITEMS "Updating OLE objects" + AFX_IDP_FAILED_TO_CONVERT "Failed to convert OLE object." + AFX_IDP_ASK_TO_DISCARD "OLE objects cannot be saved while exiting Windows!\nDiscard all changes to %1?" + AFX_IDP_FAILED_TO_CREATE "Failed to create object. Make sure the application is entered in the system registry." + + AFX_IDS_METAFILE_FORMAT "Picture (Metafile)\na picture" + AFX_IDS_DIB_FORMAT "Device Independent Bitmap\na device independent bitmap" + AFX_IDS_BITMAP_FORMAT "Bitmap\na bitmap" + AFX_IDS_LINKSOURCE_FORMAT "%s\n%s" + AFX_IDS_EMBED_FORMAT "%s\n%s" + AFX_IDS_RTF_FORMAT "Rich Text (RTF)\ntext with font and paragraph formatting" + AFX_IDS_TEXT_FORMAT "Unformatted Text\ntext without any formatting" + + AFX_IDS_INVALID_CURRENCY "Invalid Currency." + AFX_IDS_INVALID_DATETIME "Invalid DateTime." + AFX_IDS_INVALID_DATETIMESPAN "Invalid DateTimeSpan." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/afxolesv.rc b/public/sdk/inc/mfc42/afxolesv.rc new file mode 100644 index 000000000..781dcab00 --- /dev/null +++ b/public/sdk/inc/mfc42/afxolesv.rc @@ -0,0 +1,53 @@ +// 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. + +#ifndef __AFXOLESV_RC__ +#define __AFXOLESV_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Server Resources + +// OLE strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_ASK_TO_UPDATE, "Update %1 before proceeding?" + AFX_IDP_FAILED_TO_UPDATE, "Could not update client." + + AFX_IDP_FAILED_TO_REGISTER, "Failed to register. OLE features may not work properly." + AFX_IDP_FAILED_TO_AUTO_REGISTER, "Failed to update the system registry.\nPlease try using REGEDIT." +END + +STRINGTABLE PRELOAD +BEGIN + AFX_IDS_APP_TITLE_EMBEDDING, "%1 in %2" + AFX_IDS_OBJ_TITLE_INPLACE, "%1 - %2" + AFX_IDS_EXIT_MENU, "E&xit && Return to %1" + AFX_IDS_UPDATE_MENU, "&Update %1" + AFX_IDS_SAVEFILECOPY, "Save Copy As" +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLESV_RC__ diff --git a/public/sdk/inc/mfc42/afxplex_.h b/public/sdk/inc/mfc42/afxplex_.h new file mode 100644 index 000000000..9f9a5e1cd --- /dev/null +++ b/public/sdk/inc/mfc42/afxplex_.h @@ -0,0 +1,53 @@ +// 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. + +#ifndef __AFXPLEX_H__ +#define __AFXPLEX_H__ + +#ifndef __AFX_H__ + #include <afx.h> +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +#ifdef AFX_COLL_SEG +#pragma code_seg(AFX_COLL_SEG) +#endif + +struct CPlex // warning variable length structure +{ + CPlex* pNext; +#if (_AFX_PACKING >= 8) + DWORD dwReserved[1]; // align on 8 byte boundary +#endif + // BYTE data[maxNum*elementSize]; + + void* data() { return this+1; } + + static CPlex* PASCAL Create(CPlex*& head, UINT nMax, UINT cbElement); + // like 'calloc' but no zero fill + // may throw memory exceptions + + void FreeDataChain(); // free this one and links +}; + +#ifdef AFX_COLL_SEG +#pragma code_seg() +#endif + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#endif //__AFXPLEX_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxprint.rc b/public/sdk/inc/mfc42/afxprint.rc new file mode 100644 index 000000000..a3f534c49 --- /dev/null +++ b/public/sdk/inc/mfc42/afxprint.rc @@ -0,0 +1,130 @@ +// 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. + +#ifndef __AFXPRINT_RC__ +#define __AFXPRINT_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Printing Resources + +AFX_IDC_MAGNIFY CURSOR DISCARDABLE "res\\magnify.cur" + +#ifndef _MAC +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | 0x04 +#else +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 84 +STYLE DS_MODALFRAME | WS_POPUP +#endif +FONT 8, "MS Shell Dlg" +BEGIN + CTEXT "Printing",IDC_STATIC,0,9,133,8 + CTEXT "",AFX_IDC_PRINT_DOCNAME,0,19,133,8 +#ifndef _MAC + CTEXT "on the",IDC_STATIC,0,29,133,8 + CTEXT "",AFX_IDC_PRINT_PRINTERNAME,0,39,133,8 + CTEXT "",AFX_IDC_PRINT_PORTNAME,0,49,133,8 + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,59,133,8 + PUSHBUTTON "Cancel",IDCANCEL,46,74,40,14 +#else + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,30,133,8 + PUSHBUTTON "Cancel",IDCANCEL,46,45,40,15 + CTEXT "Press Cmd-. to cancel.",IDC_STATIC,0,63,133,16 +#endif +END + +// Preview Toolbar Dialog +#ifndef _MAC +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 330, 16 +STYLE WS_CHILD | 0x04 +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "&Print...",AFX_ID_PREVIEW_PRINT,2,2,44,12 + PUSHBUTTON "&Next Page",AFX_ID_PREVIEW_NEXT,48,2,44,12 + PUSHBUTTON "Pre&v Page",AFX_ID_PREVIEW_PREV,94,2,44,12 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,140,2,44,12 + PUSHBUTTON "Zoom &In",AFX_ID_PREVIEW_ZOOMIN,186,2,44,12 + PUSHBUTTON "Zoom &Out",AFX_ID_PREVIEW_ZOOMOUT,232,2,44,12 + PUSHBUTTON "&Close",AFX_ID_PREVIEW_CLOSE,278,2,44,12 +END +#else +// standard toolbar for 14 inch and larger screens +// width *must* be 320 or less so that this is used on 640x480 screens +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 320, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "&Print...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "&Next Page",AFX_ID_PREVIEW_NEXT,46,2,44,15 + PUSHBUTTON "Pre&v Page",AFX_ID_PREVIEW_PREV,91,2,44,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,136,2,44,15 + PUSHBUTTON "Zoom &In",AFX_ID_PREVIEW_ZOOMIN,181,2,44,15 + PUSHBUTTON "Zoom &Out",AFX_ID_PREVIEW_ZOOMOUT,226,2,44,15 + PUSHBUTTON "&Close",AFX_ID_PREVIEW_CLOSE,271,2,44,15 +END + +// short toolbar for 9 inch and 12 inch screens +AFX_IDD_PREVIEW_SHORTTOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 270, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "&Print...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "&Next",AFX_ID_PREVIEW_NEXT,46,2,29,15 + PUSHBUTTON "Pre&v",AFX_ID_PREVIEW_PREV,76,2,29,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,106,2,44,15 + PUSHBUTTON "&In",AFX_ID_PREVIEW_ZOOMIN,151,2,29,15 + PUSHBUTTON "&Out",AFX_ID_PREVIEW_ZOOMOUT,181,2,29,15 + PUSHBUTTON "&Close",AFX_ID_PREVIEW_CLOSE,211,2,44,15 +END +#endif + +// Printing strings +STRINGTABLE DISCARDABLE +BEGIN + // print progress dialog strings + AFX_IDS_PRINTONPORT, "on %1" // for print output + AFX_IDS_ONEPAGE, "&One Page" // for preview button + AFX_IDS_TWOPAGE, "&Two Page" // for preview button + AFX_IDS_PRINTPAGENUM, "Page %u" // for print output + AFX_IDS_PREVIEWPAGEDESC, "Page %u\nPages %u-%u\n" + + // print to file dialog strings + AFX_IDS_PRINTDEFAULTEXT, "prn" // default extension + AFX_IDS_PRINTDEFAULT, "Output.prn" // default file + AFX_IDS_PRINTFILTER, + "Printer Files (*.prn)|*.prn|All Files (*.*)|*.*||" + AFX_IDS_PRINTCAPTION, "Print to File" // caption for browse dlg + AFX_IDS_PRINTTOFILE, "to %1" // to file +END + +// Print Preview Accelerator Table +AFX_IDR_PREVIEW_ACCEL ACCELERATORS LOADONCALL MOVEABLE +BEGIN + VK_NEXT, AFX_ID_PREVIEW_NEXT, VIRTKEY, NOINVERT + VK_PRIOR, AFX_ID_PREVIEW_PREV, VIRTKEY, NOINVERT + VK_ESCAPE, AFX_ID_PREVIEW_CLOSE, VIRTKEY, NOINVERT +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXPRINT_RC__ diff --git a/public/sdk/inc/mfc42/afxpriv.h b/public/sdk/inc/mfc42/afxpriv.h new file mode 100644 index 000000000..330154123 --- /dev/null +++ b/public/sdk/inc/mfc42/afxpriv.h @@ -0,0 +1,789 @@ +// 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. + +// Note: This header file contains useful classes that are documented only +// in the MFC Technical Notes. These classes may change from version to +// version, so be prepared to change your code accordingly if you utilize +// this header. In the future, commonly used portions of this header +// may be moved and officially documented. + +#ifndef __AFXPRIV_H__ +#define __AFXPRIV_H__ + +#ifndef __AFXADV_H__ + #include <afxadv.h> +#endif + +#ifndef _INC_MALLOC + #include <malloc.h> +#endif + +#ifndef __AFXEXT_H__ + #include <afxext.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// AFXPRIV - MFC Private Classes + +// Implementation structures +struct AFX_SIZEPARENTPARAMS; // Control bar implementation +struct AFX_CMDHANDLERINFO; // Command routing implementation + +// Classes declared in this file + + //CDC + class CPreviewDC; // Virtual DC for print preview + + //CCmdTarget + //CWnd + //CView + class CPreviewView; // Print preview view + //CFrameWnd + class COleCntrFrameWnd; + //CMiniFrameWnd + class CMiniDockFrameWnd; + +class CDockContext; // for dragging control bars + +///////////////////////////////////////////////////////////////////////////// + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +///////////////////////////////////////////////////////////////////////////// +// Global ID ranges (see Technical note TN020 for more details) + +// 8000 -> FFFF command IDs (used for menu items, accelerators and controls) +#define IS_COMMAND_ID(nID) ((nID) & 0x8000) + +// 8000 -> DFFF : user commands +// E000 -> EFFF : AFX commands and other things +// F000 -> FFFF : standard windows commands and other things etc + // E000 -> E7FF standard commands + // E800 -> E8FF control bars (first 32 are special) + // E900 -> EEFF standard window controls/components + // EF00 -> EFFF SC_ menu help + // F000 -> FFFF standard strings +#define ID_COMMAND_FROM_SC(sc) (((sc - 0xF000) >> 4) + AFX_IDS_SCFIRST) + +// 0000 -> 7FFF IDR range +// 0000 -> 6FFF : user resources +// 7000 -> 7FFF : AFX (and standard windows) resources +// IDR ranges (NOTE: IDR_ values must be <32768) +#define ASSERT_VALID_IDR(nIDR) ASSERT((nIDR) != 0 && (nIDR) < 0x8000) + +///////////////////////////////////////////////////////////////////////////// +// Context sensitive help support (see Technical note TN028 for more details) + +// Help ID bases +#define HID_BASE_COMMAND 0x00010000UL // ID and IDM +#define HID_BASE_RESOURCE 0x00020000UL // IDR and IDD +#define HID_BASE_PROMPT 0x00030000UL // IDP +#define HID_BASE_NCAREAS 0x00040000UL +#define HID_BASE_CONTROL 0x00050000UL // IDC +#define HID_BASE_DISPATCH 0x00060000UL // IDispatch help codes + +///////////////////////////////////////////////////////////////////////////// +// Internal AFX Windows messages (see Technical note TN024 for more details) +// (0x0360 - 0x037F are reserved for MFC) + +#define WM_QUERYAFXWNDPROC 0x0360 // lResult = 1 if processed by AfxWndProc +#define WM_SIZEPARENT 0x0361 // lParam = &AFX_SIZEPARENTPARAMS +#define WM_SETMESSAGESTRING 0x0362 // wParam = nIDS (or 0), + // lParam = lpszOther (or NULL) +#define WM_IDLEUPDATECMDUI 0x0363 // wParam == bDisableIfNoHandler +#define WM_INITIALUPDATE 0x0364 // (params unused) - sent to children +#define WM_COMMANDHELP 0x0365 // lResult = TRUE/FALSE, + // lParam = dwContext +#define WM_HELPHITTEST 0x0366 // lResult = dwContext, + // lParam = MAKELONG(x,y) +#define WM_EXITHELPMODE 0x0367 // (params unused) +#define WM_RECALCPARENT 0x0368 // force RecalcLayout on frame window + // (only for inplace frame windows) +#define WM_SIZECHILD 0x0369 // special notify from COleResizeBar + // wParam = ID of child window + // lParam = lpRectNew (new position/size) +#define WM_KICKIDLE 0x036A // (params unused) causes idles to kick in +#define WM_QUERYCENTERWND 0x036B // lParam = HWND to use as centering parent +#define WM_DISABLEMODAL 0x036C // lResult = 0, disable during modal state + // lResult = 1, don't disable +#define WM_FLOATSTATUS 0x036D // wParam combination of FS_* flags below + +// WM_ACTIVATETOPLEVEL is like WM_ACTIVATEAPP but works with hierarchies +// of mixed processes (as is the case with OLE in-place activation) +#define WM_ACTIVATETOPLEVEL 0x036E // wParam = nState (like WM_ACTIVATE) + // lParam = pointer to HWND[2] + // lParam[0] = hWnd getting WM_ACTIVATE + // lParam[1] = hWndOther + +#define WM_QUERY3DCONTROLS 0x036F // lResult != 0 if 3D controls wanted + +// Note: Messages 0x0370, 0x0371, and 0x372 were incorrectly used by +// some versions of Windows. To remain compatible, MFC does not +// use messages in that range. +#define WM_RESERVED_0370 0x0370 +#define WM_RESERVED_0371 0x0371 +#define WM_RESERVED_0372 0x0372 + +// WM_SOCKET_NOTIFY and WM_SOCKET_DEAD are used internally by MFC's +// Windows sockets implementation. For more information, see sockcore.cpp +#define WM_SOCKET_NOTIFY 0x0373 +#define WM_SOCKET_DEAD 0x0374 + +// same as WM_SETMESSAGESTRING except not popped if IsTracking() +#define WM_POPMESSAGESTRING 0x0375 + +// Constants used in DLGINIT resources for OLE control containers +// NOTE: These are NOT real Windows messages they are simply tags +// used in the control resource and are never used as 'messages' +#define WM_OCC_LOADFROMSTREAM 0x0376 +#define WM_OCC_LOADFROMSTORAGE 0x0377 +#define WM_OCC_INITNEW 0x0378 +#define WM_OCC_LOADFROMSTREAM_EX 0x037A +#define WM_OCC_LOADFROMSTORAGE_EX 0x037B + +// Marker used while rearranging the message queue +#define WM_QUEUE_SENTINEL 0x0379 + +// Note: Messages 0x037C - 0x37F reserved for future MFC use. +#define WM_RESERVED_037C 0x037C +#define WM_RESERVED_037D 0x037D +#define WM_RESERVED_037E 0x037E +#define WM_RESERVED_037F 0x037F + +// like ON_MESSAGE but no return value +#define ON_MESSAGE_VOID(message, memberFxn) \ + { message, 0, 0, 0, AfxSig_vv, \ + (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))&memberFxn }, + +// special struct for WM_SIZEPARENT +struct AFX_SIZEPARENTPARAMS +{ + HDWP hDWP; // handle for DeferWindowPos + RECT rect; // parent client rectangle (trim as appropriate) + SIZE sizeTotal; // total size on each side as layout proceeds + BOOL bStretch; // should stretch to fill all space +}; + +// flags for wParam in the WM_FLOATSTATUS message +enum { FS_SHOW = 0x01, FS_HIDE = 0x02, + FS_ACTIVATE = 0x04, FS_DEACTIVATE = 0x08, + FS_ENABLE = 0x10, FS_DISABLE = 0x20, + FS_SYNCACTIVE = 0x40 }; + +void AFXAPI AfxRepositionWindow(AFX_SIZEPARENTPARAMS* lpLayout, + HWND hWnd, LPCRECT lpRect); + +///////////////////////////////////////////////////////////////////////////// +// Implementation of command routing + +struct AFX_CMDHANDLERINFO +{ + CCmdTarget* pTarget; + void (AFX_MSG_CALL CCmdTarget::*pmf)(void); +}; + +///////////////////////////////////////////////////////////////////////////// +// Robust file save support +// opens a temp file if modeCreate specified and enough free space +// renaming, etc occurs automatically if everything succeeds + +class CMirrorFile : public CFile +{ +// Implementation +public: + virtual void Abort(); + virtual void Close(); + virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, + CFileException* pError = NULL); + +protected: + CString m_strMirrorName; +}; + +///////////////////////////////////////////////////////////////////////////// +// Implementation of PrintPreview + +class CPreviewDC : public CDC +{ + DECLARE_DYNAMIC(CPreviewDC) + +public: + virtual void SetAttribDC(HDC hDC); // Set the Attribute DC + virtual void SetOutputDC(HDC hDC); + + virtual void ReleaseOutputDC(); + +// Constructors + CPreviewDC(); + +// Implementation +public: + virtual ~CPreviewDC(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + void SetScaleRatio(int nNumerator, int nDenominator); + void SetTopLeftOffset(CSize TopLeft); + void ClipToPage(); + + // These conversion functions can be used without an output DC + + void PrinterDPtoScreenDP(LPPOINT lpPoint) const; + +// Device-Context Functions + virtual int SaveDC(); + virtual BOOL RestoreDC(int nSavedDC); + +public: + virtual CGdiObject* SelectStockObject(int nIndex); + virtual CFont* SelectObject(CFont* pFont); + +// Drawing-Attribute Functions + virtual COLORREF SetBkColor(COLORREF crColor); + virtual COLORREF SetTextColor(COLORREF crColor); + +// Mapping Functions + virtual int SetMapMode(int nMapMode); + virtual CPoint SetViewportOrg(int x, int y); + virtual CPoint OffsetViewportOrg(int nWidth, int nHeight); + virtual CSize SetViewportExt(int x, int y); + virtual CSize ScaleViewportExt(int xNum, int xDenom, int yNum, int yDenom); + virtual CSize SetWindowExt(int x, int y); + virtual CSize ScaleWindowExt(int xNum, int xDenom, int yNum, int yDenom); + +// Text Functions + virtual BOOL TextOut(int x, int y, LPCTSTR lpszString, int nCount); + virtual BOOL ExtTextOut(int x, int y, UINT nOptions, LPCRECT lpRect, + LPCTSTR lpszString, UINT nCount, LPINT lpDxWidths); + virtual CSize TabbedTextOut(int x, int y, LPCTSTR lpszString, int nCount, + int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin); + virtual int DrawText(LPCTSTR lpszString, int nCount, LPRECT lpRect, + UINT nFormat); + virtual BOOL GrayString(CBrush* pBrush, + BOOL (CALLBACK* lpfnOutput)(HDC, LPARAM, int), + LPARAM lpData, int nCount, + int x, int y, int nWidth, int nHeight); + +// Printer Escape Functions + virtual int Escape(int nEscape, int nCount, LPCSTR lpszInData, LPVOID lpOutData); + +// Implementation +protected: + void MirrorMappingMode(BOOL bCompute); + void MirrorViewportOrg(); + void MirrorFont(); + void MirrorAttributes(); + + CSize ComputeDeltas(int& x, LPCTSTR lpszString, UINT& nCount, BOOL bTabbed, + UINT nTabStops, LPINT lpnTabStops, int nTabOrigin, + LPTSTR lpszOutputString, int* pnDxWidths, int& nRightFixup); + +protected: + int m_nScaleNum; // Scale ratio Numerator + int m_nScaleDen; // Scale ratio Denominator + int m_nSaveDCIndex; // DC Save index when Screen DC Attached + int m_nSaveDCDelta; // delta between Attrib and output restore indices + CSize m_sizeTopLeft;// Offset for top left corner of page + HFONT m_hFont; // Font selected into the screen DC (NULL if none) + HFONT m_hPrinterFont; // Font selected into the print DC +#ifdef _MAC + int m_aCharWidthsDraw[256]; // character widths for m_hDC + int m_aCharWidthsAttrib[256]; // character widths for m_hAttribDC +#endif + + CSize m_sizeWinExt; // cached window extents computed for screen + CSize m_sizeVpExt; // cached viewport extents computed for screen +}; + +///////////////////////////////////////////////////////////////////////////// +// CPreviewView + +class CDialogBar; + +class CPreviewView : public CScrollView +{ + DECLARE_DYNCREATE(CPreviewView) + +// Constructors +public: + CPreviewView(); + BOOL SetPrintView(CView* pPrintView); + +// Attributes +protected: + CView* m_pOrigView; + CView* m_pPrintView; + CPreviewDC* m_pPreviewDC; // Output and attrib DCs Set, not created + CDC m_dcPrint; // Actual printer DC + +// Operations + void SetZoomState(UINT nNewState, UINT nPage, CPoint point); + void SetCurrentPage(UINT nPage, BOOL bClearRatios); + + // Returns TRUE if in a page rect. Returns the page index + // in nPage and the point converted to 1:1 screen device coordinates + BOOL FindPageRect(CPoint& point, UINT& nPage); + + +// Overridables + virtual void OnActivateView(BOOL bActivate, + CView* pActivateView, CView* pDeactiveView); + + // Returns .cx/.cy as the numerator/denominator pair for the ratio + // using CSize for convenience + virtual CSize CalcScaleRatio(CSize windowSize, CSize actualSize); + + virtual void PositionPage(UINT nPage); + virtual void OnDisplayPageNumber(UINT nPage, UINT nPagesDisplayed); + +// Implementation +public: + virtual ~CPreviewView(); + virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL); +#ifdef _DEBUG + void AssertValid() const; + void Dump(CDumpContext& dc) const; +#endif +#ifdef _MAC + virtual void CalcWindowRect(LPRECT lpClientRect); +#endif + +protected: + //{{AFX_MSG(CPreviewView) + afx_msg void OnPreviewClose(); + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnDraw(CDC* pDC); + afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); + afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); + afx_msg void OnLButtonDown(UINT nFlags, CPoint point); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + afx_msg void OnNumPageChange(); + afx_msg void OnNextPage(); + afx_msg void OnPrevPage(); + afx_msg void OnPreviewPrint(); + afx_msg void OnZoomIn(); + afx_msg void OnZoomOut(); + afx_msg void OnUpdateNumPageChange(CCmdUI* pCmdUI); + afx_msg void OnUpdateNextPage(CCmdUI* pCmdUI); + afx_msg void OnUpdatePrevPage(CCmdUI* pCmdUI); + afx_msg void OnUpdateZoomIn(CCmdUI* pCmdUI); + afx_msg void OnUpdateZoomOut(CCmdUI* pCmdUI); + afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); + //}}AFX_MSG + + void DoZoom(UINT nPage, CPoint point); + void SetScaledSize(UINT nPage); + CSize CalcPageDisplaySize(); + + CPrintPreviewState* m_pPreviewState; // State to restore + CDialogBar* m_pToolBar; // Toolbar for preview + + struct PAGE_INFO + { + CRect rectScreen; // screen rect (screen device units) + CSize sizeUnscaled; // unscaled screen rect (screen device units) + CSize sizeScaleRatio; // scale ratio (cx/cy) + CSize sizeZoomOutRatio; // scale ratio when zoomed out (cx/cy) + }; + + PAGE_INFO* m_pPageInfo; // Array of page info structures + PAGE_INFO m_pageInfoArray[2]; // Embedded array for the default implementation + + BOOL m_bPageNumDisplayed;// Flags whether or not page number has yet + // been displayed on status line + UINT m_nZoomOutPages; // number of pages when zoomed out + UINT m_nZoomState; + UINT m_nMaxPages; // for sanity checks + UINT m_nCurrentPage; + UINT m_nPages; + int m_nSecondPageOffset; // used to shift second page position + + HCURSOR m_hMagnifyCursor; + + CSize m_sizePrinterPPI; // printer pixels per inch + CPoint m_ptCenterPoint; + CPrintInfo* m_pPreviewInfo; + + DECLARE_MESSAGE_MAP() + + friend class CView; + friend BOOL CALLBACK _AfxPreviewCloseProc(CFrameWnd* pFrameWnd); +}; + +// Zoom States +#define ZOOM_OUT 0 +#define ZOOM_MIDDLE 1 +#define ZOOM_IN 2 + +///////////////////////////////////////////////////////////////////////////// +// toolbar docking support + +class CDockContext +{ +public: +// Construction + CDockContext(CControlBar* pBar); + +// Attributes + CPoint m_ptLast; // last mouse position during drag + CRect m_rectLast; + CSize m_sizeLast; + BOOL m_bDitherLast; + + // Rectangles used during dragging or resizing + CRect m_rectDragHorz; + CRect m_rectDragVert; + CRect m_rectFrameDragHorz; + CRect m_rectFrameDragVert; + + CControlBar* m_pBar; // the toolbar that created this context + CFrameWnd* m_pDockSite; // the controlling frame of the CControlBar + DWORD m_dwDockStyle; // allowable dock styles for bar + DWORD m_dwOverDockStyle; // style of dock that rect is over + DWORD m_dwStyle; // style of control bar + BOOL m_bFlip; // if shift key is down + BOOL m_bForceFrame; // if ctrl key is down + + CDC* m_pDC; // where to draw during drag + BOOL m_bDragging; + int m_nHitTest; + + UINT m_uMRUDockID; + CRect m_rectMRUDockPos; + + DWORD m_dwMRUFloatStyle; + CPoint m_ptMRUFloatPos; + +// Drag Operations + virtual void StartDrag(CPoint pt); + void Move(CPoint pt); // called when mouse has moved + void EndDrag(); // drop + void OnKey(int nChar, BOOL bDown); + +// Resize Operations + virtual void StartResize(int nHitTest, CPoint pt); + void Stretch(CPoint pt); + void EndResize(); + +// Double Click Operations + virtual void ToggleDocking(); + +// Operations + void InitLoop(); + void CancelLoop(); + +// Implementation +public: + ~CDockContext(); + BOOL Track(); + void DrawFocusRect(BOOL bRemoveRect = FALSE); + // draws the correct outline + void UpdateState(BOOL* pFlag, BOOL bNewValue); + DWORD CanDock(); + CDockBar* GetDockBar(DWORD dwOverDockStyle); +}; + +///////////////////////////////////////////////////////////////////////////// +// CControlBarInfo - used for docking serialization + +class CControlBarInfo +{ +public: +// Implementation + CControlBarInfo(); + +// Attributes + UINT m_nBarID; // ID of this bar + BOOL m_bVisible; // visibility of this bar + BOOL m_bFloating; // whether floating or not + BOOL m_bHorz; // orientation of floating dockbar + BOOL m_bDockBar; // TRUE if a dockbar + CPoint m_pointPos; // topleft point of window + + UINT m_nMRUWidth; // MRUWidth for Dynamic Toolbars + BOOL m_bDocking; // TRUE if this bar has a DockContext + UINT m_uMRUDockID; // most recent docked dockbar + CRect m_rectMRUDockPos; // most recent docked position + DWORD m_dwMRUFloatStyle; // most recent floating orientation + CPoint m_ptMRUFloatPos; // most recent floating position + + CPtrArray m_arrBarID; // bar IDs for bars contained within this one + CControlBar* m_pBar; // bar which this refers to (transient) + + void Serialize(CArchive& ar, CDockState* pDockState); + BOOL LoadState(LPCTSTR lpszProfileName, int nIndex, CDockState* pDockState); + BOOL SaveState(LPCTSTR lpszProfileName, int nIndex); +}; + +///////////////////////////////////////////////////////////////////////////// +// CDockBar - used for docking + +class CDockBar : public CControlBar +{ + DECLARE_DYNAMIC(CDockBar) + +// Construction +public: + CDockBar(BOOL bFloating = FALSE); // TRUE if attached to CMiniDockFrameWnd + BOOL Create(CWnd* pParentWnd, DWORD dwStyle, UINT nID); + +// Attributes + BOOL m_bFloating; + + virtual BOOL IsDockBar() const; + int GetDockedCount() const; + virtual int GetDockedVisibleCount() const; + +// Operations + void DockControlBar(CControlBar* pBar, LPCRECT lpRect = NULL); + void ReDockControlBar(CControlBar* pBar, LPCRECT lpRect = NULL); + BOOL RemoveControlBar(CControlBar*, int nPosExclude = -1, BOOL bAddPlaceHolder = FALSE); + void RemovePlaceHolder(CControlBar* pBar); + +// Implementation +public: + virtual ~CDockBar(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz); + virtual void DoPaint(CDC* pDC); +#ifdef _MAC + virtual BOOL CheckMonochrome(); +#endif + + // public implementation helpers + void GetBarInfo(CControlBarInfo* pInfo); + void SetBarInfo(CControlBarInfo* pInfo, CFrameWnd* pFrameWnd); + int FindBar(CControlBar* pBar, int nPosExclude = -1); + void ShowAll(BOOL bShow); + +protected: + CPtrArray m_arrBars; // each element is a CControlBar + BOOL m_bLayoutQuery; + CRect m_rectLayout; + + CControlBar* GetDockedControlBar(int nPos) const; + + // implementation helpers + int Insert(CControlBar* pBar, CRect rect, CPoint ptMid); + virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler); +#ifdef _MAC + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); +#endif + + //{{AFX_MSG(CDockBar) + afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp); + afx_msg void OnNcPaint(); + afx_msg void OnWindowPosChanging(LPWINDOWPOS lpWndPos); + afx_msg void OnPaint(); + afx_msg LRESULT OnSizeParent(WPARAM, LPARAM); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + + friend class CMiniDockFrameWnd; +}; + +class CMiniDockFrameWnd : public CMiniFrameWnd +{ + DECLARE_DYNCREATE(CMiniDockFrameWnd) + +public: +// Construction + CMiniDockFrameWnd(); + virtual BOOL Create(CWnd* pParent, DWORD dwBarStyle); + +// Operations + virtual void RecalcLayout(BOOL bNotify = TRUE); + +// Implementation +public: + CDockBar m_wndDockBar; + + //{{AFX_MSG(CMiniFrameWnd) + afx_msg void OnClose(); + afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point); + afx_msg void OnNcLButtonDblClk(UINT nHitTest, CPoint point); + //}}AFX_MSG +#ifdef _MAC + afx_msg BOOL OnEraseBkgnd(CDC* pDC); +#endif + afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message); + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// COleCntrFrameWnd + +class COleIPFrameWnd; + +class COleCntrFrameWnd : public CFrameWnd +{ +// Constructor +public: + COleCntrFrameWnd(COleIPFrameWnd* pInPlaceFrame); + +// Implementation +protected: + COleIPFrameWnd* m_pInPlaceFrame; + virtual void PostNcDestroy(); + +public: + virtual ~COleCntrFrameWnd(); + virtual void RecalcLayout(BOOL bNotify = TRUE); + void OnIdleUpdateCmdUI(); + virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, + AFX_CMDHANDLERINFO* pHandlerInfo); +#ifdef _DEBUG + void AssertValid() const; +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// CDialogTemplate + +#ifndef _MAC + +class CDialogTemplate +{ +// Constructors +public: + CDialogTemplate(const DLGTEMPLATE* pTemplate = NULL); + CDialogTemplate(HGLOBAL hGlobal); + +// Attributes + BOOL HasFont() const; + BOOL SetFont(LPCTSTR lpFaceName, WORD nFontSize); + BOOL SetSystemFont(WORD nFontSize = 0); + BOOL GetFont(CString& strFaceName, WORD& nFontSize) const; + void GetSizeInDialogUnits(SIZE* pSize) const; + void GetSizeInPixels(SIZE* pSize) const; + + static BOOL AFX_CDECL GetFont(const DLGTEMPLATE* pTemplate, + CString& strFaceName, WORD& nFontSize); + +// Operations + BOOL Load(LPCTSTR lpDialogTemplateID); + HGLOBAL Detach(); + +// Implementation +public: + ~CDialogTemplate(); + + HGLOBAL m_hTemplate; + DWORD m_dwTemplateSize; + BOOL m_bSystemFont; + +protected: + static BYTE* AFX_CDECL GetFontSizeField(const DLGTEMPLATE* pTemplate); + static UINT AFX_CDECL GetTemplateSize(const DLGTEMPLATE* pTemplate); + BOOL SetTemplate(const DLGTEMPLATE* pTemplate, UINT cb); +}; + +#endif //!_MAC + +///////////////////////////////////////////////////////////////////////////// +// WM_NOTIFY support + +struct AFX_NOTIFY +{ + LRESULT* pResult; + NMHDR* pNMHDR; +}; + +///////////////////////////////////////////////////////////////////////////// +// Global implementation helpers + +// window creation hooking +void AFXAPI AfxHookWindowCreate(CWnd* pWnd); +BOOL AFXAPI AfxUnhookWindowCreate(); +void AFXAPI AfxResetMsgCache(); + +// for backward compatibility to previous versions +#define _AfxHookWindowCreate AfxHookWindowCreate +#define _AfxUnhookWindowCreate AfxUnhookWindowCreate + +// string helpers +void AFXAPI AfxSetWindowText(HWND hWndCtrl, LPCTSTR lpszNew); +int AFXAPI AfxLoadString(UINT nIDS, LPTSTR lpszBuf, UINT nMaxBuf = 256); + +HDC AFXAPI AfxCreateDC(HGLOBAL hDevNames, HGLOBAL hDevMode); + +void AFXAPI AfxGetModuleShortFileName(HINSTANCE hInst, CString& strShortName); + +// Failure dialog helpers +void AFXAPI AfxFailMaxChars(CDataExchange* pDX, int nChars); +void AFXAPI AfxFailRadio(CDataExchange* pDX); + +// DLL load helpers +HINSTANCE AFXAPI AfxLoadDll(HINSTANCE* volatile hInst, LPCSTR lpszDLL); +HINSTANCE AFXAPI AfxLoadDll(HINSTANCE* volatile hInst, LPCSTR lpszDLL, + FARPROC* pProcPtrs, LPCSTR lpszProcName); + +///////////////////////////////////////////////////////////////////////////// +// Global UNICODE<>ANSI translation helpers + +LPDEVMODEW AFXAPI AfxDevModeA2W(LPDEVMODEW lpDevModeW, LPDEVMODEA lpDevModeA); +LPDEVMODEA AFXAPI AfxDevModeW2A(LPDEVMODEA lpDevModeA, LPDEVMODEW lpDevModeW); +#define DEVMODEW2A(lpw)\ + ((lpw == NULL) ? NULL : AfxDevModeW2A((LPDEVMODEA)alloca(sizeof(DEVMODEA)+lpw->dmDriverExtra), lpw)) +#define DEVMODEA2W(lpa)\ + ((lpa == NULL) ? NULL : AfxDevModeA2W((LPDEVMODEW)alloca(sizeof(DEVMODEW)+lpa->dmDriverExtra), lpa)) + +LPTEXTMETRICW AFXAPI AfxTextMetricA2W(LPTEXTMETRICW lptmW, LPTEXTMETRICA pltmA); +LPTEXTMETRICA AFXAPI AfxTextMetricW2A(LPTEXTMETRICA lptmA, LPTEXTMETRICW pltmW); +#define TEXTMETRICW2A(lptmw)\ + ((lptmw == NULL) ? NULL : AfxTextMetricW2A((LPTEXTMETRICA)alloca(sizeof(TEXTMETRICA)), lptmw)) +#define TEXTMETRICA2W(lptma)\ + ((lptma == NULL) ? NULL : AfxTextMetricA2W((LPTEXTMETRICW)alloca(sizeof(TEXTMETRICW)), lptma)) + +#ifndef __AFXCONV_H__ +#include <afxconv.h> +#endif + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif // __AFXPRIV_H__ + +///////////////////////////////////////////////////////////////////////////// + +#ifndef __AFXPRIV2_H__ +#include <afxpriv2.h> +#endif diff --git a/public/sdk/inc/mfc42/afxpriv2.h b/public/sdk/inc/mfc42/afxpriv2.h new file mode 100644 index 000000000..e1a0e287f --- /dev/null +++ b/public/sdk/inc/mfc42/afxpriv2.h @@ -0,0 +1,225 @@ +// 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. + +// Note: This header file contains useful classes that are documented only +// in the MFC Technical Notes. These classes may change from version to +// version, so be prepared to change your code accordingly if you utilize +// this header. In the future, commonly used portions of this header +// may be moved and officially documented. + +#ifndef __AFXPRIV2_H__ +// Do not define __AFXPRIV2_H__ here. It is defined at the bottom. + +#ifndef __AFXPRIV_H__ + #include <afxpriv.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// AFXPRIV2 - MFC Private Classes + +// General OLE features + +#if (!defined _AFX_NO_OLE_SUPPORT) && (defined _OBJBASE_H_) + +// Implementation structures +struct AFX_EVENT; // Event sink implementation + +// Classes declared in this file +class COleControlLock; + +#endif + +// OLE Automation features + +#ifdef __AFXDISP_H__ +// Classes declared in this file + +//IStream + class CArchiveStream; + +// Functions declared in this file + +// AfxBSTR2ABTSR +// AfxTaskStringA2W +// AfxTaskStringW2A + +#endif + +///////////////////////////////////////////////////////////////////////////// + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +///////////////////////////////////////////////////////////////////////////// +// General OLE features + +#if (!defined _AFX_NO_OLE_SUPPORT) && (defined _OBJBASE_H_) +#ifndef __AFXPRIV2_H__OLE__ +#define __AFXPRIV2_H__OLE__ + +///////////////////////////////////////////////////////////////////////////// +// Implementation of event sink handling + +struct AFX_EVENT +{ + enum + { + event, + propRequest, propChanged, + propDSCNotify + }; + + AFX_EVENT(int eventKind); + + AFX_EVENT(int eventKind, DISPID dispid, DISPPARAMS* pDispParams = NULL, + EXCEPINFO* pExcepInfo = NULL, UINT* puArgError = NULL); + + int m_eventKind; + DISPID m_dispid; + DISPPARAMS* m_pDispParams; + EXCEPINFO* m_pExcepInfo; + UINT* m_puArgError; + BOOL m_bPropChanged; + HRESULT m_hResult; + DSCSTATE m_nDSCState; + DSCREASON m_nDSCReason; +}; + +inline AFX_EVENT::AFX_EVENT(int eventKind) +{ + m_eventKind = eventKind; + m_dispid = DISPID_UNKNOWN; + m_pDispParams = NULL; + m_pExcepInfo = NULL; + m_puArgError = NULL; + m_hResult = NOERROR; + m_nDSCState = dscNoState; + m_nDSCReason = dscNoReason; +} + +inline AFX_EVENT::AFX_EVENT(int eventKind, DISPID dispid, + DISPPARAMS* pDispParams, EXCEPINFO* pExcepInfo, UINT* puArgError) +{ + m_eventKind = eventKind; + m_dispid = dispid; + m_pDispParams = pDispParams; + m_pExcepInfo = pExcepInfo; + m_puArgError = puArgError; + m_hResult = NOERROR; + m_nDSCState = dscNoState; + m_nDSCReason = dscNoReason; +} + +///////////////////////////////////////////////////////////////////////////// +// COleControlLock + +class COleControlLock +{ +// Constructors +public: + COleControlLock(REFCLSID clsid); + +// Attributes + CLSID m_clsid; + LPCLASSFACTORY m_pClassFactory; + COleControlLock* m_pNextLock; + +// Implementation +public: + virtual ~COleControlLock(); +}; + +#endif // __AFXPRIV2_H__OLE__ +#endif //(!defined _AFX_NO_OLE_SUPPORT) && (defined _OBJBASE_H_) + +///////////////////////////////////////////////////////////////////////////// +// OLE Automation features + +#ifdef __AFXDISP_H__ +#ifndef __AFXPRIV2_H__DISP__ +#define __AFXPRIV2_H__DISP__ + +///////////////////////////////////////////////////////////////////////////// +// CArchiveStream + +class CArchiveStream : public IStream +{ +public: + CArchiveStream(CArchive* pArchive); + +// Implementation + CArchive* m_pArchive; + + STDMETHOD_(ULONG, AddRef)(); + STDMETHOD_(ULONG, Release)(); + STDMETHOD(QueryInterface)(REFIID, LPVOID*); + + STDMETHOD(Read)(void*, ULONG, ULONG*); + STDMETHOD(Write)(const void*, ULONG cb, ULONG*); + STDMETHOD(Seek)(LARGE_INTEGER, DWORD, ULARGE_INTEGER*); + STDMETHOD(SetSize)(ULARGE_INTEGER); + STDMETHOD(CopyTo)(LPSTREAM, ULARGE_INTEGER, ULARGE_INTEGER*, + ULARGE_INTEGER*); + STDMETHOD(Commit)(DWORD); + STDMETHOD(Revert)(); + STDMETHOD(LockRegion)(ULARGE_INTEGER, ULARGE_INTEGER,DWORD); + STDMETHOD(UnlockRegion)(ULARGE_INTEGER, ULARGE_INTEGER, DWORD); + STDMETHOD(Stat)(STATSTG*, DWORD); + STDMETHOD(Clone)(LPSTREAM*); +}; + +///////////////////////////////////////////////////////////////////////////// +// Global UNICODE<>ANSI translation helpers + +void AFXAPI AfxBSTR2CString(CString* pStr, BSTR bstr); + +#if !defined(_UNICODE) && !defined(OLE2ANSI) +BSTR AFXAPI AfxBSTR2ABSTR(BSTR bstrW); +LPWSTR AFXAPI AfxTaskStringA2W(LPCSTR lpa); +LPSTR AFXAPI AfxTaskStringW2A(LPCWSTR lpw); +#endif + +#endif // __AFXPRIV2_H__DISP__ +#endif // __AFXDISP_H__ + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#if (defined __AFXPRIV2_H__OLE__) && (defined __AFXPRIV2_H__DISP__) +#define __AFXPRIV2_H__ +#endif + +#endif // __AFXPRIV2_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxres.h b/public/sdk/inc/mfc42/afxres.h new file mode 100644 index 000000000..bd26ee934 --- /dev/null +++ b/public/sdk/inc/mfc42/afxres.h @@ -0,0 +1,772 @@ +// 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. + +#ifndef __AFXRES_H__ +#define __AFXRES_H__ + +#ifdef REZ // Mac resource compiler (mrc) defines REZ +#define RC_INVOKED +#endif + +#ifdef RC_INVOKED +#ifndef _INC_WINDOWS +#define _INC_WINDOWS + #include "winres.h" // extract from windows header +#endif +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif + +#ifdef APSTUDIO_INVOKED +#define APSTUDIO_HIDDEN_SYMBOLS +#endif + +///////////////////////////////////////////////////////////////////////////// +// MFC resource types (see Technical note TN024 for implementation details) + +#ifndef RC_INVOKED +#define RT_DLGINIT MAKEINTRESOURCE(240) +#define RT_TOOLBAR MAKEINTRESOURCE(241) +#endif + +///////////////////////////////////////////////////////////////////////////// + +#ifdef APSTUDIO_INVOKED +#undef APSTUDIO_HIDDEN_SYMBOLS +#endif + +///////////////////////////////////////////////////////////////////////////// +// General style bits etc + +// Tab Control styles +#ifndef TCS_MULTILINE // new in later versions of Win32 +#define TCS_MULTILINE 0x0200 +#endif + +// ControlBar styles +#define CBRS_ALIGN_LEFT 0x1000L +#define CBRS_ALIGN_TOP 0x2000L +#define CBRS_ALIGN_RIGHT 0x4000L +#define CBRS_ALIGN_BOTTOM 0x8000L +#define CBRS_ALIGN_ANY 0xF000L + +#define CBRS_BORDER_LEFT 0x0100L +#define CBRS_BORDER_TOP 0x0200L +#define CBRS_BORDER_RIGHT 0x0400L +#define CBRS_BORDER_BOTTOM 0x0800L +#define CBRS_BORDER_ANY 0x0F00L + +#define CBRS_TOOLTIPS 0x0010L +#define CBRS_FLYBY 0x0020L +#define CBRS_FLOAT_MULTI 0x0040L +#define CBRS_BORDER_3D 0x0080L +#define CBRS_HIDE_INPLACE 0x0008L +#define CBRS_SIZE_DYNAMIC 0x0004L +#define CBRS_SIZE_FIXED 0x0002L +#define CBRS_FLOATING 0x0001L + +#define CBRS_ORIENT_HORZ (CBRS_ALIGN_TOP|CBRS_ALIGN_BOTTOM) +#define CBRS_ORIENT_VERT (CBRS_ALIGN_LEFT|CBRS_ALIGN_RIGHT) +#define CBRS_ORIENT_ANY (CBRS_ORIENT_HORZ|CBRS_ORIENT_VERT) + +#define CBRS_ALL 0xFFFFL + + +// the CBRS_ style is made up of an alignment style and a draw border style +// the alignment styles are mutually exclusive +// the draw border styles may be combined +#define CBRS_NOALIGN 0x00000000L +#define CBRS_LEFT (CBRS_ALIGN_LEFT|CBRS_BORDER_RIGHT) +#define CBRS_TOP (CBRS_ALIGN_TOP|CBRS_BORDER_BOTTOM) +#define CBRS_RIGHT (CBRS_ALIGN_RIGHT|CBRS_BORDER_LEFT) +#define CBRS_BOTTOM (CBRS_ALIGN_BOTTOM|CBRS_BORDER_TOP) + +///////////////////////////////////////////////////////////////////////////// +// Standard window components + +// Mode indicators in status bar - these are routed like commands +#define ID_INDICATOR_EXT 0xE700 // extended selection indicator +#define ID_INDICATOR_CAPS 0xE701 // cap lock indicator +#define ID_INDICATOR_NUM 0xE702 // num lock indicator +#define ID_INDICATOR_SCRL 0xE703 // scroll lock indicator +#define ID_INDICATOR_OVR 0xE704 // overtype mode indicator +#define ID_INDICATOR_REC 0xE705 // record mode indicator +#define ID_INDICATOR_KANA 0xE706 // kana lock indicator + +#define ID_SEPARATOR 0 // special separator value + +#ifndef RC_INVOKED // code only +// Standard control bars (IDW = window ID) +#define AFX_IDW_CONTROLBAR_FIRST 0xE800 +#define AFX_IDW_CONTROLBAR_LAST 0xE8FF + +#define AFX_IDW_TOOLBAR 0xE800 // main Toolbar for window +#define AFX_IDW_STATUS_BAR 0xE801 // Status bar window +#define AFX_IDW_PREVIEW_BAR 0xE802 // PrintPreview Dialog Bar +#define AFX_IDW_RESIZE_BAR 0xE803 // OLE in-place resize bar + +// Note: If your application supports docking toolbars, you should +// not use the following IDs for your own toolbars. The IDs chosen +// are at the top of the first 32 such that the bars will be hidden +// while in print preview mode, and are not likely to conflict with +// IDs your application may have used succesfully in the past. + +#define AFX_IDW_DOCKBAR_TOP 0xE81B +#define AFX_IDW_DOCKBAR_LEFT 0xE81C +#define AFX_IDW_DOCKBAR_RIGHT 0xE81D +#define AFX_IDW_DOCKBAR_BOTTOM 0xE81E +#define AFX_IDW_DOCKBAR_FLOAT 0xE81F + +// Macro for mapping standard control bars to bitmask (limit of 32) +#define AFX_CONTROLBAR_MASK(nIDC) (1L << (nIDC - AFX_IDW_CONTROLBAR_FIRST)) + +// parts of Main Frame +#define AFX_IDW_PANE_FIRST 0xE900 // first pane (256 max) +#define AFX_IDW_PANE_LAST 0xE9ff +#define AFX_IDW_HSCROLL_FIRST 0xEA00 // first Horz scrollbar (16 max) +#define AFX_IDW_VSCROLL_FIRST 0xEA10 // first Vert scrollbar (16 max) + +#define AFX_IDW_SIZE_BOX 0xEA20 // size box for splitters +#define AFX_IDW_PANE_SAVE 0xEA21 // to shift AFX_IDW_PANE_FIRST +#endif //!RC_INVOKED + +#ifndef APSTUDIO_INVOKED + +// common style for form views +#define AFX_WS_DEFAULT_VIEW (WS_CHILD | WS_VISIBLE | WS_BORDER) + +#endif //!APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// +// Standard app configurable strings + +// for application title (defaults to EXE name or name in constructor) +#define AFX_IDS_APP_TITLE 0xE000 +// idle message bar line +#define AFX_IDS_IDLEMESSAGE 0xE001 +// message bar line when in shift-F1 help mode +#define AFX_IDS_HELPMODEMESSAGE 0xE002 +// document title when editing OLE embedding +#define AFX_IDS_APP_TITLE_EMBEDDING 0xE003 +// company name +#define AFX_IDS_COMPANY_NAME 0xE004 +// object name when server is inplace +#define AFX_IDS_OBJ_TITLE_INPLACE 0xE005 + +///////////////////////////////////////////////////////////////////////////// +// Standard Commands + +// File commands +#define ID_FILE_NEW 0xE100 +#define ID_FILE_OPEN 0xE101 +#define ID_FILE_CLOSE 0xE102 +#define ID_FILE_SAVE 0xE103 +#define ID_FILE_SAVE_AS 0xE104 +#define ID_FILE_PAGE_SETUP 0xE105 +#define ID_FILE_PRINT_SETUP 0xE106 +#define ID_FILE_PRINT 0xE107 +#define ID_FILE_PRINT_DIRECT 0xE108 +#define ID_FILE_PRINT_PREVIEW 0xE109 +#define ID_FILE_UPDATE 0xE10A +#define ID_FILE_SAVE_COPY_AS 0xE10B +#define ID_FILE_SEND_MAIL 0xE10C + +#define ID_FILE_MRU_FIRST 0xE110 +#define ID_FILE_MRU_FILE1 0xE110 // range - 16 max +#define ID_FILE_MRU_FILE2 0xE111 +#define ID_FILE_MRU_FILE3 0xE112 +#define ID_FILE_MRU_FILE4 0xE113 +#define ID_FILE_MRU_FILE5 0xE114 +#define ID_FILE_MRU_FILE6 0xE115 +#define ID_FILE_MRU_FILE7 0xE116 +#define ID_FILE_MRU_FILE8 0xE117 +#define ID_FILE_MRU_FILE9 0xE118 +#define ID_FILE_MRU_FILE10 0xE119 +#define ID_FILE_MRU_FILE11 0xE11A +#define ID_FILE_MRU_FILE12 0xE11B +#define ID_FILE_MRU_FILE13 0xE11C +#define ID_FILE_MRU_FILE14 0xE11D +#define ID_FILE_MRU_FILE15 0xE11E +#define ID_FILE_MRU_FILE16 0xE11F +#define ID_FILE_MRU_LAST 0xE11F + +// Edit commands +#define ID_EDIT_CLEAR 0xE120 +#define ID_EDIT_CLEAR_ALL 0xE121 +#define ID_EDIT_COPY 0xE122 +#define ID_EDIT_CUT 0xE123 +#define ID_EDIT_FIND 0xE124 +#define ID_EDIT_PASTE 0xE125 +#define ID_EDIT_PASTE_LINK 0xE126 +#define ID_EDIT_PASTE_SPECIAL 0xE127 +#define ID_EDIT_REPEAT 0xE128 +#define ID_EDIT_REPLACE 0xE129 +#define ID_EDIT_SELECT_ALL 0xE12A +#define ID_EDIT_UNDO 0xE12B +#define ID_EDIT_REDO 0xE12C + +// Window commands +#define ID_WINDOW_NEW 0xE130 +#define ID_WINDOW_ARRANGE 0xE131 +#define ID_WINDOW_CASCADE 0xE132 +#define ID_WINDOW_TILE_HORZ 0xE133 +#define ID_WINDOW_TILE_VERT 0xE134 +#define ID_WINDOW_SPLIT 0xE135 +#ifndef RC_INVOKED // code only +#define AFX_IDM_WINDOW_FIRST 0xE130 +#define AFX_IDM_WINDOW_LAST 0xE13F +#define AFX_IDM_FIRST_MDICHILD 0xFF00 // window list starts here +#endif //!RC_INVOKED + +// Help and App commands +#define ID_APP_ABOUT 0xE140 +#define ID_APP_EXIT 0xE141 +#define ID_HELP_INDEX 0xE142 +#define ID_HELP_FINDER 0xE143 +#define ID_HELP_USING 0xE144 +#define ID_CONTEXT_HELP 0xE145 // shift-F1 +// special commands for processing help +#define ID_HELP 0xE146 // first attempt for F1 +#define ID_DEFAULT_HELP 0xE147 // last attempt + +// Misc +#define ID_NEXT_PANE 0xE150 +#define ID_PREV_PANE 0xE151 + +// Format +#define ID_FORMAT_FONT 0xE160 + +// OLE commands +#define ID_OLE_INSERT_NEW 0xE200 +#define ID_OLE_EDIT_LINKS 0xE201 +#define ID_OLE_EDIT_CONVERT 0xE202 +#define ID_OLE_EDIT_CHANGE_ICON 0xE203 +#define ID_OLE_EDIT_PROPERTIES 0xE204 +#define ID_OLE_VERB_FIRST 0xE210 // range - 16 max +#ifndef RC_INVOKED // code only +#define ID_OLE_VERB_LAST 0xE21F +#endif //!RC_INVOKED + +// for print preview dialog bar +#define AFX_ID_PREVIEW_CLOSE 0xE300 +#define AFX_ID_PREVIEW_NUMPAGE 0xE301 // One/Two Page button +#define AFX_ID_PREVIEW_NEXT 0xE302 +#define AFX_ID_PREVIEW_PREV 0xE303 +#define AFX_ID_PREVIEW_PRINT 0xE304 +#define AFX_ID_PREVIEW_ZOOMIN 0xE305 +#define AFX_ID_PREVIEW_ZOOMOUT 0xE306 + +// View commands (same number used as IDW used for control bar) +#define ID_VIEW_TOOLBAR 0xE800 +#define ID_VIEW_STATUS_BAR 0xE801 + // -> E8FF reserved for other control bar commands + +// RecordForm commands +#define ID_RECORD_FIRST 0xE900 +#define ID_RECORD_LAST 0xE901 +#define ID_RECORD_NEXT 0xE902 +#define ID_RECORD_PREV 0xE903 + +///////////////////////////////////////////////////////////////////////////// +// Standard control IDs + +#ifdef IDC_STATIC +#undef IDC_STATIC +#endif +#define IDC_STATIC (-1) // all static controls + +///////////////////////////////////////////////////////////////////////////// +// Standard string error/warnings + +#ifndef RC_INVOKED // code only +#define AFX_IDS_SCFIRST 0xEF00 +#endif //!RC_INVOKED + +#define AFX_IDS_SCSIZE 0xEF00 +#define AFX_IDS_SCMOVE 0xEF01 +#define AFX_IDS_SCMINIMIZE 0xEF02 +#define AFX_IDS_SCMAXIMIZE 0xEF03 +#define AFX_IDS_SCNEXTWINDOW 0xEF04 +#define AFX_IDS_SCPREVWINDOW 0xEF05 +#define AFX_IDS_SCCLOSE 0xEF06 +#define AFX_IDS_SCRESTORE 0xEF12 +#define AFX_IDS_SCTASKLIST 0xEF13 + +#define AFX_IDS_MDICHILD 0xEF1F + +#define AFX_IDS_DESKACCESSORY 0xEFDA + +// General strings +#define AFX_IDS_OPENFILE 0xF000 +#define AFX_IDS_SAVEFILE 0xF001 +#define AFX_IDS_ALLFILTER 0xF002 +#define AFX_IDS_UNTITLED 0xF003 +#define AFX_IDS_SAVEFILECOPY 0xF004 +#define AFX_IDS_PREVIEW_CLOSE 0xF005 +#define AFX_IDS_UNNAMED_FILE 0xF006 +#ifdef _MAC +#define AFX_IDS_ABOUT 0xF010 +#endif +#define AFX_IDS_HIDE 0xF011 + +// MFC Standard Exception Error messages +#define AFX_IDP_NO_ERROR_AVAILABLE 0xF020 +#define AFX_IDS_NOT_SUPPORTED_EXCEPTION 0xF021 +#define AFX_IDS_RESOURCE_EXCEPTION 0xF022 +#define AFX_IDS_MEMORY_EXCEPTION 0xF023 +#define AFX_IDS_USER_EXCEPTION 0xF024 + +// Printing and print preview strings +#define AFX_IDS_PRINTONPORT 0xF040 +#define AFX_IDS_ONEPAGE 0xF041 +#define AFX_IDS_TWOPAGE 0xF042 +#define AFX_IDS_PRINTPAGENUM 0xF043 +#define AFX_IDS_PREVIEWPAGEDESC 0xF044 +#define AFX_IDS_PRINTDEFAULTEXT 0xF045 +#define AFX_IDS_PRINTDEFAULT 0xF046 +#define AFX_IDS_PRINTFILTER 0xF047 +#define AFX_IDS_PRINTCAPTION 0xF048 +#define AFX_IDS_PRINTTOFILE 0xF049 + + +// OLE strings +#define AFX_IDS_OBJECT_MENUITEM 0xF080 +#define AFX_IDS_EDIT_VERB 0xF081 +#define AFX_IDS_ACTIVATE_VERB 0xF082 +#define AFX_IDS_CHANGE_LINK 0xF083 +#define AFX_IDS_AUTO 0xF084 +#define AFX_IDS_MANUAL 0xF085 +#define AFX_IDS_FROZEN 0xF086 +#define AFX_IDS_ALL_FILES 0xF087 +// dynamically changing menu items +#define AFX_IDS_SAVE_MENU 0xF088 +#define AFX_IDS_UPDATE_MENU 0xF089 +#define AFX_IDS_SAVE_AS_MENU 0xF08A +#define AFX_IDS_SAVE_COPY_AS_MENU 0xF08B +#define AFX_IDS_EXIT_MENU 0xF08C +#define AFX_IDS_UPDATING_ITEMS 0xF08D +// COlePasteSpecialDialog defines +#define AFX_IDS_METAFILE_FORMAT 0xF08E +#define AFX_IDS_DIB_FORMAT 0xF08F +#define AFX_IDS_BITMAP_FORMAT 0xF090 +#define AFX_IDS_LINKSOURCE_FORMAT 0xF091 +#define AFX_IDS_EMBED_FORMAT 0xF092 +// other OLE utility strings +#define AFX_IDS_PASTELINKEDTYPE 0xF094 +#define AFX_IDS_UNKNOWNTYPE 0xF095 +#define AFX_IDS_RTF_FORMAT 0xF096 +#define AFX_IDS_TEXT_FORMAT 0xF097 +// OLE datatype format error strings +#define AFX_IDS_INVALID_CURRENCY 0xF098 +#define AFX_IDS_INVALID_DATETIME 0xF099 +#define AFX_IDS_INVALID_DATETIMESPAN 0xF09A + +// General error / prompt strings +#define AFX_IDP_INVALID_FILENAME 0xF100 +#define AFX_IDP_FAILED_TO_OPEN_DOC 0xF101 +#define AFX_IDP_FAILED_TO_SAVE_DOC 0xF102 +#define AFX_IDP_ASK_TO_SAVE 0xF103 +#define AFX_IDP_FAILED_TO_CREATE_DOC 0xF104 +#define AFX_IDP_FILE_TOO_LARGE 0xF105 +#define AFX_IDP_FAILED_TO_START_PRINT 0xF106 +#define AFX_IDP_FAILED_TO_LAUNCH_HELP 0xF107 +#define AFX_IDP_INTERNAL_FAILURE 0xF108 // general failure +#define AFX_IDP_COMMAND_FAILURE 0xF109 // command failure +#define AFX_IDP_FAILED_MEMORY_ALLOC 0xF10A +#define AFX_IDP_UNREG_DONE 0xF10B +#define AFX_IDP_UNREG_FAILURE 0xF10C + +// DDV parse errors +#define AFX_IDP_PARSE_INT 0xF110 +#define AFX_IDP_PARSE_REAL 0xF111 +#define AFX_IDP_PARSE_INT_RANGE 0xF112 +#define AFX_IDP_PARSE_REAL_RANGE 0xF113 +#define AFX_IDP_PARSE_STRING_SIZE 0xF114 +#define AFX_IDP_PARSE_RADIO_BUTTON 0xF115 +#define AFX_IDP_PARSE_BYTE 0xF116 +#define AFX_IDP_PARSE_UINT 0xF117 +#define AFX_IDP_PARSE_DATETIME 0xF118 +#define AFX_IDP_PARSE_CURRENCY 0xF119 + +// CFile/CArchive error strings for user failure +#define AFX_IDP_FAILED_INVALID_FORMAT 0xF120 +#define AFX_IDP_FAILED_INVALID_PATH 0xF121 +#define AFX_IDP_FAILED_DISK_FULL 0xF122 +#define AFX_IDP_FAILED_ACCESS_READ 0xF123 +#define AFX_IDP_FAILED_ACCESS_WRITE 0xF124 +#define AFX_IDP_FAILED_IO_ERROR_READ 0xF125 +#define AFX_IDP_FAILED_IO_ERROR_WRITE 0xF126 + +// OLE errors / prompt strings +#define AFX_IDP_STATIC_OBJECT 0xF180 +#define AFX_IDP_FAILED_TO_CONNECT 0xF181 +#define AFX_IDP_SERVER_BUSY 0xF182 +#define AFX_IDP_BAD_VERB 0xF183 +#define AFX_IDP_FAILED_TO_NOTIFY 0xF185 +#define AFX_IDP_FAILED_TO_LAUNCH 0xF186 +#define AFX_IDP_ASK_TO_UPDATE 0xF187 +#define AFX_IDP_FAILED_TO_UPDATE 0xF188 +#define AFX_IDP_FAILED_TO_REGISTER 0xF189 +#define AFX_IDP_FAILED_TO_AUTO_REGISTER 0xF18A +#define AFX_IDP_FAILED_TO_CONVERT 0xF18B +#define AFX_IDP_GET_NOT_SUPPORTED 0xF18C +#define AFX_IDP_SET_NOT_SUPPORTED 0xF18D +#define AFX_IDP_ASK_TO_DISCARD 0xF18E +#define AFX_IDP_FAILED_TO_CREATE 0xF18F + +// MAPI errors / prompt strings +#define AFX_IDP_FAILED_MAPI_LOAD 0xF190 +#define AFX_IDP_INVALID_MAPI_DLL 0xF191 +#define AFX_IDP_FAILED_MAPI_SEND 0xF192 + +#define AFX_IDP_FILE_NONE 0xF1A0 +#define AFX_IDP_FILE_GENERIC 0xF1A1 +#define AFX_IDP_FILE_NOT_FOUND 0xF1A2 +#define AFX_IDP_FILE_BAD_PATH 0xF1A3 +#define AFX_IDP_FILE_TOO_MANY_OPEN 0xF1A4 +#define AFX_IDP_FILE_ACCESS_DENIED 0xF1A5 +#define AFX_IDP_FILE_INVALID_FILE 0xF1A6 +#define AFX_IDP_FILE_REMOVE_CURRENT 0xF1A7 +#define AFX_IDP_FILE_DIR_FULL 0xF1A8 +#define AFX_IDP_FILE_BAD_SEEK 0xF1A9 +#define AFX_IDP_FILE_HARD_IO 0xF1AA +#define AFX_IDP_FILE_SHARING 0xF1AB +#define AFX_IDP_FILE_LOCKING 0xF1AC +#define AFX_IDP_FILE_DISKFULL 0xF1AD +#define AFX_IDP_FILE_EOF 0xF1AE + +#define AFX_IDP_ARCH_NONE 0xF1B0 +#define AFX_IDP_ARCH_GENERIC 0xF1B1 +#define AFX_IDP_ARCH_READONLY 0xF1B2 +#define AFX_IDP_ARCH_ENDOFFILE 0xF1B3 +#define AFX_IDP_ARCH_WRITEONLY 0xF1B4 +#define AFX_IDP_ARCH_BADINDEX 0xF1B5 +#define AFX_IDP_ARCH_BADCLASS 0xF1B6 +#define AFX_IDP_ARCH_BADSCHEMA 0xF1B7 + +#define AFX_IDS_OCC_SCALEUNITS_PIXELS 0xF1C0 + +// 0xf200-0xf20f reserved + +// font names and point sizes +#define AFX_IDS_STATUS_FONT 0xF230 +#define AFX_IDS_TOOLTIP_FONT 0xF231 +#define AFX_IDS_UNICODE_FONT 0xF232 +#define AFX_IDS_MINI_FONT 0xF233 + +// ODBC Database errors / prompt strings +#ifndef RC_INVOKED // code only +#define AFX_IDP_SQL_FIRST 0xF280 +#endif //!RC_INVOKED +#define AFX_IDP_SQL_CONNECT_FAIL 0xF281 +#define AFX_IDP_SQL_RECORDSET_FORWARD_ONLY 0xF282 +#define AFX_IDP_SQL_EMPTY_COLUMN_LIST 0xF283 +#define AFX_IDP_SQL_FIELD_SCHEMA_MISMATCH 0xF284 +#define AFX_IDP_SQL_ILLEGAL_MODE 0xF285 +#define AFX_IDP_SQL_MULTIPLE_ROWS_AFFECTED 0xF286 +#define AFX_IDP_SQL_NO_CURRENT_RECORD 0xF287 +#define AFX_IDP_SQL_NO_ROWS_AFFECTED 0xF288 +#define AFX_IDP_SQL_RECORDSET_READONLY 0xF289 +#define AFX_IDP_SQL_SQL_NO_TOTAL 0xF28A +#define AFX_IDP_SQL_ODBC_LOAD_FAILED 0xF28B +#define AFX_IDP_SQL_DYNASET_NOT_SUPPORTED 0xF28C +#define AFX_IDP_SQL_SNAPSHOT_NOT_SUPPORTED 0xF28D +#define AFX_IDP_SQL_API_CONFORMANCE 0xF28E +#define AFX_IDP_SQL_SQL_CONFORMANCE 0xF28F +#define AFX_IDP_SQL_NO_DATA_FOUND 0xF290 +#define AFX_IDP_SQL_ROW_UPDATE_NOT_SUPPORTED 0xF291 +#define AFX_IDP_SQL_ODBC_V2_REQUIRED 0xF292 +#define AFX_IDP_SQL_NO_POSITIONED_UPDATES 0xF293 +#define AFX_IDP_SQL_LOCK_MODE_NOT_SUPPORTED 0xF294 +#define AFX_IDP_SQL_DATA_TRUNCATED 0xF295 +#define AFX_IDP_SQL_ROW_FETCH 0xF296 +#define AFX_IDP_SQL_INCORRECT_ODBC 0xF297 +#define AFX_IDP_SQL_UPDATE_DELETE_FAILED 0xF298 +#define AFX_IDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED 0xF299 +#define AFX_IDP_SQL_FIELD_NOT_FOUND 0xF29A +#define AFX_IDP_SQL_BOOKMARKS_NOT_SUPPORTED 0xF29B +#define AFX_IDP_SQL_BOOKMARKS_NOT_ENABLED 0xF29C + +// DAO Database errors / prompt strings +#ifndef RC_INVOKED // code only +#define AFX_IDP_DAO_FIRST 0xF2B0 +#endif //!RC_INVOKED +#define AFX_IDP_DAO_ENGINE_INITIALIZATION 0xF2B0 +#define AFX_IDP_DAO_DFX_BIND 0xF2B1 +#define AFX_IDP_DAO_OBJECT_NOT_OPEN 0xF2B2 + +// ICDAORecordset::GetRows Errors +// These are not placed in DAO Errors collection +// and must be handled directly by MFC. +#define AFX_IDP_DAO_ROWTOOSHORT 0xF2B3 +#define AFX_IDP_DAO_BADBINDINFO 0xF2B4 +#define AFX_IDP_DAO_COLUMNUNAVAILABLE 0xF2B5 + +///////////////////////////////////////////////////////////////////////////// +// Strings for ISAPI support + +#define AFX_IDS_HTTP_TITLE 0xF2D1 +#define AFX_IDS_HTTP_NO_TEXT 0xF2D2 +#define AFX_IDS_HTTP_BAD_REQUEST 0xF2D3 +#define AFX_IDS_HTTP_AUTH_REQUIRED 0xF2D4 +#define AFX_IDS_HTTP_FORBIDDEN 0xF2D5 +#define AFX_IDS_HTTP_NOT_FOUND 0xF2D6 +#define AFX_IDS_HTTP_SERVER_ERROR 0xF2D7 +#define AFX_IDS_HTTP_NOT_IMPLEMENTED 0xF2D8 + + +///////////////////////////////////////////////////////////////////////////// +// AFX implementation - control IDs (AFX_IDC) + +// Parts of dialogs +#define AFX_IDC_LISTBOX 100 +#define AFX_IDC_CHANGE 101 + +// for print dialog +#define AFX_IDC_PRINT_DOCNAME 201 +#define AFX_IDC_PRINT_PRINTERNAME 202 +#define AFX_IDC_PRINT_PORTNAME 203 +#define AFX_IDC_PRINT_PAGENUM 204 + +// Property Sheet control id's (determined with Spy++) +#define ID_APPLY_NOW 0x3021 +#define ID_WIZBACK 0x3023 +#define ID_WIZNEXT 0x3024 +#define ID_WIZFINISH 0x3025 +#define AFX_IDC_TAB_CONTROL 0x3020 + +///////////////////////////////////////////////////////////////////////////// +// IDRs for standard components + +#ifndef RC_INVOKED // code only +// These are really COMMDLG dialogs, so there usually isn't a resource +// for them, but these IDs are used as help IDs. +#define AFX_IDD_FILEOPEN 28676 +#define AFX_IDD_FILESAVE 28677 +#define AFX_IDD_FONT 28678 +#define AFX_IDD_COLOR 28679 +#define AFX_IDD_PRINT 28680 +#define AFX_IDD_PRINTSETUP 28681 +#define AFX_IDD_FIND 28682 +#define AFX_IDD_REPLACE 28683 +#endif //!RC_INVOKED + +// Standard dialogs app should leave alone (0x7801->) +#define AFX_IDD_NEWTYPEDLG 30721 +#define AFX_IDD_PRINTDLG 30722 +#define AFX_IDD_PREVIEW_TOOLBAR 30723 +#ifdef _MAC +#define AFX_IDD_PREVIEW_SHORTTOOLBAR 30731 +#endif + +// Dialogs defined for OLE2UI library +#define AFX_IDD_INSERTOBJECT 30724 +#define AFX_IDD_CHANGEICON 30725 +#define AFX_IDD_CONVERT 30726 +#define AFX_IDD_PASTESPECIAL 30727 +#define AFX_IDD_EDITLINKS 30728 +#define AFX_IDD_FILEBROWSE 30729 +#define AFX_IDD_BUSY 30730 + +#define AFX_IDD_OBJECTPROPERTIES 30732 +#define AFX_IDD_CHANGESOURCE 30733 + +// Standard cursors (0x7901->) + // AFX_IDC = Cursor resources +#define AFX_IDC_CONTEXTHELP 30977 // context sensitive help +#define AFX_IDC_MAGNIFY 30978 // print preview zoom +#define AFX_IDC_SMALLARROWS 30979 // splitter +#define AFX_IDC_HSPLITBAR 30980 // splitter +#define AFX_IDC_VSPLITBAR 30981 // splitter +#define AFX_IDC_NODROPCRSR 30982 // No Drop Cursor +#define AFX_IDC_TRACKNWSE 30983 // tracker +#define AFX_IDC_TRACKNESW 30984 // tracker +#define AFX_IDC_TRACKNS 30985 // tracker +#define AFX_IDC_TRACKWE 30986 // tracker +#define AFX_IDC_TRACK4WAY 30987 // tracker +#define AFX_IDC_MOVE4WAY 30988 // resize bar (server only) + +// Mini frame window bitmap ID +#define AFX_IDB_MINIFRAME_MENU 30994 + +// CheckListBox checks bitmap ID +#define AFX_IDB_CHECKLISTBOX_NT 30995 +#define AFX_IDB_CHECKLISTBOX_95 30996 + +// AFX standard accelerator resources +#define AFX_IDR_PREVIEW_ACCEL 30997 + +// AFX standard ICON IDs (for MFC V1 apps) (0x7A01->) +#define AFX_IDI_STD_MDIFRAME 31233 +#define AFX_IDI_STD_FRAME 31234 + +///////////////////////////////////////////////////////////////////////////// +// AFX OLE control implementation - control IDs (AFX_IDC) + +// Font property page +#define AFX_IDC_FONTPROP 1000 +#define AFX_IDC_FONTNAMES 1001 +#define AFX_IDC_FONTSTYLES 1002 +#define AFX_IDC_FONTSIZES 1003 +#define AFX_IDC_STRIKEOUT 1004 +#define AFX_IDC_UNDERLINE 1005 +#define AFX_IDC_SAMPLEBOX 1006 + +// Color property page +#define AFX_IDC_COLOR_BLACK 1100 +#define AFX_IDC_COLOR_WHITE 1101 +#define AFX_IDC_COLOR_RED 1102 +#define AFX_IDC_COLOR_GREEN 1103 +#define AFX_IDC_COLOR_BLUE 1104 +#define AFX_IDC_COLOR_YELLOW 1105 +#define AFX_IDC_COLOR_MAGENTA 1106 +#define AFX_IDC_COLOR_CYAN 1107 +#define AFX_IDC_COLOR_GRAY 1108 +#define AFX_IDC_COLOR_LIGHTGRAY 1109 +#define AFX_IDC_COLOR_DARKRED 1110 +#define AFX_IDC_COLOR_DARKGREEN 1111 +#define AFX_IDC_COLOR_DARKBLUE 1112 +#define AFX_IDC_COLOR_LIGHTBROWN 1113 +#define AFX_IDC_COLOR_DARKMAGENTA 1114 +#define AFX_IDC_COLOR_DARKCYAN 1115 +#define AFX_IDC_COLORPROP 1116 +#define AFX_IDC_SYSTEMCOLORS 1117 + +// Picture porperty page +#define AFX_IDC_PROPNAME 1201 +#define AFX_IDC_PICTURE 1202 +#define AFX_IDC_BROWSE 1203 +#define AFX_IDC_CLEAR 1204 + +///////////////////////////////////////////////////////////////////////////// +// IDRs for OLE control standard components + +// Standard propery page dialogs app should leave alone (0x7E01->) +#define AFX_IDD_PROPPAGE_COLOR 32257 +#define AFX_IDD_PROPPAGE_FONT 32258 +#define AFX_IDD_PROPPAGE_PICTURE 32259 + +#define AFX_IDB_TRUETYPE 32384 + +///////////////////////////////////////////////////////////////////////////// +// Standard OLE control strings + +// OLE Control page strings +#define AFX_IDS_PROPPAGE_UNKNOWN 0xFE01 +#define AFX_IDS_COLOR_DESKTOP 0xFE04 +#define AFX_IDS_COLOR_APPWORKSPACE 0xFE05 +#define AFX_IDS_COLOR_WNDBACKGND 0xFE06 +#define AFX_IDS_COLOR_WNDTEXT 0xFE07 +#define AFX_IDS_COLOR_MENUBAR 0xFE08 +#define AFX_IDS_COLOR_MENUTEXT 0xFE09 +#define AFX_IDS_COLOR_ACTIVEBAR 0xFE0A +#define AFX_IDS_COLOR_INACTIVEBAR 0xFE0B +#define AFX_IDS_COLOR_ACTIVETEXT 0xFE0C +#define AFX_IDS_COLOR_INACTIVETEXT 0xFE0D +#define AFX_IDS_COLOR_ACTIVEBORDER 0xFE0E +#define AFX_IDS_COLOR_INACTIVEBORDER 0xFE0F +#define AFX_IDS_COLOR_WNDFRAME 0xFE10 +#define AFX_IDS_COLOR_SCROLLBARS 0xFE11 +#define AFX_IDS_COLOR_BTNFACE 0xFE12 +#define AFX_IDS_COLOR_BTNSHADOW 0xFE13 +#define AFX_IDS_COLOR_BTNTEXT 0xFE14 +#define AFX_IDS_COLOR_BTNHIGHLIGHT 0xFE15 +#define AFX_IDS_COLOR_DISABLEDTEXT 0xFE16 +#define AFX_IDS_COLOR_HIGHLIGHT 0xFE17 +#define AFX_IDS_COLOR_HIGHLIGHTTEXT 0xFE18 +#define AFX_IDS_REGULAR 0xFE19 +#define AFX_IDS_BOLD 0xFE1A +#define AFX_IDS_ITALIC 0xFE1B +#define AFX_IDS_BOLDITALIC 0xFE1C +#define AFX_IDS_SAMPLETEXT 0xFE1D +#define AFX_IDS_DISPLAYSTRING_FONT 0xFE1E +#define AFX_IDS_DISPLAYSTRING_COLOR 0xFE1F +#define AFX_IDS_DISPLAYSTRING_PICTURE 0xFE20 +#define AFX_IDS_PICTUREFILTER 0xFE21 +#define AFX_IDS_PICTYPE_UNKNOWN 0xFE22 +#define AFX_IDS_PICTYPE_NONE 0xFE23 +#define AFX_IDS_PICTYPE_BITMAP 0xFE24 +#define AFX_IDS_PICTYPE_METAFILE 0xFE25 +#define AFX_IDS_PICTYPE_ICON 0xFE26 +#define AFX_IDS_COLOR_PPG 0xFE28 +#define AFX_IDS_COLOR_PPG_CAPTION 0xFE29 +#define AFX_IDS_FONT_PPG 0xFE2A +#define AFX_IDS_FONT_PPG_CAPTION 0xFE2B +#define AFX_IDS_PICTURE_PPG 0xFE2C +#define AFX_IDS_PICTURE_PPG_CAPTION 0xFE2D +#define AFX_IDS_PICTUREBROWSETITLE 0xFE30 +#define AFX_IDS_BORDERSTYLE_0 0xFE31 +#define AFX_IDS_BORDERSTYLE_1 0xFE32 + +// OLE Control verb names +#define AFX_IDS_VERB_EDIT 0xFE40 +#define AFX_IDS_VERB_PROPERTIES 0xFE41 + +// OLE Control internal error messages +#define AFX_IDP_PICTURECANTOPEN 0xFE83 +#define AFX_IDP_PICTURECANTLOAD 0xFE84 +#define AFX_IDP_PICTURETOOLARGE 0xFE85 +#define AFX_IDP_PICTUREREADFAILED 0xFE86 + +// Standard OLE Control error strings +#define AFX_IDP_E_ILLEGALFUNCTIONCALL 0xFEA0 +#define AFX_IDP_E_OVERFLOW 0xFEA1 +#define AFX_IDP_E_OUTOFMEMORY 0xFEA2 +#define AFX_IDP_E_DIVISIONBYZERO 0xFEA3 +#define AFX_IDP_E_OUTOFSTRINGSPACE 0xFEA4 +#define AFX_IDP_E_OUTOFSTACKSPACE 0xFEA5 +#define AFX_IDP_E_BADFILENAMEORNUMBER 0xFEA6 +#define AFX_IDP_E_FILENOTFOUND 0xFEA7 +#define AFX_IDP_E_BADFILEMODE 0xFEA8 +#define AFX_IDP_E_FILEALREADYOPEN 0xFEA9 +#define AFX_IDP_E_DEVICEIOERROR 0xFEAA +#define AFX_IDP_E_FILEALREADYEXISTS 0xFEAB +#define AFX_IDP_E_BADRECORDLENGTH 0xFEAC +#define AFX_IDP_E_DISKFULL 0xFEAD +#define AFX_IDP_E_BADRECORDNUMBER 0xFEAE +#define AFX_IDP_E_BADFILENAME 0xFEAF +#define AFX_IDP_E_TOOMANYFILES 0xFEB0 +#define AFX_IDP_E_DEVICEUNAVAILABLE 0xFEB1 +#define AFX_IDP_E_PERMISSIONDENIED 0xFEB2 +#define AFX_IDP_E_DISKNOTREADY 0xFEB3 +#define AFX_IDP_E_PATHFILEACCESSERROR 0xFEB4 +#define AFX_IDP_E_PATHNOTFOUND 0xFEB5 +#define AFX_IDP_E_INVALIDPATTERNSTRING 0xFEB6 +#define AFX_IDP_E_INVALIDUSEOFNULL 0xFEB7 +#define AFX_IDP_E_INVALIDFILEFORMAT 0xFEB8 +#define AFX_IDP_E_INVALIDPROPERTYVALUE 0xFEB9 +#define AFX_IDP_E_INVALIDPROPERTYARRAYINDEX 0xFEBA +#define AFX_IDP_E_SETNOTSUPPORTEDATRUNTIME 0xFEBB +#define AFX_IDP_E_SETNOTSUPPORTED 0xFEBC +#define AFX_IDP_E_NEEDPROPERTYARRAYINDEX 0xFEBD +#define AFX_IDP_E_SETNOTPERMITTED 0xFEBE +#define AFX_IDP_E_GETNOTSUPPORTEDATRUNTIME 0xFEBF +#define AFX_IDP_E_GETNOTSUPPORTED 0xFEC0 +#define AFX_IDP_E_PROPERTYNOTFOUND 0xFEC1 +#define AFX_IDP_E_INVALIDCLIPBOARDFORMAT 0xFEC2 +#define AFX_IDP_E_INVALIDPICTURE 0xFEC3 +#define AFX_IDP_E_PRINTERERROR 0xFEC4 +#define AFX_IDP_E_CANTSAVEFILETOTEMP 0xFEC5 +#define AFX_IDP_E_SEARCHTEXTNOTFOUND 0xFEC6 +#define AFX_IDP_E_REPLACEMENTSTOOLONG 0xFEC7 + + + + + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif + +#endif //__AFXRES_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxres.rc b/public/sdk/inc/mfc42/afxres.rc new file mode 100644 index 000000000..53c6f97d4 --- /dev/null +++ b/public/sdk/inc/mfc42/afxres.rc @@ -0,0 +1,223 @@ +// 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. + +#ifndef __AFXRES_RC__ +#define __AFXRES_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif //APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Default resource description for MFC applications +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// Strings + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_APPMENU_RESOURCES + AFX_IDS_OPENFILE, "Open" +#ifndef _MAC + AFX_IDS_SAVEFILE, "Save As" + AFX_IDS_ALLFILTER, "All Files (*.*)" + AFX_IDS_UNTITLED, "Untitled" +#else + AFX_IDS_SAVEFILE, "Save document as:" + AFX_IDS_ALLFILTER, "All Files" + AFX_IDS_UNTITLED, "untitled" + AFX_IDS_ABOUT, "About %1\205" +#endif + AFX_IDS_HIDE, "&Hide" +#endif // !_AFX_NO_APPMENUSTRING_RESOURCES + + AFX_IDS_MEMORY_EXCEPTION, "Out of memory." + AFX_IDS_NOT_SUPPORTED_EXCEPTION,"An unsupported operation was attempted." + AFX_IDS_RESOURCE_EXCEPTION, "A required resource was unavailable." + AFX_IDS_USER_EXCEPTION, "An unknown error has occurred." + + // General error prompts +#ifndef _AFX_NO_FILECMD_RESOURCES + AFX_IDP_INVALID_FILENAME, "Invalid filename." + AFX_IDP_FAILED_TO_OPEN_DOC, "Failed to open document." + AFX_IDP_FAILED_TO_SAVE_DOC, "Failed to save document." +#ifndef _MAC + AFX_IDP_ASK_TO_SAVE, "Save changes to %1?" +#else + AFX_IDP_ASK_TO_SAVE, "Save changes to the %1 document \042%2\042?" +#endif + AFX_IDP_FAILED_TO_CREATE_DOC, "Failed to create empty document." + AFX_IDP_FILE_TOO_LARGE, "The file is too large to open." + AFX_IDP_FAILED_TO_START_PRINT, "Could not start print job." +#endif // !_AFX_NO_FILECMD_RESOURCES + AFX_IDP_FAILED_TO_LAUNCH_HELP, "Failed to launch help." + AFX_IDP_INTERNAL_FAILURE, "Internal application error." + AFX_IDP_COMMAND_FAILURE, "Command failed." + AFX_IDP_FAILED_MEMORY_ALLOC "Insufficient memory to perform operation." + AFX_IDP_GET_NOT_SUPPORTED, "Unable to read write-only property." + AFX_IDP_SET_NOT_SUPPORTED, "Unable to write read-only property." + AFX_IDP_UNREG_DONE, "System registry entries have been removed and the INI file (if any) was deleted." + AFX_IDP_UNREG_FAILURE, "Not all of the system registry entries (or INI file) were removed." + + // CFile/CArchive error strings for user failure +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FAILED_INVALID_FORMAT "Unexpected file format." +#ifndef _MAC + AFX_IDP_FAILED_INVALID_PATH "%1\nCannot find this file.\nPlease verify that the correct path and file name are given." + AFX_IDP_FAILED_DISK_FULL "Destination disk drive is full." +#else + AFX_IDP_FAILED_INVALID_PATH "Cannot find the file \042%1.\042 Please verify that the correct file name is given." + AFX_IDP_FAILED_DISK_FULL "Destination disk is full." +#endif + AFX_IDP_FAILED_ACCESS_READ "Unable to read from %1, it is opened by someone else." + AFX_IDP_FAILED_ACCESS_WRITE "Unable to write to %1, it is read-only or opened by someone else." + AFX_IDP_FAILED_IO_ERROR_READ "An unexpected error occurred while reading %1." + AFX_IDP_FAILED_IO_ERROR_WRITE "An unexpected error occurred while writing %1." +#endif // !_AFX_NO_CFILE_RESOURCES + + // Parsing error prompts + AFX_IDP_PARSE_INT, "Please enter an integer." + AFX_IDP_PARSE_REAL, "Please enter a number." + AFX_IDP_PARSE_INT_RANGE, "Please enter an integer between %1 and %2." + AFX_IDP_PARSE_REAL_RANGE, "Please enter a number between %1 and %2." + AFX_IDP_PARSE_STRING_SIZE, "Please enter no more than %1 characters." + AFX_IDP_PARSE_RADIO_BUTTON, "Please select a button." + AFX_IDP_PARSE_BYTE, "Please enter an integer between 0 and 255." + AFX_IDP_PARSE_UINT, "Please enter a positive integer." + AFX_IDP_PARSE_DATETIME, "Please enter a date and/or time." + AFX_IDP_PARSE_CURRENCY, "Please enter a currency." + +#ifndef _AFX_NO_OLE_RESOURCES + // OLE strings required for both servers and containers + AFX_IDS_PASTELINKEDTYPE "Linked %s" + AFX_IDS_UNKNOWNTYPE "Unknown Type" +#ifndef _MAC + AFX_IDP_FAILED_TO_NOTIFY "%1\nUnable to register document.\nThe document may already be open." +#else + AFX_IDP_FAILED_TO_NOTIFY "Unable to register document \042%1.\042 The document may already be open." +#endif +#endif //!_AFX_NO_OLE_RESOURCES + + AFX_IDP_NO_ERROR_AVAILABLE "No error message is available." + +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FILE_NONE "No error occurred." + AFX_IDP_FILE_GENERIC "An unknown error occurred while accessing %1." + AFX_IDP_FILE_NOT_FOUND "%1 was not found." + AFX_IDP_FILE_BAD_PATH "%1 contains an invalid path." + AFX_IDP_FILE_TOO_MANY_OPEN "%1 could not be opened because there are too many open files." + AFX_IDP_FILE_ACCESS_DENIED "Access to %1 was denied." + AFX_IDP_FILE_INVALID_FILE "An invalid file handle was associated with %1." + AFX_IDP_FILE_REMOVE_CURRENT "%1 could not be removed because it is the current directory." + AFX_IDP_FILE_DIR_FULL "%1 could not be created because the directory is full." + AFX_IDP_FILE_BAD_SEEK "Seek failed on %1" + AFX_IDP_FILE_HARD_IO "A hardware I/O error was reported while accessing %1." + AFX_IDP_FILE_SHARING "A sharing violation occurred while accessing %1." + AFX_IDP_FILE_LOCKING "A locking violation occurred while accessing %1." + AFX_IDP_FILE_DISKFULL "Disk full while accessing %1." + AFX_IDP_FILE_EOF "An attempt was made to access %1 past its end." + AFX_IDS_UNNAMED_FILE "an unnamed file" +#endif // !_AFX_NO_CFILE_RESOURCES + + AFX_IDP_ARCH_NONE "No error occurred." + AFX_IDP_ARCH_GENERIC "An unknown error occurred while accessing %1." + AFX_IDP_ARCH_READONLY "An attempt was made to write to the reading %1." + AFX_IDP_ARCH_ENDOFFILE "An attempt was made to access %1 past its end." + AFX_IDP_ARCH_WRITEONLY "An attempt was made to read from the writing %1." + AFX_IDP_ARCH_BADINDEX "%1 has a bad format." + AFX_IDP_ARCH_BADCLASS "%1 contained an unexpected object." + AFX_IDP_ARCH_BADSCHEMA "%1 contains an incorrect schema." + +#ifndef _AFX_NO_MAPI_RESOURCES + // MAPI strings / error messages + AFX_IDP_FAILED_MAPI_LOAD "Unable to load mail system support." + AFX_IDP_INVALID_MAPI_DLL "Mail system DLL is invalid." + AFX_IDP_FAILED_MAPI_SEND "Send Mail failed to send message." +#endif //!_AFX_NO_MAPI_RESOURCES + +#ifndef _AFX_NO_OCC_RESOURCES + AFX_IDS_OCC_SCALEUNITS_PIXELS "pixels" +#endif //!_AFX_NO_OCC_RESOURCES +END + +///////////////////////////////////////////////////////////////////////////// +// Cursors + +AFX_IDC_CONTEXTHELP CURSOR DISCARDABLE "res\\help.cur" + +#ifndef _AFX_NO_SPLITTER_RESOURCES +AFX_IDC_SMALLARROWS CURSOR DISCARDABLE "res\\sarrows.cur" +AFX_IDC_HSPLITBAR CURSOR DISCARDABLE "res\\splith.cur" +AFX_IDC_VSPLITBAR CURSOR DISCARDABLE "res\\splitv.cur" +AFX_IDC_NODROPCRSR CURSOR DISCARDABLE "res\\nodrop.cur" +#endif //!_AFX_NO_SPLITTER_RESOURCES + +#ifndef _AFX_NO_TRACKER_RESOURCES +AFX_IDC_TRACKNWSE CURSOR DISCARDABLE "res\\trcknwse.cur" +AFX_IDC_TRACKNESW CURSOR DISCARDABLE "res\\trcknesw.cur" +AFX_IDC_TRACKNS CURSOR DISCARDABLE "res\\trckns.cur" +AFX_IDC_TRACKWE CURSOR DISCARDABLE "res\\trckwe.cur" +AFX_IDC_TRACK4WAY CURSOR DISCARDABLE "res\\trck4way.cur" +AFX_IDC_MOVE4WAY CURSOR DISCARDABLE "res\\move4way.cur" +#endif //!_AFX_NO_TRACKER_RESOURCES + +#ifndef _AFX_NO_CTL3D_RESOURCES +26567 BITMAP "res\\3dcheck.bmp" // Note: 26567 comes from CTL3D.H +#endif + +///////////////////////////////////////////////////////////////////////////// +// Standard Dialogs + +#ifndef _AFX_NO_NEWTYPEDLG_RESOURCES +AFX_IDD_NEWTYPEDLG DIALOG DISCARDABLE 9, 26, 183, 70 +#ifndef _MAC +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | 0x04 +#else +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION +#endif +CAPTION "New" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&New ",IDC_STATIC,6,5,123,8,NOT WS_GROUP + LISTBOX AFX_IDC_LISTBOX,6,15,125,49,WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,137,6,40,14 + PUSHBUTTON "Cancel",IDCANCEL,137,23,40,14 + PUSHBUTTON "&Help",ID_HELP,137,43,40,14 +END +#endif // !_AFX_NO_NEWTYPEDLG_RESOURCES + +///////////////////////////////////////////////////////////////////////////// +// CMiniFrameWnd Bitmap + +AFX_IDB_MINIFRAME_MENU BITMAP DISCARDABLE "res\\minifwnd.bmp" + +///////////////////////////////////////////////////////////////////////////// +// CCheckListBox Bitmaps + +AFX_IDB_CHECKLISTBOX_NT BITMAP DISCARDABLE "res\\ntcheck.bmp" +AFX_IDB_CHECKLISTBOX_95 BITMAP DISCARDABLE "res\\95check.bmp" + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //!__AFXRES_RC__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxrich.h b/public/sdk/inc/mfc42/afxrich.h new file mode 100644 index 000000000..3a4c28445 --- /dev/null +++ b/public/sdk/inc/mfc42/afxrich.h @@ -0,0 +1,399 @@ +// 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. + +#ifndef __AFXRICH_H__ +#define __AFXRICH_H__ + +#ifdef _AFX_NO_RICHEDIT_SUPPORT + #error Windows RichEdit classes not supported in this library variant. +#endif + +#ifndef __AFXWIN_H__ + #include <afxwin.h> +#endif +#ifndef __AFXDLGS_H__ + #include <afxdlgs.h> +#endif +#ifndef __AFXOLE_H__ + #include <afxole.h> +#endif +#ifndef _RICHEDIT_ + #include <richedit.h> +#endif +#ifndef _RICHOLE_ + #include <richole.h> + #define _RICHOLE_ +#endif +#ifndef __AFXCMN_H__ + #include <afxcmn.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// AFXRICH - MFC RichEdit classes + +// Classes declared in this file + +//CObject + //CCmdTarget; + //CWnd + //CView + //CCtrlView + class CRichEditView;// rich text editor view + + //CDocument + //COleDocument + class CRichEditDoc; + //CDocItem + //COleClientItem + class CRichEditCntrItem; + +#undef AFX_DATA +#define AFX_DATA AFX_OLE_DATA + +///////////////////////////////////////////////////////////////////////////// +// CRichEditView + +class _AFX_RICHEDIT_STATE; // private to implementation + +class CRichEditView : public CCtrlView +{ + DECLARE_DYNCREATE(CRichEditView) + +// Construction +public: + CRichEditView(); + +// Attributes +public: + enum WordWrapType + { + WrapNone = 0, + WrapToWindow = 1, + WrapToTargetDevice = 2 + }; + int m_nWordWrap; + int m_nBulletIndent; + + void SetPaperSize(CSize sizePaper); + CSize GetPaperSize() const; + void SetMargins(const CRect& rectMargin); + CRect GetMargins() const; + int GetPrintWidth() const; + CRect GetPrintRect() const; + CRect GetPageRect() const; + + //formatting + CHARFORMAT& GetCharFormatSelection(); + PARAFORMAT& GetParaFormatSelection(); + void SetCharFormat(CHARFORMAT cf); + void SetParaFormat(PARAFORMAT& pf); + CRichEditCntrItem* GetSelectedItem() const; + CRichEditCntrItem* GetInPlaceActiveItem() const; + + // CEdit control access + CRichEditCtrl& GetRichEditCtrl() const; + CRichEditDoc* GetDocument() const; + + // other attributes + long GetTextLength() const; + static BOOL AFX_CDECL IsRichEditFormat(CLIPFORMAT cf); + BOOL CanPaste() const; + +// Operations +public: + void AdjustDialogPosition(CDialog* pDlg); + HRESULT InsertItem(CRichEditCntrItem* pItem); + void InsertFileAsObject(LPCTSTR lpszFileName); + BOOL FindText(LPCTSTR lpszFind, BOOL bCase = TRUE, BOOL bWord = TRUE); + BOOL FindTextSimple(LPCTSTR lpszFind, BOOL bCase = TRUE, + BOOL bWord = TRUE); + long PrintInsideRect(CDC* pDC, RECT& rectLayout, long nIndexStart, + long nIndexStop, BOOL bOutput); + long PrintPage(CDC* pDC, long nIndexStart, long nIndexStop); + void DoPaste(COleDataObject& dataobj, CLIPFORMAT cf, + HMETAFILEPICT hMetaPict); + +// Helpers + void OnCharEffect(DWORD dwMask, DWORD dwEffect); + void OnUpdateCharEffect(CCmdUI* pCmdUI, DWORD dwMask, DWORD dwEffect) ; + void OnParaAlign(WORD wAlign); + void OnUpdateParaAlign(CCmdUI* pCmdUI, WORD wAlign); + +// Overrideables +protected: + virtual BOOL IsSelected(const CObject* pDocItem) const; + virtual void OnInitialUpdate(); + virtual void OnFindNext(LPCTSTR lpszFind, BOOL bNext, BOOL bCase, BOOL bWord); + virtual void OnReplaceSel(LPCTSTR lpszFind, BOOL bNext, BOOL bCase, + BOOL bWord, LPCTSTR lpszReplace); + virtual void OnReplaceAll(LPCTSTR lpszFind, LPCTSTR lpszReplace, + BOOL bCase, BOOL bWord); + virtual void OnTextNotFound(LPCTSTR lpszFind); + virtual void OnPrinterChanged(const CDC& dcPrinter); + virtual void WrapChanged(); + +// Advanced + virtual BOOL OnPasteNativeObject(LPSTORAGE lpStg); + virtual HMENU GetContextMenu(WORD, LPOLEOBJECT, CHARRANGE* ); + virtual HRESULT GetClipboardData(CHARRANGE* lpchrg, DWORD dwReco, + LPDATAOBJECT lpRichDataObj, LPDATAOBJECT* lplpdataobj); + virtual HRESULT QueryAcceptData(LPDATAOBJECT, CLIPFORMAT*, DWORD, + BOOL, HGLOBAL); + +// Implementation +public: + LPRICHEDITOLE m_lpRichEditOle; + CDC m_dcTarget; + long m_lInitialSearchPos; + UINT m_nPasteType; + BOOL m_bFirstSearch; + + void TextNotFound(LPCTSTR lpszFind); + BOOL FindText(_AFX_RICHEDIT_STATE* pEditState); + BOOL FindTextSimple(_AFX_RICHEDIT_STATE* pEditState); + long FindAndSelect(DWORD dwFlags, FINDTEXTEX& ft); + void Stream(CArchive& ar, BOOL bSelection); + HRESULT GetWindowContext(LPOLEINPLACEFRAME* lplpFrame, + LPOLEINPLACEUIWINDOW* lplpDoc, LPOLEINPLACEFRAMEINFO lpFrameInfo); + HRESULT ShowContainerUI(BOOL b); + static DWORD CALLBACK EditStreamCallBack(DWORD dwCookie, + LPBYTE pbBuff, LONG cb, LONG *pcb); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual void Serialize(CArchive& ar); + virtual void DeleteContents(); + virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo); + + static AFX_DATA ULONG lMaxSize; // maximum number of characters supported + +protected: + CRect m_rectMargin; + CSize m_sizePaper; + CDWordArray m_aPageStart; // array of starting pages + PARAFORMAT m_paraformat; + CHARFORMAT m_charformat; + BOOL m_bSyncCharFormat; + BOOL m_bSyncParaFormat; + + // construction + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + + // printing support + virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); + virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo); + virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo = NULL); + BOOL PaginateTo(CDC* pDC, CPrintInfo* pInfo); + + // find & replace support + void OnEditFindReplace(BOOL bFindOnly); + BOOL SameAsSelected(LPCTSTR lpszCompare, BOOL bCase, BOOL bWord); + + // special overrides for implementation + + //{{AFX_MSG(CRichEditView) + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnUpdateNeedSel(CCmdUI* pCmdUI); + afx_msg void OnUpdateNeedClip(CCmdUI* pCmdUI); + afx_msg void OnUpdateNeedText(CCmdUI* pCmdUI); + afx_msg void OnUpdateNeedFind(CCmdUI* pCmdUI); + afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI); + afx_msg void OnEditCut(); + afx_msg void OnEditCopy(); + afx_msg void OnEditPaste(); + afx_msg void OnEditClear(); + afx_msg void OnEditUndo(); + afx_msg void OnEditSelectAll(); + afx_msg void OnEditFind(); + afx_msg void OnEditReplace(); + afx_msg void OnEditRepeat(); + afx_msg void OnDestroy(); + afx_msg void OnEditProperties(); + afx_msg void OnUpdateEditProperties(CCmdUI* pCmdUI); + afx_msg void OnInsertObject(); + afx_msg void OnCancelEditCntr(); + afx_msg void OnCharBold(); + afx_msg void OnUpdateCharBold(CCmdUI* pCmdUI); + afx_msg void OnCharItalic(); + afx_msg void OnUpdateCharItalic(CCmdUI* pCmdUI); + afx_msg void OnCharUnderline(); + afx_msg void OnUpdateCharUnderline(CCmdUI* pCmdUI); + afx_msg void OnParaCenter(); + afx_msg void OnUpdateParaCenter(CCmdUI* pCmdUI); + afx_msg void OnParaLeft(); + afx_msg void OnUpdateParaLeft(CCmdUI* pCmdUI); + afx_msg void OnParaRight(); + afx_msg void OnUpdateParaRight(CCmdUI* pCmdUI); + afx_msg void OnBullet(); + afx_msg void OnUpdateBullet(CCmdUI* pCmdUI); + afx_msg void OnFormatFont(); + afx_msg void OnColorPick(COLORREF cr); + afx_msg void OnColorDefault(); + afx_msg void OnEditPasteSpecial(); + afx_msg void OnUpdateEditPasteSpecial(CCmdUI* pCmdUI); + afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnDropFiles(HDROP hDropInfo); + afx_msg void OnDevModeChange(LPTSTR lpDeviceName); + //}}AFX_MSG + afx_msg LRESULT OnFindReplaceCmd(WPARAM, LPARAM lParam); + afx_msg void OnSelChange(NMHDR* pNMHDR, LRESULT* pResult); + + DECLARE_MESSAGE_MAP() + +// Interface Map +public: + BEGIN_INTERFACE_PART(RichEditOleCallback, IRichEditOleCallback) + INIT_INTERFACE_PART(CRichEditView, RichEditOleCallback) + STDMETHOD(GetNewStorage) (LPSTORAGE*); + STDMETHOD(GetInPlaceContext) (LPOLEINPLACEFRAME*, + LPOLEINPLACEUIWINDOW*, + LPOLEINPLACEFRAMEINFO); + STDMETHOD(ShowContainerUI) (BOOL); + STDMETHOD(QueryInsertObject) (LPCLSID, LPSTORAGE, LONG); + STDMETHOD(DeleteObject) (LPOLEOBJECT); + STDMETHOD(QueryAcceptData) (LPDATAOBJECT, CLIPFORMAT*, DWORD,BOOL, HGLOBAL); + STDMETHOD(ContextSensitiveHelp) (BOOL); + STDMETHOD(GetClipboardData) (CHARRANGE*, DWORD, LPDATAOBJECT*); + STDMETHOD(GetDragDropEffect) (BOOL, DWORD, LPDWORD); + STDMETHOD(GetContextMenu) (WORD, LPOLEOBJECT, CHARRANGE*, HMENU*); + END_INTERFACE_PART(RichEditOleCallback) + + DECLARE_INTERFACE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// CRichEditDoc + +class CRichEditDoc : public COleServerDoc +{ +protected: // create from serialization only + CRichEditDoc(); + DECLARE_DYNAMIC(CRichEditDoc) + +// Attributes +public: + BOOL m_bRTF; // TRUE when formatted, FALSE when plain text + + virtual CRichEditCntrItem* CreateClientItem(REOBJECT* preo = NULL) const = 0; + + virtual CRichEditView* GetView() const; + int GetStreamFormat() const; + +// Implementation +protected: + virtual COleServerItem* OnGetEmbeddedItem(); + void MarkItemsClear() const; + void DeleteUnmarkedItems() const; + void UpdateObjectCache(); +public: + BOOL m_bUpdateObjectCache; + virtual void SetPathName(LPCTSTR lpszPathName, BOOL bAddToMRU); + virtual void SetTitle(LPCTSTR lpszTitle); + virtual COleClientItem* GetPrimarySelectedItem(CView* pView); + virtual void DeleteContents(); + virtual POSITION GetStartPosition() const; + virtual void PreCloseFrame(CFrameWnd* pFrameWnd); + virtual void UpdateModifiedFlag(); + virtual BOOL IsModified(); + virtual void SetModifiedFlag(BOOL bModified = TRUE); + virtual COleClientItem* GetInPlaceActiveItem(CWnd* pWnd); + CRichEditCntrItem* LookupItem(LPOLEOBJECT lpobj) const; + void InvalidateObjectCache(); + virtual void Serialize(CArchive& ar); // overridden for document i/o +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// CRichEditCntrItem + +class CRichEditCntrItem : public COleClientItem +{ + DECLARE_SERIAL(CRichEditCntrItem) + +// Constructors +public: + CRichEditCntrItem(REOBJECT* preo = NULL, CRichEditDoc* pContainer = NULL); + // Note: pContainer is allowed to be NULL to enable IMPLEMENT_SERIALIZE. + // IMPLEMENT_SERIALIZE requires the class have a constructor with + // zero arguments. Normally, OLE items are constructed with a + // non-NULL document pointer. + +// Operations + void SyncToRichEditObject(REOBJECT& reo); + +// Implementation +public: + ~CRichEditCntrItem(); + LPOLECLIENTSITE m_lpClientSite; + BOOL m_bMark; + BOOL m_bLock; // lock it during creation to avoid deletion + void Mark(BOOL b); + BOOL IsMarked(); + CRichEditDoc* GetDocument(); + CRichEditView* GetActiveView(); + HRESULT ShowContainerUI(BOOL b); + HRESULT GetWindowContext(LPOLEINPLACEFRAME* lplpFrame, + LPOLEINPLACEUIWINDOW* lplpDoc, LPOLEINPLACEFRAMEINFO lpFrameInfo); + virtual LPOLECLIENTSITE GetClientSite(); + virtual BOOL ConvertTo(REFCLSID clsidNew); + virtual BOOL ActivateAs(LPCTSTR lpszUserType, REFCLSID clsidOld, + REFCLSID clsidNew); + virtual void SetDrawAspect(DVASPECT nDrawAspect); + virtual void OnDeactivateUI(BOOL bUndoable); + virtual BOOL CanActivate(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + virtual BOOL OnChangeItemPosition(const CRect& rectPos); +}; + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXRICH_INLINE inline +#include <afxrich.inl> +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif //__AFXRICH_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxrich.inl b/public/sdk/inc/mfc42/afxrich.inl new file mode 100644 index 000000000..6cde683f3 --- /dev/null +++ b/public/sdk/inc/mfc42/afxrich.inl @@ -0,0 +1,56 @@ +// 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. + +// Inlines for AFXRICH.H + +#ifdef _AFXRICH_INLINE + +// CRichEditView +_AFXRICH_INLINE CRichEditCtrl& CRichEditView::GetRichEditCtrl() const + { return *(CRichEditCtrl*)this; } +int _AFXRICH_INLINE CRichEditView::GetPrintWidth() const + { return m_sizePaper.cx - m_rectMargin.left - m_rectMargin.right;} +CRect _AFXRICH_INLINE CRichEditView::GetPrintRect() const + { return CRect(m_rectMargin.left, m_rectMargin.top, m_sizePaper.cx - m_rectMargin.right, m_sizePaper.cy - m_rectMargin.bottom); } +CRect _AFXRICH_INLINE CRichEditView::GetPageRect() const + { return CRect(CPoint(0,0), m_sizePaper); } +void _AFXRICH_INLINE CRichEditView::SetPaperSize(CSize sizePaper) + { m_sizePaper = sizePaper; } +CSize _AFXRICH_INLINE CRichEditView::GetPaperSize() const + { return m_sizePaper; } +void _AFXRICH_INLINE CRichEditView::SetMargins(const CRect& rectMargin) + { m_rectMargin = rectMargin; } +CRect _AFXRICH_INLINE CRichEditView::GetMargins() const + { return m_rectMargin; } + +_AFXRICH_INLINE long CRichEditView::GetTextLength() const + { return GetRichEditCtrl().GetTextLength(); } +_AFXRICH_INLINE CRichEditDoc* CRichEditView::GetDocument() const +{ + ASSERT(m_pDocument != NULL); + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CRichEditDoc))); + return (CRichEditDoc*)m_pDocument; +} +_AFXRICH_INLINE int CRichEditDoc::GetStreamFormat() const + { return m_bRTF ? SF_RTF : SF_TEXT; } +_AFXRICH_INLINE void CRichEditDoc::InvalidateObjectCache() + { m_bUpdateObjectCache = TRUE; } + +_AFXRICH_INLINE void CRichEditCntrItem::Mark(BOOL b) + { m_bMark = b; } +_AFXRICH_INLINE BOOL CRichEditCntrItem::IsMarked() + { return m_bMark||m_bLock; } +_AFXRICH_INLINE CRichEditDoc* CRichEditCntrItem::GetDocument() + { return (CRichEditDoc*)COleClientItem::GetDocument(); } +_AFXRICH_INLINE CRichEditView* CRichEditCntrItem::GetActiveView() + { return (CRichEditView*)COleClientItem::GetActiveView(); } +#endif //_AFXRICH_INLINE + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxsock.h b/public/sdk/inc/mfc42/afxsock.h new file mode 100644 index 000000000..ced4fb851 --- /dev/null +++ b/public/sdk/inc/mfc42/afxsock.h @@ -0,0 +1,365 @@ +// 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. + +#ifndef __AFXSOCK_H__ +#define __AFXSOCK_H__ + +#ifdef _AFX_NO_SOCKET_SUPPORT + #error Windows Sockets classes not supported in this library variant. +#endif + +#ifndef __AFXWIN_H__ + #include <afxwin.h> +#endif + +#ifndef _WINSOCKAPI_ + #include <winsock.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifndef _AFX_NOFORCE_LIBS +#ifndef _MAC + +///////////////////////////////////////////////////////////////////////////// +// Win32 libraries + +#ifdef _AFXDLL + #if defined(_DEBUG) && !defined(_AFX_MONOLITHIC) + #ifndef _UNICODE + #pragma comment(lib, "mfcn42d.lib") + #else + #pragma comment(lib, "mfcn42ud.lib") + #endif + #endif +#endif + +#pragma comment(lib, "wsock32.lib") + +#else //!_MAC + +///////////////////////////////////////////////////////////////////////////// +// Mac libraries + +#ifdef _AFXDLL + #if defined(_DEBUG) + #pragma comment(lib, "mfcn42pd.lib") + #pragma comment(lib, "wslmd.lib") + #else + #pragma comment(lib, "mfcn42p.lib") + #pragma comment(lib, "wslm.lib") + #endif +#endif + +#endif //_MAC +#endif //!_AFX_NOFORCE_LIBS + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// AFXSOCK - MFC support for Windows Sockets + +// Classes declared in this file + + // CObject + class CAsyncSocket; // Async Socket implementation and + // base class for Synchronous Socket + class CSocket; // Synchronous Socket + + // CFile + class CSocketFile; // Used with CSocket and CArchive for + // streaming objects on sockets. + +///////////////////////////////////////////////////////////////////////////// + +// AFXDLL support +#undef AFX_DATA +#define AFX_DATA AFX_NET_DATA + +///////////////////////////////////////////////////////////////////////////// +// CSocketWnd -- internal use only +// Implementation for sockets notification callbacks. +// Future versions of MFC may or may not include this exact class. + +class CSocketWnd : public CWnd +{ +// Construction +public: + CSocketWnd(); + +protected: + //{{AFX_MSG(CSocketWnd) + LRESULT OnSocketNotify(WPARAM wParam, LPARAM lParam); + LRESULT OnSocketDead(WPARAM wParam, LPARAM lParam); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// CAsyncSocket + +class CAsyncSocket : public CObject +{ + DECLARE_DYNAMIC(CAsyncSocket); +private: + CAsyncSocket(const CAsyncSocket& rSrc); // no implementation + void operator=(const CAsyncSocket& rSrc); // no implementation + +// Construction +public: + CAsyncSocket(); + BOOL Create(UINT nSocketPort = 0, int nSocketType=SOCK_STREAM, + long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, + LPCTSTR lpszSocketAddress = NULL); + +// Attributes +public: + SOCKET m_hSocket; + + operator SOCKET() const; + BOOL Attach(SOCKET hSocket, long lEvent = + FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE); + SOCKET Detach(); + + BOOL GetPeerName(CString& rPeerAddress, UINT& rPeerPort); + BOOL GetPeerName(SOCKADDR* lpSockAddr, int* lpSockAddrLen); + + BOOL GetSockName(CString& rSocketAddress, UINT& rSocketPort); + BOOL GetSockName(SOCKADDR* lpSockAddr, int* lpSockAddrLen); + + BOOL SetSockOpt(int nOptionName, const void* lpOptionValue, + int nOptionLen, int nLevel = SOL_SOCKET); + BOOL GetSockOpt(int nOptionName, void* lpOptionValue, + int* lpOptionLen, int nLevel = SOL_SOCKET); + + static CAsyncSocket* PASCAL FromHandle(SOCKET hSocket); + static int PASCAL GetLastError(); + +// Operations +public: + + virtual BOOL Accept(CAsyncSocket& rConnectedSocket, + SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL); + + BOOL Bind(UINT nSocketPort, LPCTSTR lpszSocketAddress = NULL); + BOOL Bind (const SOCKADDR* lpSockAddr, int nSockAddrLen); + + virtual void Close(); + + BOOL Connect(LPCTSTR lpszHostAddress, UINT nHostPort); + BOOL Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen); + + BOOL IOCtl(long lCommand, DWORD* lpArgument); + + BOOL Listen(int nConnectionBacklog=5); + + virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); + + int ReceiveFrom(void* lpBuf, int nBufLen, + CString& rSocketAddress, UINT& rSocketPort, int nFlags = 0); + int ReceiveFrom(void* lpBuf, int nBufLen, + SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags = 0); + + enum { receives = 0, sends = 1, both = 2 }; + BOOL ShutDown(int nHow = sends); + + virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0); + + int SendTo(const void* lpBuf, int nBufLen, + UINT nHostPort, LPCTSTR lpszHostAddress = NULL, int nFlags = 0); + int SendTo(const void* lpBuf, int nBufLen, + const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags = 0); + + BOOL AsyncSelect(long lEvent = + FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE); + +// Overridable callbacks +protected: + virtual void OnReceive(int nErrorCode); + virtual void OnSend(int nErrorCode); + virtual void OnOutOfBandData(int nErrorCode); + virtual void OnAccept(int nErrorCode); + virtual void OnConnect(int nErrorCode); + virtual void OnClose(int nErrorCode); + +// Implementation +public: + virtual ~CAsyncSocket(); + + static CAsyncSocket* PASCAL LookupHandle(SOCKET hSocket, BOOL bDead = FALSE); + static void PASCAL AttachHandle(SOCKET hSocket, CAsyncSocket* pSocket, BOOL bDead = FALSE); + static void PASCAL DetachHandle(SOCKET hSocket, BOOL bDead = FALSE); + static void PASCAL KillSocket(SOCKET hSocket, CAsyncSocket* pSocket); + static void PASCAL DoCallBack(WPARAM wParam, LPARAM lParam); + + BOOL Socket(int nSocketType=SOCK_STREAM, long lEvent = + FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, + int nProtocolType = 0, int nAddressFormat = PF_INET); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + friend class CSocketWnd; + + virtual BOOL ConnectHelper(const SOCKADDR* lpSockAddr, int nSockAddrLen); + virtual int ReceiveFromHelper(void* lpBuf, int nBufLen, + SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags); + virtual int SendToHelper(const void* lpBuf, int nBufLen, + const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags); +}; + +///////////////////////////////////////////////////////////////////////////// +// CSocket + +class CSocket : public CAsyncSocket +{ + DECLARE_DYNAMIC(CSocket); +private: + CSocket(const CSocket& rSrc); // no implementation + void operator=(const CSocket& rSrc); // no implementation + +// Construction +public: + CSocket(); + BOOL Create(UINT nSocketPort = 0, int nSocketType=SOCK_STREAM, + LPCTSTR lpszSocketAddress = NULL); + +// Attributes +public: + BOOL IsBlocking(); + static CSocket* PASCAL FromHandle(SOCKET hSocket); + BOOL Attach(SOCKET hSocket); + +// Operations +public: + void CancelBlockingCall(); + +// Overridable callbacks +protected: + virtual BOOL OnMessagePending(); + +// Implementation +public: + int m_nTimeOut; + + virtual ~CSocket(); + + static int PASCAL ProcessAuxQueue(); + + virtual BOOL Accept(CAsyncSocket& rConnectedSocket, + SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL); + virtual void Close(); + virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); + virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0); + + int SendChunk(const void* lpBuf, int nBufLen, int nFlags); + +protected: + BOOL* m_pbBlocking; + int m_nConnectError; + + virtual BOOL ConnectHelper(const SOCKADDR* lpSockAddr, int nSockAddrLen); + virtual int ReceiveFromHelper(void* lpBuf, int nBufLen, + SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags); + virtual int SendToHelper(const void* lpBuf, int nBufLen, + const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags); + + static void PASCAL AuxQueueAdd(UINT message, WPARAM wParam, LPARAM lParam); + + virtual BOOL PumpMessages(UINT uStopFlag); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// CSocketFile + +class CSocketFile : public CFile +{ + DECLARE_DYNAMIC(CSocketFile) +public: +//Constructors + CSocketFile(CSocket* pSocket, BOOL bArchiveCompatible = TRUE); + +// Implementation +public: + CSocket* m_pSocket; + BOOL m_bArchiveCompatible; + + virtual ~CSocketFile(); + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual UINT Read(void* lpBuf, UINT nCount); + virtual void Write(const void* lpBuf, UINT nCount); + virtual void Close(); + +// Unsupported APIs + virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL); + virtual CFile* Duplicate() const; + virtual DWORD GetPosition() const; + virtual LONG Seek(LONG lOff, UINT nFrom); + virtual void SetLength(DWORD dwNewLen); + virtual DWORD GetLength() const; + virtual void LockRange(DWORD dwPos, DWORD dwCount); + virtual void UnlockRange(DWORD dwPos, DWORD dwCount); + virtual void Flush(); + virtual void Abort(); +}; + +///////////////////////////////////////////////////////////////////////////// +// Global functions + +BOOL AFXAPI AfxSocketInit(WSADATA* lpwsaData = NULL); +void AFXAPI AfxSocketTerm(); + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXSOCK_INLINE inline +#include <afxsock.inl> +#undef _AFXSOCK_INLINE +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif // __AFXSOCK_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxsock.inl b/public/sdk/inc/mfc42/afxsock.inl new file mode 100644 index 000000000..c668904f0 --- /dev/null +++ b/public/sdk/inc/mfc42/afxsock.inl @@ -0,0 +1,53 @@ +// 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. + +// Inlines for AFXSOCK.H + +#ifdef _AFXSOCK_INLINE + +_AFXSOCK_INLINE CAsyncSocket::operator SOCKET() const + { return m_hSocket; } +_AFXSOCK_INLINE BOOL CAsyncSocket::GetPeerName(SOCKADDR* lpSockAddr, int* lpSockAddrLen) + { return (SOCKET_ERROR != getpeername(m_hSocket, lpSockAddr, lpSockAddrLen)); } +_AFXSOCK_INLINE BOOL CAsyncSocket::GetSockName(SOCKADDR* lpSockAddr, int* lpSockAddrLen) + { return (SOCKET_ERROR != getsockname(m_hSocket, lpSockAddr, lpSockAddrLen)); } +_AFXSOCK_INLINE BOOL CAsyncSocket::SetSockOpt(int nOptionName, const void* lpOptionValue, int nOptionLen, int nLevel) + { return (SOCKET_ERROR != setsockopt(m_hSocket, nLevel, nOptionName, (LPCSTR)lpOptionValue, nOptionLen)); } +_AFXSOCK_INLINE BOOL CAsyncSocket::GetSockOpt(int nOptionName, void* lpOptionValue, int* lpOptionLen, int nLevel) + { return (SOCKET_ERROR != getsockopt(m_hSocket, nLevel, nOptionName, (LPSTR)lpOptionValue, lpOptionLen)); } +_AFXSOCK_INLINE CAsyncSocket* PASCAL CAsyncSocket::FromHandle(SOCKET hSocket) + { return CAsyncSocket::LookupHandle(hSocket, FALSE); } +_AFXSOCK_INLINE int PASCAL CAsyncSocket::GetLastError() + { return WSAGetLastError(); } +_AFXSOCK_INLINE BOOL CAsyncSocket::Bind(const SOCKADDR* lpSockAddr, int nSockAddrLen) + { return (SOCKET_ERROR != bind(m_hSocket, lpSockAddr, nSockAddrLen)); } +_AFXSOCK_INLINE BOOL CAsyncSocket::Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen) + { return ConnectHelper(lpSockAddr, nSockAddrLen); } +_AFXSOCK_INLINE BOOL CAsyncSocket::IOCtl(long lCommand, DWORD* lpArgument) + { return (SOCKET_ERROR != ioctlsocket(m_hSocket, lCommand, lpArgument)); } +_AFXSOCK_INLINE BOOL CAsyncSocket::Listen(int nConnectionBacklog) + { return (SOCKET_ERROR != listen(m_hSocket, nConnectionBacklog)); } +_AFXSOCK_INLINE int CAsyncSocket::ReceiveFrom(void* lpBuf, int nBufLen, SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags) + { return ReceiveFromHelper(lpBuf, nBufLen, lpSockAddr, lpSockAddrLen, nFlags); } +_AFXSOCK_INLINE BOOL CAsyncSocket::ShutDown(int nHow) + { return (SOCKET_ERROR != shutdown(m_hSocket,nHow)); } +_AFXSOCK_INLINE int CAsyncSocket::SendTo(const void* lpBuf, int nBufLen, const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags) + { return SendToHelper(lpBuf, nBufLen, lpSockAddr, nSockAddrLen, nFlags); } + +_AFXSOCK_INLINE BOOL CSocket::Create(UINT nSocketPort, int nSocketType, LPCTSTR lpszSocketAddress) + { return CAsyncSocket::Create(nSocketPort, nSocketType, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, lpszSocketAddress); } +_AFXSOCK_INLINE BOOL CSocket::IsBlocking() + { return (m_pbBlocking != NULL); } +_AFXSOCK_INLINE CSocket* PASCAL CSocket::FromHandle(SOCKET hSocket) + { return (CSocket*)CAsyncSocket::LookupHandle(hSocket, FALSE); } +_AFXSOCK_INLINE BOOL CSocket::Attach(SOCKET hSocket) + { return CAsyncSocket::Attach(hSocket); } + +#endif //_AFXSOCK_INLINE diff --git a/public/sdk/inc/mfc42/afxstat_.h b/public/sdk/inc/mfc42/afxstat_.h new file mode 100644 index 000000000..1b0dc5ab0 --- /dev/null +++ b/public/sdk/inc/mfc42/afxstat_.h @@ -0,0 +1,363 @@ +// 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. + +#ifndef __AFXSTATE_H__ +#define __AFXSTATE_H__ + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +#ifndef __AFXTLS_H__ + #include <afxtls_.h> +#endif + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +///////////////////////////////////////////////////////////////////////////// +// _AFX_DEBUG_STATE + +#ifdef _DEBUG + +class _AFX_DEBUG_STATE : public CNoTrackObject +{ +public: + _AFX_DEBUG_STATE(); + virtual ~_AFX_DEBUG_STATE(); +}; + +EXTERN_PROCESS_LOCAL(_AFX_DEBUG_STATE, afxDebugState) + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// _AFX_WIN_STATE + +#undef AFX_DATA +#define AFX_DATA + +class _AFX_WIN_STATE : public CNoTrackObject +{ +public: + _AFX_WIN_STATE(); + virtual ~_AFX_WIN_STATE(); + + // gray dialog support + HBRUSH m_hDlgBkBrush; // dialog and message box background brush + COLORREF m_crDlgTextClr; +#ifdef _MAC + COLORREF m_crDlgBkClr; +#endif + + // printing abort + BOOL m_bUserAbort; +}; + +EXTERN_PROCESS_LOCAL(_AFX_WIN_STATE, _afxWinState) + +///////////////////////////////////////////////////////////////////////////// +// Type library cache - AFX_INTERNAL + +#ifndef _AFX_NO_OLE_SUPPORT + +struct ITypeInfo; +typedef ITypeInfo* LPTYPEINFO; + +struct ITypeLib; +typedef ITypeLib* LPTYPELIB; + +typedef struct _GUID GUID; +#ifndef _REFCLSID_DEFINED +#define REFGUID const GUID & +#endif + +class CTypeLibCache +{ +public: + CTypeLibCache() : m_cRef(0), m_lcid((LCID)-1), m_ptlib(NULL), m_ptinfo(NULL) {} + void Lock(); + void Unlock(); + BOOL Lookup(LCID lcid, LPTYPELIB* pptlib); + void Cache(LCID lcid, LPTYPELIB ptlib); + BOOL LookupTypeInfo(LCID lcid, REFGUID guid, LPTYPEINFO* pptinfo); + void CacheTypeInfo(LCID lcid, REFGUID guid, LPTYPEINFO ptinfo); + const GUID* m_pTypeLibID; + +protected: + LCID m_lcid; + LPTYPELIB m_ptlib; + GUID m_guidInfo; + LPTYPEINFO m_ptinfo; + long m_cRef; +}; + +#endif //!_AFX_NO_OLE_SUPPORT + +///////////////////////////////////////////////////////////////////////////// +// AFX_MODULE_STATE : portion of state that is pushed/popped + +// forward references required for AFX_MODULE_THREAD_STATE definition +class CWinThread; +class CHandleMap; +class CFrameWnd; + +#ifndef _PNH_DEFINED +typedef int (__cdecl * _PNH)( size_t ); +#define _PNH_DEFINED +#endif + +// AFX_MODULE_THREAD_STATE (local to thread *and* module) +class AFX_MODULE_THREAD_STATE : public CNoTrackObject +{ +public: + AFX_MODULE_THREAD_STATE(); + virtual ~AFX_MODULE_THREAD_STATE(); + + // current CWinThread pointer + CWinThread* m_pCurrentWinThread; + + // list of CFrameWnd objects for thread + CTypedSimpleList<CFrameWnd*> m_frameList; + + // temporary/permanent map state + DWORD m_nTempMapLock; // if not 0, temp maps locked + CHandleMap* m_pmapHWND; + CHandleMap* m_pmapHMENU; + CHandleMap* m_pmapHDC; + CHandleMap* m_pmapHGDIOBJ; + CHandleMap* m_pmapHIMAGELIST; + + // thread-local MFC new handler (separate from C-runtime) + _PNH m_pfnNewHandler; + +#ifndef _AFX_NO_SOCKET_SUPPORT + // WinSock specific thread state + HWND m_hSocketWindow; + CMapPtrToPtr m_mapSocketHandle; + CMapPtrToPtr m_mapDeadSockets; + CPtrList m_listSocketNotifications; +#endif +}; + +// forward references required for AFX_MODULE_STATE definition +class CWinApp; +class COleObjectFactory; + +class CWnd; + +#ifdef _AFXDLL +class CDynLinkLibrary; +#endif + +#ifndef _AFX_NO_OCC_SUPPORT +class COccManager; +class COleControlLock; +#endif + +#ifndef _AFX_NO_DAO_SUPPORT +class _AFX_DAO_STATE; +#endif + +// AFX_MODULE_STATE (global data for a module) +class AFX_MODULE_STATE : public CNoTrackObject +{ +public: +#ifdef _AFXDLL + AFX_MODULE_STATE(BOOL bDLL, WNDPROC pfnAfxWndProc, DWORD dwVersion); + AFX_MODULE_STATE(BOOL bDLL, WNDPROC pfnAfxWndProc, DWORD dwVersion, + BOOL bSystem); +#else + AFX_MODULE_STATE(BOOL bDLL); +#endif + ~AFX_MODULE_STATE(); + + CWinApp* m_pCurrentWinApp; + HINSTANCE m_hCurrentInstanceHandle; + HINSTANCE m_hCurrentResourceHandle; + LPCTSTR m_lpszCurrentAppName; + BYTE m_bDLL; // TRUE if module is a DLL, FALSE if it is an EXE + BYTE m_bSystem; // TRUE if module is a "system" module, FALSE if not + BYTE m_bReserved[2]; // padding + + short m_fRegisteredClasses; // flags for registered window classes + + // runtime class data +#ifdef _AFXDLL + CRuntimeClass* m_pClassInit; +#endif + CTypedSimpleList<CRuntimeClass*> m_classList; + + // OLE object factories +#ifndef _AFX_NO_OLE_SUPPORT +#ifdef _AFXDLL + COleObjectFactory* m_pFactoryInit; +#endif + CTypedSimpleList<COleObjectFactory*> m_factoryList; +#endif + // number of locked OLE objects + long m_nObjectCount; + BOOL m_bUserCtrl; + + // AfxRegisterClass and AfxRegisterWndClass data + TCHAR m_szUnregisterList[4096]; +#ifdef _AFXDLL + WNDPROC m_pfnAfxWndProc; + DWORD m_dwVersion; // version that module linked against +#endif + + // variables related to a given process in a module + // (used to be AFX_MODULE_PROCESS_STATE) +#ifdef _AFX_OLD_EXCEPTIONS + // exceptions + AFX_TERM_PROC m_pfnTerminate; +#endif + void (PASCAL *m_pfnFilterToolTipMessage)(MSG*, CWnd*); + +#ifdef _AFXDLL + // CDynLinkLibrary objects (for resource chain) + CTypedSimpleList<CDynLinkLibrary*> m_libraryList; + + // special case for MFCxxLOC.DLL (localized MFC resources) + HINSTANCE m_appLangDLL; +#endif + +#ifndef _AFX_NO_OCC_SUPPORT + // OLE control container manager + COccManager* m_pOccManager; + // locked OLE controls + CTypedSimpleList<COleControlLock*> m_lockList; +#endif + +#ifndef _AFX_NO_DAO_SUPPORT + _AFX_DAO_STATE* m_pDaoState; +#endif + +#ifndef _AFX_NO_OLE_SUPPORT + // Type library caches + CTypeLibCache m_typeLibCache; + CMapPtrToPtr* m_pTypeLibCacheMap; +#endif + + // define thread local portions of module state + THREAD_LOCAL(AFX_MODULE_THREAD_STATE, m_thread) +}; + +AFX_MODULE_STATE* AFXAPI AfxGetAppModuleState(); +#ifdef _AFXDLL +AFX_MODULE_STATE* AFXAPI AfxSetModuleState(AFX_MODULE_STATE* pNewState); +#endif +AFX_MODULE_STATE* AFXAPI AfxGetModuleState(); +AFX_MODULE_STATE* AFXAPI AfxGetStaticModuleState(); + +AFX_MODULE_THREAD_STATE* AFXAPI AfxGetModuleThreadState(); + +#ifdef _AFXDLL +#define _AFX_CMDTARGET_GETSTATE() (m_pModuleState) +#else +#define _AFX_CMDTARGET_GETSTATE() (AfxGetModuleState()) +#endif + +///////////////////////////////////////////////////////////////////////////// +// macros & classes to manage pushing/popping the module state + +#ifdef _AFXDLL +struct AFX_MAINTAIN_STATE +{ + AFX_MAINTAIN_STATE(AFX_MODULE_STATE* pModuleState); + ~AFX_MAINTAIN_STATE(); + +protected: + AFX_MODULE_STATE* m_pPrevModuleState; +}; +#define AFX_MANAGE_STATE(p) AFX_MAINTAIN_STATE _ctlState(p); +#else // _AFXDLL +#define AFX_MANAGE_STATE(p) +#endif //!_AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Thread global state + +// forward references required for _AFX_THREAD_STATE definition +class CView; +class CToolTipCtrl; +class CControlBar; + +class _AFX_THREAD_STATE : public CNoTrackObject +{ +public: + _AFX_THREAD_STATE(); + virtual ~_AFX_THREAD_STATE(); + + // override for m_pModuleState in _AFX_APP_STATE + AFX_MODULE_STATE* m_pModuleState; + AFX_MODULE_STATE* m_pPrevModuleState; + + // memory safety pool for temp maps + void* m_pSafetyPoolBuffer; // current buffer + + // thread local exception context + AFX_EXCEPTION_CONTEXT m_exceptionContext; + + // CWnd create, gray dialog hook, and other hook data + CWnd* m_pWndInit; + CWnd* m_pAlternateWndInit; // special case commdlg hooking + DWORD m_dwPropStyle; + DWORD m_dwPropExStyle; + HWND m_hWndInit; + BOOL m_bDlgCreate; + HHOOK m_hHookOldCbtFilter; + HHOOK m_hHookOldMsgFilter; + + // other CWnd modal data + MSG m_lastSentMsg; // see CWnd::WindowProc + HWND m_hTrackingWindow; // see CWnd::TrackPopupMenu + HMENU m_hTrackingMenu; + TCHAR m_szTempClassName[96]; // see AfxRegisterWndClass + HWND m_hLockoutNotifyWindow; // see CWnd::OnCommand + BOOL m_bInMsgFilter; + + // other framework modal data + CView* m_pRoutingView; // see CCmdTarget::GetRoutingView + CFrameWnd* m_pRoutingFrame; // see CCmdTarget::GetRoutingFrame + + // MFC/DB thread-local data + BOOL m_bWaitForDataSource; + + // common controls thread state + CToolTipCtrl* m_pToolTip; + CWnd* m_pLastHit; // last window to own tooltip + int m_nLastHit; // last hittest code + TOOLINFO m_lastInfo; // last TOOLINFO structure + int m_nLastStatus; // last flyby status message + CControlBar* m_pLastStatus; // last flyby status control bar + + // OLE control thread-local data + CWnd* m_pWndPark; // "parking space" window + long m_nCtrlRef; // reference count on parking window + BOOL m_bNeedTerm; // TRUE if OleUninitialize needs to be called +}; + +EXTERN_THREAD_LOCAL(_AFX_THREAD_STATE, _afxThreadState) + +_AFX_THREAD_STATE* AFXAPI AfxGetThreadState(); + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#undef AFX_DATA +#define AFX_DATA + +#endif //__AFXSTATE_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxtempl.h b/public/sdk/inc/mfc42/afxtempl.h new file mode 100644 index 000000000..cb8469d0a --- /dev/null +++ b/public/sdk/inc/mfc42/afxtempl.h @@ -0,0 +1,1648 @@ +// 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. + +#ifndef __AFXTEMPL_H__ +#define __AFXTEMPL_H__ + +#ifndef __AFXPLEX_H__ + #include <afxplex_.h> +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +#ifdef _DEBUG +static char _szAfxTempl[] = "afxtempl.h"; +#undef THIS_FILE +#define THIS_FILE _szAfxTempl +#endif + +#ifndef ALL_WARNINGS +#pragma warning(disable: 4114) +#endif + +///////////////////////////////////////////////////////////////////////////// +// global helpers (can be overridden) + +#ifdef new +#undef new +#define _REDEF_NEW +#endif + +#ifndef _INC_NEW + #include <new.h> +#endif + +template<class TYPE> +inline void AFXAPI ConstructElements(TYPE* pElements, int nCount) +{ + ASSERT(nCount == 0 || + AfxIsValidAddress(pElements, nCount * sizeof(TYPE))); + + // first do bit-wise zero initialization + memset((void*)pElements, 0, nCount * sizeof(TYPE)); + + // then call the constructor(s) + for (; nCount--; pElements++) + ::new((void*)pElements) TYPE; +} + +template<class TYPE> +inline void AFXAPI DestructElements(TYPE* pElements, int nCount) +{ + ASSERT(nCount == 0 || + AfxIsValidAddress(pElements, nCount * sizeof(TYPE))); + + // call the destructor(s) + for (; nCount--; pElements++) + pElements->~TYPE(); +} + +template<class TYPE> +inline void AFXAPI CopyElements(TYPE* pDest, const TYPE* pSrc, int nCount) +{ + ASSERT(nCount == 0 || + AfxIsValidAddress(pDest, nCount * sizeof(TYPE))); + ASSERT(nCount == 0 || + AfxIsValidAddress(pSrc, nCount * sizeof(TYPE))); + + // default is element-copy using assignment + while (nCount--) + *pDest++ = *pSrc; +} + +template<class TYPE> +void AFXAPI SerializeElements(CArchive& ar, TYPE* pElements, int nCount) +{ + ASSERT(nCount == 0 || + AfxIsValidAddress(pElements, nCount * sizeof(TYPE))); + + // default is bit-wise read/write + if (ar.IsStoring()) + ar.Write((void*)pElements, nCount * sizeof(TYPE)); + else + ar.Read((void*)pElements, nCount * sizeof(TYPE)); +} + +#ifdef _DEBUG +template<class TYPE> +void AFXAPI DumpElements(CDumpContext& dc, const TYPE* pElements, int nCount) +{ + ASSERT(nCount == 0 || + AfxIsValidAddress(pElements, nCount * sizeof(TYPE))); + &dc; // not used + pElements; // not used + nCount; // not used + + // default does nothing +} +#endif + +template<class TYPE, class ARG_TYPE> +BOOL AFXAPI CompareElements(const TYPE* pElement1, const ARG_TYPE* pElement2) +{ + ASSERT(AfxIsValidAddress(pElement1, sizeof(TYPE))); + ASSERT(AfxIsValidAddress(pElement2, sizeof(ARG_TYPE))); + + return *pElement1 == *pElement2; +} + +template<class ARG_KEY> +inline UINT AFXAPI HashKey(ARG_KEY key) +{ + // default identity hash - works for most primitive values + return ((UINT)(void*)(DWORD)key) >> 4; +} + +// special versions for CString +void AFXAPI ConstructElements(CString* pElements, int nCount); +void AFXAPI DestructElements(CString* pElements, int nCount); +void AFXAPI CopyElements(CString* pDest, const CString* pSrc, int nCount); +void AFXAPI SerializeElements(CArchive& ar, CString* pElements, int nCount); +UINT AFXAPI HashKey(LPCTSTR key); + +// forward declarations +class COleVariant; +struct tagVARIANT; + +// special versions for COleVariant +void AFXAPI ConstructElements(COleVariant* pElements, int nCount); +void AFXAPI DestructElements(COleVariant* pElements, int nCount); +void AFXAPI CopyElements(COleVariant* pDest, const COleVariant* pSrc, int nCount); +void AFXAPI SerializeElements(CArchive& ar, COleVariant* pElements, int nCount); +void AFXAPI DumpElements(CDumpContext& dc, COleVariant* pElements, int nCount); +UINT AFXAPI HashKey(const struct tagVARIANT& var); + +#define new DEBUG_NEW + +///////////////////////////////////////////////////////////////////////////// +// CArray<TYPE, ARG_TYPE> + +template<class TYPE, class ARG_TYPE> +class CArray : public CObject +{ +public: +// Construction + CArray(); + +// Attributes + int GetSize() const; + int GetUpperBound() const; + void SetSize(int nNewSize, int nGrowBy = -1); + +// Operations + // Clean up + void FreeExtra(); + void RemoveAll(); + + // Accessing elements + TYPE GetAt(int nIndex) const; + void SetAt(int nIndex, ARG_TYPE newElement); + TYPE& ElementAt(int nIndex); + + // Direct Access to the element data (may return NULL) + const TYPE* GetData() const; + TYPE* GetData(); + + // Potentially growing the array + void SetAtGrow(int nIndex, ARG_TYPE newElement); + int Add(ARG_TYPE newElement); + int Append(const CArray& src); + void Copy(const CArray& src); + + // overloaded operator helpers + TYPE operator[](int nIndex) const; + TYPE& operator[](int nIndex); + + // Operations that move elements around + void InsertAt(int nIndex, ARG_TYPE newElement, int nCount = 1); + void RemoveAt(int nIndex, int nCount = 1); + void InsertAt(int nStartIndex, CArray* pNewArray); + +// Implementation +protected: + TYPE* m_pData; // the actual array of data + int m_nSize; // # of elements (upperBound - 1) + int m_nMaxSize; // max allocated + int m_nGrowBy; // grow amount + +public: + ~CArray(); + void Serialize(CArchive&); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// CArray<TYPE, ARG_TYPE> inline functions + +template<class TYPE, class ARG_TYPE> +inline int CArray<TYPE, ARG_TYPE>::GetSize() const + { return m_nSize; } +template<class TYPE, class ARG_TYPE> +inline int CArray<TYPE, ARG_TYPE>::GetUpperBound() const + { return m_nSize-1; } +template<class TYPE, class ARG_TYPE> +inline void CArray<TYPE, ARG_TYPE>::RemoveAll() + { SetSize(0, -1); } +template<class TYPE, class ARG_TYPE> +inline TYPE CArray<TYPE, ARG_TYPE>::GetAt(int nIndex) const + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +template<class TYPE, class ARG_TYPE> +inline void CArray<TYPE, ARG_TYPE>::SetAt(int nIndex, ARG_TYPE newElement) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + m_pData[nIndex] = newElement; } +template<class TYPE, class ARG_TYPE> +inline TYPE& CArray<TYPE, ARG_TYPE>::ElementAt(int nIndex) + { ASSERT(nIndex >= 0 && nIndex < m_nSize); + return m_pData[nIndex]; } +template<class TYPE, class ARG_TYPE> +inline const TYPE* CArray<TYPE, ARG_TYPE>::GetData() const + { return (const TYPE*)m_pData; } +template<class TYPE, class ARG_TYPE> +inline TYPE* CArray<TYPE, ARG_TYPE>::GetData() + { return (TYPE*)m_pData; } +template<class TYPE, class ARG_TYPE> +inline int CArray<TYPE, ARG_TYPE>::Add(ARG_TYPE newElement) + { int nIndex = m_nSize; + SetAtGrow(nIndex, newElement); + return nIndex; } +template<class TYPE, class ARG_TYPE> +inline TYPE CArray<TYPE, ARG_TYPE>::operator[](int nIndex) const + { return GetAt(nIndex); } +template<class TYPE, class ARG_TYPE> +inline TYPE& CArray<TYPE, ARG_TYPE>::operator[](int nIndex) + { return ElementAt(nIndex); } + +///////////////////////////////////////////////////////////////////////////// +// CArray<TYPE, ARG_TYPE> out-of-line functions + +template<class TYPE, class ARG_TYPE> +CArray<TYPE, ARG_TYPE>::CArray() +{ + m_pData = NULL; + m_nSize = m_nMaxSize = m_nGrowBy = 0; +} + +template<class TYPE, class ARG_TYPE> +CArray<TYPE, ARG_TYPE>::~CArray() +{ + ASSERT_VALID(this); + + if (m_pData != NULL) + { + DestructElements(m_pData, m_nSize); + delete[] (BYTE*)m_pData; + } +} + +template<class TYPE, class ARG_TYPE> +void CArray<TYPE, ARG_TYPE>::SetSize(int nNewSize, int nGrowBy) +{ + ASSERT_VALID(this); + ASSERT(nNewSize >= 0); + + if (nGrowBy != -1) + m_nGrowBy = nGrowBy; // set new size + + if (nNewSize == 0) + { + // shrink to nothing + if (m_pData != NULL) + { + DestructElements(m_pData, m_nSize); + delete[] (BYTE*)m_pData; + m_pData = NULL; + } + m_nSize = m_nMaxSize = 0; + } + else if (m_pData == NULL) + { + // create one with exact size +#ifdef SIZE_T_MAX + ASSERT(nNewSize <= SIZE_T_MAX/sizeof(TYPE)); // no overflow +#endif + m_pData = (TYPE*) new BYTE[nNewSize * sizeof(TYPE)]; + ConstructElements(m_pData, nNewSize); + m_nSize = m_nMaxSize = nNewSize; + } + else if (nNewSize <= m_nMaxSize) + { + // it fits + if (nNewSize > m_nSize) + { + // initialize the new elements + ConstructElements(&m_pData[m_nSize], nNewSize-m_nSize); + } + else if (m_nSize > nNewSize) + { + // destroy the old elements + DestructElements(&m_pData[nNewSize], m_nSize-nNewSize); + } + m_nSize = nNewSize; + } + else + { + // otherwise, grow array + int nGrowBy = m_nGrowBy; + if (nGrowBy == 0) + { + // heuristically determine growth when nGrowBy == 0 + // (this avoids heap fragmentation in many situations) + nGrowBy = m_nSize / 8; + nGrowBy = (nGrowBy < 4) ? 4 : ((nGrowBy > 1024) ? 1024 : nGrowBy); + } + int nNewMax; + if (nNewSize < m_nMaxSize + nGrowBy) + nNewMax = m_nMaxSize + nGrowBy; // granularity + else + nNewMax = nNewSize; // no slush + + ASSERT(nNewMax >= m_nMaxSize); // no wrap around +#ifdef SIZE_T_MAX + ASSERT(nNewMax <= SIZE_T_MAX/sizeof(TYPE)); // no overflow +#endif + TYPE* pNewData = (TYPE*) new BYTE[nNewMax * sizeof(TYPE)]; + + // copy new data from old + memcpy(pNewData, m_pData, m_nSize * sizeof(TYPE)); + + // construct remaining elements + ASSERT(nNewSize > m_nSize); + ConstructElements(&pNewData[m_nSize], nNewSize-m_nSize); + + // get rid of old stuff (note: no destructors called) + delete[] (BYTE*)m_pData; + m_pData = pNewData; + m_nSize = nNewSize; + m_nMaxSize = nNewMax; + } +} + +template<class TYPE, class ARG_TYPE> +int CArray<TYPE, ARG_TYPE>::Append(const CArray& src) +{ + ASSERT_VALID(this); + ASSERT(this != &src); // cannot append to itself + + int nOldSize = m_nSize; + SetSize(m_nSize + src.m_nSize); + CopyElements(m_pData + nOldSize, src.m_pData, src.m_nSize); + return nOldSize; +} + +template<class TYPE, class ARG_TYPE> +void CArray<TYPE, ARG_TYPE>::Copy(const CArray& src) +{ + ASSERT_VALID(this); + ASSERT(this != &src); // cannot append to itself + + SetSize(src.m_nSize); + CopyElements(m_pData, src.m_pData, src.m_nSize); +} + +template<class TYPE, class ARG_TYPE> +void CArray<TYPE, ARG_TYPE>::FreeExtra() +{ + ASSERT_VALID(this); + + if (m_nSize != m_nMaxSize) + { + // shrink to desired size +#ifdef SIZE_T_MAX + ASSERT(m_nSize <= SIZE_T_MAX/sizeof(TYPE)); // no overflow +#endif + TYPE* pNewData = NULL; + if (m_nSize != 0) + { + pNewData = (TYPE*) new BYTE[m_nSize * sizeof(TYPE)]; + // copy new data from old + memcpy(pNewData, m_pData, m_nSize * sizeof(TYPE)); + } + + // get rid of old stuff (note: no destructors called) + delete[] (BYTE*)m_pData; + m_pData = pNewData; + m_nMaxSize = m_nSize; + } +} + +template<class TYPE, class ARG_TYPE> +void CArray<TYPE, ARG_TYPE>::SetAtGrow(int nIndex, ARG_TYPE newElement) +{ + ASSERT_VALID(this); + ASSERT(nIndex >= 0); + + if (nIndex >= m_nSize) + SetSize(nIndex+1, -1); + m_pData[nIndex] = newElement; +} + +template<class TYPE, class ARG_TYPE> +void CArray<TYPE, ARG_TYPE>::InsertAt(int nIndex, ARG_TYPE newElement, int nCount /*=1*/) +{ + ASSERT_VALID(this); + ASSERT(nIndex >= 0); // will expand to meet need + ASSERT(nCount > 0); // zero or negative size not allowed + + if (nIndex >= m_nSize) + { + // adding after the end of the array + SetSize(nIndex + nCount, -1); // grow so nIndex is valid + } + else + { + // inserting in the middle of the array + int nOldSize = m_nSize; + SetSize(m_nSize + nCount, -1); // grow it to new size + // destroy intial data before copying over it + DestructElements(&m_pData[nOldSize], nCount); + // shift old data up to fill gap + memmove(&m_pData[nIndex+nCount], &m_pData[nIndex], + (nOldSize-nIndex) * sizeof(TYPE)); + + // re-init slots we copied from + ConstructElements(&m_pData[nIndex], nCount); + } + + // insert new value in the gap + ASSERT(nIndex + nCount <= m_nSize); + while (nCount--) + m_pData[nIndex++] = newElement; +} + +template<class TYPE, class ARG_TYPE> +void CArray<TYPE, ARG_TYPE>::RemoveAt(int nIndex, int nCount) +{ + ASSERT_VALID(this); + ASSERT(nIndex >= 0); + ASSERT(nCount >= 0); + ASSERT(nIndex + nCount <= m_nSize); + + // just remove a range + int nMoveCount = m_nSize - (nIndex + nCount); + DestructElements(&m_pData[nIndex], nCount); + if (nMoveCount) + memcpy(&m_pData[nIndex], &m_pData[nIndex + nCount], + nMoveCount * sizeof(TYPE)); + m_nSize -= nCount; +} + +template<class TYPE, class ARG_TYPE> +void CArray<TYPE, ARG_TYPE>::InsertAt(int nStartIndex, CArray* pNewArray) +{ + ASSERT_VALID(this); + ASSERT(pNewArray != NULL); + ASSERT_VALID(pNewArray); + ASSERT(nStartIndex >= 0); + + if (pNewArray->GetSize() > 0) + { + InsertAt(nStartIndex, pNewArray->GetAt(0), pNewArray->GetSize()); + for (int i = 0; i < pNewArray->GetSize(); i++) + SetAt(nStartIndex + i, pNewArray->GetAt(i)); + } +} + +template<class TYPE, class ARG_TYPE> +void CArray<TYPE, ARG_TYPE>::Serialize(CArchive& ar) +{ + ASSERT_VALID(this); + + CObject::Serialize(ar); + if (ar.IsStoring()) + { + ar.WriteCount(m_nSize); + } + else + { + DWORD nOldSize = ar.ReadCount(); + SetSize(nOldSize, -1); + } + SerializeElements(ar, m_pData, m_nSize); +} + +#ifdef _DEBUG +template<class TYPE, class ARG_TYPE> +void CArray<TYPE, ARG_TYPE>::Dump(CDumpContext& dc) const +{ + CObject::Dump(dc); + + dc << "with " << m_nSize << " elements"; + if (dc.GetDepth() > 0) + { + dc << "\n"; + DumpElements(dc, m_pData, m_nSize); + } + + dc << "\n"; +} + +template<class TYPE, class ARG_TYPE> +void CArray<TYPE, ARG_TYPE>::AssertValid() const +{ + CObject::AssertValid(); + + if (m_pData == NULL) + { + ASSERT(m_nSize == 0); + ASSERT(m_nMaxSize == 0); + } + else + { + ASSERT(m_nSize >= 0); + ASSERT(m_nMaxSize >= 0); + ASSERT(m_nSize <= m_nMaxSize); + ASSERT(AfxIsValidAddress(m_pData, m_nMaxSize * sizeof(TYPE))); + } +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CList<TYPE, ARG_TYPE> + +template<class TYPE, class ARG_TYPE> +class CList : public CObject +{ +protected: + struct CNode + { + CNode* pNext; + CNode* pPrev; + TYPE data; + }; +public: +// Construction + CList(int nBlockSize = 10); + +// Attributes (head and tail) + // count of elements + int GetCount() const; + BOOL IsEmpty() const; + + // peek at head or tail + TYPE& GetHead(); + TYPE GetHead() const; + TYPE& GetTail(); + TYPE GetTail() const; + +// Operations + // get head or tail (and remove it) - don't call on empty list ! + TYPE RemoveHead(); + TYPE RemoveTail(); + + // add before head or after tail + POSITION AddHead(ARG_TYPE newElement); + POSITION AddTail(ARG_TYPE newElement); + + // add another list of elements before head or after tail + void AddHead(CList* pNewList); + void AddTail(CList* pNewList); + + // remove all elements + void RemoveAll(); + + // iteration + POSITION GetHeadPosition() const; + POSITION GetTailPosition() const; + TYPE& GetNext(POSITION& rPosition); // return *Position++ + TYPE GetNext(POSITION& rPosition) const; // return *Position++ + TYPE& GetPrev(POSITION& rPosition); // return *Position-- + TYPE GetPrev(POSITION& rPosition) const; // return *Position-- + + // getting/modifying an element at a given position + TYPE& GetAt(POSITION position); + TYPE GetAt(POSITION position) const; + void SetAt(POSITION pos, ARG_TYPE newElement); + void RemoveAt(POSITION position); + + // inserting before or after a given position + POSITION InsertBefore(POSITION position, ARG_TYPE newElement); + POSITION InsertAfter(POSITION position, ARG_TYPE newElement); + + // helper functions (note: O(n) speed) + POSITION Find(ARG_TYPE searchValue, POSITION startAfter = NULL) const; + // defaults to starting at the HEAD, return NULL if not found + POSITION FindIndex(int nIndex) const; + // get the 'nIndex'th element (may return NULL) + +// Implementation +protected: + CNode* m_pNodeHead; + CNode* m_pNodeTail; + int m_nCount; + CNode* m_pNodeFree; + struct CPlex* m_pBlocks; + int m_nBlockSize; + + CNode* NewNode(CNode*, CNode*); + void FreeNode(CNode*); + +public: + ~CList(); + void Serialize(CArchive&); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// CList<TYPE, ARG_TYPE> inline functions + +template<class TYPE, class ARG_TYPE> +inline int CList<TYPE, ARG_TYPE>::GetCount() const + { return m_nCount; } +template<class TYPE, class ARG_TYPE> +inline BOOL CList<TYPE, ARG_TYPE>::IsEmpty() const + { return m_nCount == 0; } +template<class TYPE, class ARG_TYPE> +inline TYPE& CList<TYPE, ARG_TYPE>::GetHead() + { ASSERT(m_pNodeHead != NULL); + return m_pNodeHead->data; } +template<class TYPE, class ARG_TYPE> +inline TYPE CList<TYPE, ARG_TYPE>::GetHead() const + { ASSERT(m_pNodeHead != NULL); + return m_pNodeHead->data; } +template<class TYPE, class ARG_TYPE> +inline TYPE& CList<TYPE, ARG_TYPE>::GetTail() + { ASSERT(m_pNodeTail != NULL); + return m_pNodeTail->data; } +template<class TYPE, class ARG_TYPE> +inline TYPE CList<TYPE, ARG_TYPE>::GetTail() const + { ASSERT(m_pNodeTail != NULL); + return m_pNodeTail->data; } +template<class TYPE, class ARG_TYPE> +inline POSITION CList<TYPE, ARG_TYPE>::GetHeadPosition() const + { return (POSITION) m_pNodeHead; } +template<class TYPE, class ARG_TYPE> +inline POSITION CList<TYPE, ARG_TYPE>::GetTailPosition() const + { return (POSITION) m_pNodeTail; } +template<class TYPE, class ARG_TYPE> +inline TYPE& CList<TYPE, ARG_TYPE>::GetNext(POSITION& rPosition) // return *Position++ + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pNext; + return pNode->data; } +template<class TYPE, class ARG_TYPE> +inline TYPE CList<TYPE, ARG_TYPE>::GetNext(POSITION& rPosition) const // return *Position++ + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pNext; + return pNode->data; } +template<class TYPE, class ARG_TYPE> +inline TYPE& CList<TYPE, ARG_TYPE>::GetPrev(POSITION& rPosition) // return *Position-- + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pPrev; + return pNode->data; } +template<class TYPE, class ARG_TYPE> +inline TYPE CList<TYPE, ARG_TYPE>::GetPrev(POSITION& rPosition) const // return *Position-- + { CNode* pNode = (CNode*) rPosition; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + rPosition = (POSITION) pNode->pPrev; + return pNode->data; } +template<class TYPE, class ARG_TYPE> +inline TYPE& CList<TYPE, ARG_TYPE>::GetAt(POSITION position) + { CNode* pNode = (CNode*) position; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + return pNode->data; } +template<class TYPE, class ARG_TYPE> +inline TYPE CList<TYPE, ARG_TYPE>::GetAt(POSITION position) const + { CNode* pNode = (CNode*) position; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + return pNode->data; } +template<class TYPE, class ARG_TYPE> +inline void CList<TYPE, ARG_TYPE>::SetAt(POSITION pos, ARG_TYPE newElement) + { CNode* pNode = (CNode*) pos; + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + pNode->data = newElement; } + +template<class TYPE, class ARG_TYPE> +CList<TYPE, ARG_TYPE>::CList(int nBlockSize) +{ + ASSERT(nBlockSize > 0); + + m_nCount = 0; + m_pNodeHead = m_pNodeTail = m_pNodeFree = NULL; + m_pBlocks = NULL; + m_nBlockSize = nBlockSize; +} + +template<class TYPE, class ARG_TYPE> +void CList<TYPE, ARG_TYPE>::RemoveAll() +{ + ASSERT_VALID(this); + + // destroy elements + CNode* pNode; + for (pNode = m_pNodeHead; pNode != NULL; pNode = pNode->pNext) + DestructElements(&pNode->data, 1); + + m_nCount = 0; + m_pNodeHead = m_pNodeTail = m_pNodeFree = NULL; + m_pBlocks->FreeDataChain(); + m_pBlocks = NULL; +} + +template<class TYPE, class ARG_TYPE> +CList<TYPE, ARG_TYPE>::~CList() +{ + RemoveAll(); + ASSERT(m_nCount == 0); +} + +///////////////////////////////////////////////////////////////////////////// +// Node helpers +// +// Implementation note: CNode's are stored in CPlex blocks and +// chained together. Free blocks are maintained in a singly linked list +// using the 'pNext' member of CNode with 'm_pNodeFree' as the head. +// Used blocks are maintained in a doubly linked list using both 'pNext' +// and 'pPrev' as links and 'm_pNodeHead' and 'm_pNodeTail' +// as the head/tail. +// +// We never free a CPlex block unless the List is destroyed or RemoveAll() +// is used - so the total number of CPlex blocks may grow large depending +// on the maximum past size of the list. +// + +template<class TYPE, class ARG_TYPE> +CList<TYPE, ARG_TYPE>::CNode* +CList<TYPE, ARG_TYPE>::NewNode(CList::CNode* pPrev, CList::CNode* pNext) +{ + if (m_pNodeFree == NULL) + { + // add another block + CPlex* pNewBlock = CPlex::Create(m_pBlocks, m_nBlockSize, + sizeof(CNode)); + + // chain them into free list + CNode* pNode = (CNode*) pNewBlock->data(); + // free in reverse order to make it easier to debug + pNode += m_nBlockSize - 1; + for (int i = m_nBlockSize-1; i >= 0; i--, pNode--) + { + pNode->pNext = m_pNodeFree; + m_pNodeFree = pNode; + } + } + ASSERT(m_pNodeFree != NULL); // we must have something + + CList::CNode* pNode = m_pNodeFree; + m_pNodeFree = m_pNodeFree->pNext; + pNode->pPrev = pPrev; + pNode->pNext = pNext; + m_nCount++; + ASSERT(m_nCount > 0); // make sure we don't overflow + + ConstructElements(&pNode->data, 1); + return pNode; +} + +template<class TYPE, class ARG_TYPE> +void CList<TYPE, ARG_TYPE>::FreeNode(CList::CNode* pNode) +{ + DestructElements(&pNode->data, 1); + pNode->pNext = m_pNodeFree; + m_pNodeFree = pNode; + m_nCount--; + ASSERT(m_nCount >= 0); // make sure we don't underflow + + // if no more elements, cleanup completely + if (m_nCount == 0) + RemoveAll(); +} + +template<class TYPE, class ARG_TYPE> +POSITION CList<TYPE, ARG_TYPE>::AddHead(ARG_TYPE newElement) +{ + ASSERT_VALID(this); + + CNode* pNewNode = NewNode(NULL, m_pNodeHead); + pNewNode->data = newElement; + if (m_pNodeHead != NULL) + m_pNodeHead->pPrev = pNewNode; + else + m_pNodeTail = pNewNode; + m_pNodeHead = pNewNode; + return (POSITION) pNewNode; +} + +template<class TYPE, class ARG_TYPE> +POSITION CList<TYPE, ARG_TYPE>::AddTail(ARG_TYPE newElement) +{ + ASSERT_VALID(this); + + CNode* pNewNode = NewNode(m_pNodeTail, NULL); + pNewNode->data = newElement; + if (m_pNodeTail != NULL) + m_pNodeTail->pNext = pNewNode; + else + m_pNodeHead = pNewNode; + m_pNodeTail = pNewNode; + return (POSITION) pNewNode; +} + +template<class TYPE, class ARG_TYPE> +void CList<TYPE, ARG_TYPE>::AddHead(CList* pNewList) +{ + ASSERT_VALID(this); + + ASSERT(pNewList != NULL); + ASSERT_VALID(pNewList); + + // add a list of same elements to head (maintain order) + POSITION pos = pNewList->GetTailPosition(); + while (pos != NULL) + AddHead(pNewList->GetPrev(pos)); +} + +template<class TYPE, class ARG_TYPE> +void CList<TYPE, ARG_TYPE>::AddTail(CList* pNewList) +{ + ASSERT_VALID(this); + ASSERT(pNewList != NULL); + ASSERT_VALID(pNewList); + + // add a list of same elements + POSITION pos = pNewList->GetHeadPosition(); + while (pos != NULL) + AddTail(pNewList->GetNext(pos)); +} + +template<class TYPE, class ARG_TYPE> +TYPE CList<TYPE, ARG_TYPE>::RemoveHead() +{ + ASSERT_VALID(this); + ASSERT(m_pNodeHead != NULL); // don't call on empty list !!! + ASSERT(AfxIsValidAddress(m_pNodeHead, sizeof(CNode))); + + CNode* pOldNode = m_pNodeHead; + TYPE returnValue = pOldNode->data; + + m_pNodeHead = pOldNode->pNext; + if (m_pNodeHead != NULL) + m_pNodeHead->pPrev = NULL; + else + m_pNodeTail = NULL; + FreeNode(pOldNode); + return returnValue; +} + +template<class TYPE, class ARG_TYPE> +TYPE CList<TYPE, ARG_TYPE>::RemoveTail() +{ + ASSERT_VALID(this); + ASSERT(m_pNodeTail != NULL); // don't call on empty list !!! + ASSERT(AfxIsValidAddress(m_pNodeTail, sizeof(CNode))); + + CNode* pOldNode = m_pNodeTail; + TYPE returnValue = pOldNode->data; + + m_pNodeTail = pOldNode->pPrev; + if (m_pNodeTail != NULL) + m_pNodeTail->pNext = NULL; + else + m_pNodeHead = NULL; + FreeNode(pOldNode); + return returnValue; +} + +template<class TYPE, class ARG_TYPE> +POSITION CList<TYPE, ARG_TYPE>::InsertBefore(POSITION position, ARG_TYPE newElement) +{ + ASSERT_VALID(this); + + if (position == NULL) + return AddHead(newElement); // insert before nothing -> head of the list + + // Insert it before position + CNode* pOldNode = (CNode*) position; + CNode* pNewNode = NewNode(pOldNode->pPrev, pOldNode); + pNewNode->data = newElement; + + if (pOldNode->pPrev != NULL) + { + ASSERT(AfxIsValidAddress(pOldNode->pPrev, sizeof(CNode))); + pOldNode->pPrev->pNext = pNewNode; + } + else + { + ASSERT(pOldNode == m_pNodeHead); + m_pNodeHead = pNewNode; + } + pOldNode->pPrev = pNewNode; + return (POSITION) pNewNode; +} + +template<class TYPE, class ARG_TYPE> +POSITION CList<TYPE, ARG_TYPE>::InsertAfter(POSITION position, ARG_TYPE newElement) +{ + ASSERT_VALID(this); + + if (position == NULL) + return AddTail(newElement); // insert after nothing -> tail of the list + + // Insert it before position + CNode* pOldNode = (CNode*) position; + ASSERT(AfxIsValidAddress(pOldNode, sizeof(CNode))); + CNode* pNewNode = NewNode(pOldNode, pOldNode->pNext); + pNewNode->data = newElement; + + if (pOldNode->pNext != NULL) + { + ASSERT(AfxIsValidAddress(pOldNode->pNext, sizeof(CNode))); + pOldNode->pNext->pPrev = pNewNode; + } + else + { + ASSERT(pOldNode == m_pNodeTail); + m_pNodeTail = pNewNode; + } + pOldNode->pNext = pNewNode; + return (POSITION) pNewNode; +} + +template<class TYPE, class ARG_TYPE> +void CList<TYPE, ARG_TYPE>::RemoveAt(POSITION position) +{ + ASSERT_VALID(this); + + CNode* pOldNode = (CNode*) position; + ASSERT(AfxIsValidAddress(pOldNode, sizeof(CNode))); + + // remove pOldNode from list + if (pOldNode == m_pNodeHead) + { + m_pNodeHead = pOldNode->pNext; + } + else + { + ASSERT(AfxIsValidAddress(pOldNode->pPrev, sizeof(CNode))); + pOldNode->pPrev->pNext = pOldNode->pNext; + } + if (pOldNode == m_pNodeTail) + { + m_pNodeTail = pOldNode->pPrev; + } + else + { + ASSERT(AfxIsValidAddress(pOldNode->pNext, sizeof(CNode))); + pOldNode->pNext->pPrev = pOldNode->pPrev; + } + FreeNode(pOldNode); +} + +template<class TYPE, class ARG_TYPE> +POSITION CList<TYPE, ARG_TYPE>::FindIndex(int nIndex) const +{ + ASSERT_VALID(this); + ASSERT(nIndex >= 0); + + if (nIndex >= m_nCount) + return NULL; // went too far + + CNode* pNode = m_pNodeHead; + while (nIndex--) + { + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + pNode = pNode->pNext; + } + return (POSITION) pNode; +} + +template<class TYPE, class ARG_TYPE> +POSITION CList<TYPE, ARG_TYPE>::Find(ARG_TYPE searchValue, POSITION startAfter) const +{ + ASSERT_VALID(this); + + CNode* pNode = (CNode*) startAfter; + if (pNode == NULL) + { + pNode = m_pNodeHead; // start at head + } + else + { + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + pNode = pNode->pNext; // start after the one specified + } + + for (; pNode != NULL; pNode = pNode->pNext) + if (CompareElements(&pNode->data, &searchValue)) + return (POSITION)pNode; + return NULL; +} + +template<class TYPE, class ARG_TYPE> +void CList<TYPE, ARG_TYPE>::Serialize(CArchive& ar) +{ + ASSERT_VALID(this); + + CObject::Serialize(ar); + + if (ar.IsStoring()) + { + ar.WriteCount(m_nCount); + for (CNode* pNode = m_pNodeHead; pNode != NULL; pNode = pNode->pNext) + { + ASSERT(AfxIsValidAddress(pNode, sizeof(CNode))); + SerializeElements(ar, &pNode->data, 1); + } + } + else + { + DWORD nNewCount = ar.ReadCount(); + TYPE newData; + while (nNewCount--) + { + SerializeElements(ar, &newData, 1); + AddTail(newData); + } + } +} + +#ifdef _DEBUG +template<class TYPE, class ARG_TYPE> +void CList<TYPE, ARG_TYPE>::Dump(CDumpContext& dc) const +{ + CObject::Dump(dc); + + dc << "with " << m_nCount << " elements"; + if (dc.GetDepth() > 0) + { + POSITION pos = GetHeadPosition(); + while (pos != NULL) + { + dc << "\n"; + DumpElements(dc, &((CList*)this)->GetNext(pos), 1); + } + } + + dc << "\n"; +} + +template<class TYPE, class ARG_TYPE> +void CList<TYPE, ARG_TYPE>::AssertValid() const +{ + CObject::AssertValid(); + + if (m_nCount == 0) + { + // empty list + ASSERT(m_pNodeHead == NULL); + ASSERT(m_pNodeTail == NULL); + } + else + { + // non-empty list + ASSERT(AfxIsValidAddress(m_pNodeHead, sizeof(CNode))); + ASSERT(AfxIsValidAddress(m_pNodeTail, sizeof(CNode))); + } +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CMap<KEY, ARG_KEY, VALUE, ARG_VALUE> + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +class CMap : public CObject +{ +protected: + // Association + struct CAssoc + { + CAssoc* pNext; + UINT nHashValue; // needed for efficient iteration + KEY key; + VALUE value; + }; +public: +// Construction + CMap(int nBlockSize = 10); + +// Attributes + // number of elements + int GetCount() const; + BOOL IsEmpty() const; + + // Lookup + BOOL Lookup(ARG_KEY key, VALUE& rValue) const; + +// Operations + // Lookup and add if not there + VALUE& operator[](ARG_KEY key); + + // add a new (key, value) pair + void SetAt(ARG_KEY key, ARG_VALUE newValue); + + // removing existing (key, ?) pair + BOOL RemoveKey(ARG_KEY key); + void RemoveAll(); + + // iterating all (key, value) pairs + POSITION GetStartPosition() const; + void GetNextAssoc(POSITION& rNextPosition, KEY& rKey, VALUE& rValue) const; + + // advanced features for derived classes + UINT GetHashTableSize() const; + void InitHashTable(UINT hashSize, BOOL bAllocNow = TRUE); + +// Implementation +protected: + CAssoc** m_pHashTable; + UINT m_nHashTableSize; + int m_nCount; + CAssoc* m_pFreeList; + struct CPlex* m_pBlocks; + int m_nBlockSize; + + CAssoc* NewAssoc(); + void FreeAssoc(CAssoc*); + CAssoc* GetAssocAt(ARG_KEY, UINT&) const; + +public: + ~CMap(); + void Serialize(CArchive&); +#ifdef _DEBUG + void Dump(CDumpContext&) const; + void AssertValid() const; +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// CMap<KEY, ARG_KEY, VALUE, ARG_VALUE> inline functions + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +inline int CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::GetCount() const + { return m_nCount; } +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +inline BOOL CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::IsEmpty() const + { return m_nCount == 0; } +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +inline void CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::SetAt(ARG_KEY key, ARG_VALUE newValue) + { (*this)[key] = newValue; } +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +inline POSITION CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::GetStartPosition() const + { return (m_nCount == 0) ? NULL : BEFORE_START_POSITION; } +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +inline UINT CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::GetHashTableSize() const + { return m_nHashTableSize; } + +///////////////////////////////////////////////////////////////////////////// +// CMap<KEY, ARG_KEY, VALUE, ARG_VALUE> out-of-line functions + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::CMap(int nBlockSize) +{ + ASSERT(nBlockSize > 0); + + m_pHashTable = NULL; + m_nHashTableSize = 17; // default size + m_nCount = 0; + m_pFreeList = NULL; + m_pBlocks = NULL; + m_nBlockSize = nBlockSize; +} + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +void CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::InitHashTable( + UINT nHashSize, BOOL bAllocNow) +// +// Used to force allocation of a hash table or to override the default +// hash table size of (which is fairly small) +{ + ASSERT_VALID(this); + ASSERT(m_nCount == 0); + ASSERT(nHashSize > 0); + + if (m_pHashTable != NULL) + { + // free hash table + delete[] m_pHashTable; + m_pHashTable = NULL; + } + + if (bAllocNow) + { + m_pHashTable = new CAssoc* [nHashSize]; + memset(m_pHashTable, 0, sizeof(CAssoc*) * nHashSize); + } + m_nHashTableSize = nHashSize; +} + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +void CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::RemoveAll() +{ + ASSERT_VALID(this); + + if (m_pHashTable != NULL) + { + // destroy elements (values and keys) + for (UINT nHash = 0; nHash < m_nHashTableSize; nHash++) + { + CAssoc* pAssoc; + for (pAssoc = m_pHashTable[nHash]; pAssoc != NULL; + pAssoc = pAssoc->pNext) + { + DestructElements(&pAssoc->value, 1); + DestructElements(&pAssoc->key, 1); + } + } + } + + // free hash table + delete[] m_pHashTable; + m_pHashTable = NULL; + + m_nCount = 0; + m_pFreeList = NULL; + m_pBlocks->FreeDataChain(); + m_pBlocks = NULL; +} + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::~CMap() +{ + RemoveAll(); + ASSERT(m_nCount == 0); +} + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::CAssoc* +CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::NewAssoc() +{ + if (m_pFreeList == NULL) + { + // add another block + CPlex* newBlock = CPlex::Create(m_pBlocks, m_nBlockSize, sizeof(CMap::CAssoc)); + // chain them into free list + CMap::CAssoc* pAssoc = (CMap::CAssoc*) newBlock->data(); + // free in reverse order to make it easier to debug + pAssoc += m_nBlockSize - 1; + for (int i = m_nBlockSize-1; i >= 0; i--, pAssoc--) + { + pAssoc->pNext = m_pFreeList; + m_pFreeList = pAssoc; + } + } + ASSERT(m_pFreeList != NULL); // we must have something + + CMap::CAssoc* pAssoc = m_pFreeList; + m_pFreeList = m_pFreeList->pNext; + m_nCount++; + ASSERT(m_nCount > 0); // make sure we don't overflow + ConstructElements(&pAssoc->key, 1); + ConstructElements(&pAssoc->value, 1); // special construct values + return pAssoc; +} + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +void CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::FreeAssoc(CMap::CAssoc* pAssoc) +{ + DestructElements(&pAssoc->value, 1); + DestructElements(&pAssoc->key, 1); + pAssoc->pNext = m_pFreeList; + m_pFreeList = pAssoc; + m_nCount--; + ASSERT(m_nCount >= 0); // make sure we don't underflow + + // if no more elements, cleanup completely + if (m_nCount == 0) + RemoveAll(); +} + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::CAssoc* +CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::GetAssocAt(ARG_KEY key, UINT& nHash) const +// find association (or return NULL) +{ + nHash = HashKey(key) % m_nHashTableSize; + + if (m_pHashTable == NULL) + return NULL; + + // see if it exists + CAssoc* pAssoc; + for (pAssoc = m_pHashTable[nHash]; pAssoc != NULL; pAssoc = pAssoc->pNext) + { + if (CompareElements(&pAssoc->key, &key)) + return pAssoc; + } + return NULL; +} + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +BOOL CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::Lookup(ARG_KEY key, VALUE& rValue) const +{ + ASSERT_VALID(this); + + UINT nHash; + CAssoc* pAssoc = GetAssocAt(key, nHash); + if (pAssoc == NULL) + return FALSE; // not in map + + rValue = pAssoc->value; + return TRUE; +} + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +VALUE& CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::operator[](ARG_KEY key) +{ + ASSERT_VALID(this); + + UINT nHash; + CAssoc* pAssoc; + if ((pAssoc = GetAssocAt(key, nHash)) == NULL) + { + if (m_pHashTable == NULL) + InitHashTable(m_nHashTableSize); + + // it doesn't exist, add a new Association + pAssoc = NewAssoc(); + pAssoc->nHashValue = nHash; + pAssoc->key = key; + // 'pAssoc->value' is a constructed object, nothing more + + // put into hash table + pAssoc->pNext = m_pHashTable[nHash]; + m_pHashTable[nHash] = pAssoc; + } + return pAssoc->value; // return new reference +} + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +BOOL CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::RemoveKey(ARG_KEY key) +// remove key - return TRUE if removed +{ + ASSERT_VALID(this); + + if (m_pHashTable == NULL) + return FALSE; // nothing in the table + + CAssoc** ppAssocPrev; + ppAssocPrev = &m_pHashTable[HashKey(key) % m_nHashTableSize]; + + CAssoc* pAssoc; + for (pAssoc = *ppAssocPrev; pAssoc != NULL; pAssoc = pAssoc->pNext) + { + if (CompareElements(&pAssoc->key, &key)) + { + // remove it + *ppAssocPrev = pAssoc->pNext; // remove from list + FreeAssoc(pAssoc); + return TRUE; + } + ppAssocPrev = &pAssoc->pNext; + } + return FALSE; // not found +} + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +void CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::GetNextAssoc(POSITION& rNextPosition, + KEY& rKey, VALUE& rValue) const +{ + ASSERT_VALID(this); + ASSERT(m_pHashTable != NULL); // never call on empty map + + CAssoc* pAssocRet = (CAssoc*)rNextPosition; + ASSERT(pAssocRet != NULL); + + if (pAssocRet == (CAssoc*) BEFORE_START_POSITION) + { + // find the first association + for (UINT nBucket = 0; nBucket < m_nHashTableSize; nBucket++) + if ((pAssocRet = m_pHashTable[nBucket]) != NULL) + break; + ASSERT(pAssocRet != NULL); // must find something + } + + // find next association + ASSERT(AfxIsValidAddress(pAssocRet, sizeof(CAssoc))); + CAssoc* pAssocNext; + if ((pAssocNext = pAssocRet->pNext) == NULL) + { + // go to next bucket + for (UINT nBucket = pAssocRet->nHashValue + 1; + nBucket < m_nHashTableSize; nBucket++) + if ((pAssocNext = m_pHashTable[nBucket]) != NULL) + break; + } + + rNextPosition = (POSITION) pAssocNext; + + // fill in return data + rKey = pAssocRet->key; + rValue = pAssocRet->value; +} + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +void CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::Serialize(CArchive& ar) +{ + ASSERT_VALID(this); + + CObject::Serialize(ar); + + if (ar.IsStoring()) + { + ar.WriteCount(m_nCount); + if (m_nCount == 0) + return; // nothing more to do + + ASSERT(m_pHashTable != NULL); + for (UINT nHash = 0; nHash < m_nHashTableSize; nHash++) + { + CAssoc* pAssoc; + for (pAssoc = m_pHashTable[nHash]; pAssoc != NULL; + pAssoc = pAssoc->pNext) + { + SerializeElements(ar, &pAssoc->key, 1); + SerializeElements(ar, &pAssoc->value, 1); + } + } + } + else + { + DWORD nNewCount = ar.ReadCount(); + KEY newKey; + VALUE newValue; + while (nNewCount--) + { + SerializeElements(ar, &newKey, 1); + SerializeElements(ar, &newValue, 1); + SetAt(newKey, newValue); + } + } +} + +#ifdef _DEBUG +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +void CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::Dump(CDumpContext& dc) const +{ + CObject::Dump(dc); + + dc << "with " << m_nCount << " elements"; + if (dc.GetDepth() > 0) + { + // Dump in format "[key] -> value" + KEY key; + VALUE val; + + POSITION pos = GetStartPosition(); + while (pos != NULL) + { + GetNextAssoc(pos, key, val); + dc << "\n\t["; + DumpElements(dc, &key, 1); + dc << "] = "; + DumpElements(dc, &val, 1); + } + } + + dc << "\n"; +} + +template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE> +void CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>::AssertValid() const +{ + CObject::AssertValid(); + + ASSERT(m_nHashTableSize > 0); + ASSERT(m_nCount == 0 || m_pHashTable != NULL); + // non-empty map should have hash table +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CTypedPtrArray<BASE_CLASS, TYPE> + +template<class BASE_CLASS, class TYPE> +class CTypedPtrArray : public BASE_CLASS +{ +public: + // Accessing elements + TYPE GetAt(int nIndex) const + { return (TYPE)BASE_CLASS::GetAt(nIndex); } + TYPE& ElementAt(int nIndex) + { return (TYPE&)BASE_CLASS::ElementAt(nIndex); } + void SetAt(int nIndex, TYPE ptr) + { BASE_CLASS::SetAt(nIndex, ptr); } + + // Potentially growing the array + void SetAtGrow(int nIndex, TYPE newElement) + { BASE_CLASS::SetAtGrow(nIndex, newElement); } + int Add(TYPE newElement) + { return BASE_CLASS::Add(newElement); } + int Append(const CTypedPtrArray<BASE_CLASS, TYPE>& src) + { return BASE_CLASS::Append(src); } + void Copy(const CTypedPtrArray<BASE_CLASS, TYPE>& src) + { BASE_CLASS::Copy(src); } + + // Operations that move elements around + void InsertAt(int nIndex, TYPE newElement, int nCount = 1) + { BASE_CLASS::InsertAt(nIndex, newElement, nCount); } + void InsertAt(int nStartIndex, CTypedPtrArray<BASE_CLASS, TYPE>* pNewArray) + { BASE_CLASS::InsertAt(nStartIndex, pNewArray); } + + // overloaded operator helpers + TYPE operator[](int nIndex) const + { return (TYPE)BASE_CLASS::operator[](nIndex); } + TYPE& operator[](int nIndex) + { return (TYPE&)BASE_CLASS::operator[](nIndex); } +}; + +///////////////////////////////////////////////////////////////////////////// +// CTypedPtrList<BASE_CLASS, TYPE> + +template<class BASE_CLASS, class TYPE> +class CTypedPtrList : public BASE_CLASS +{ +public: +// Construction + CTypedPtrList(int nBlockSize = 10) + : BASE_CLASS(nBlockSize) { } + + // peek at head or tail + TYPE& GetHead() + { return (TYPE&)BASE_CLASS::GetHead(); } + TYPE GetHead() const + { return (TYPE)BASE_CLASS::GetHead(); } + TYPE& GetTail() + { return (TYPE&)BASE_CLASS::GetTail(); } + TYPE GetTail() const + { return (TYPE)BASE_CLASS::GetTail(); } + + // get head or tail (and remove it) - don't call on empty list! + TYPE RemoveHead() + { return (TYPE)BASE_CLASS::RemoveHead(); } + TYPE RemoveTail() + { return (TYPE)BASE_CLASS::RemoveTail(); } + + // add before head or after tail + POSITION AddHead(TYPE newElement) + { return BASE_CLASS::AddHead(newElement); } + POSITION AddTail(TYPE newElement) + { return BASE_CLASS::AddTail(newElement); } + + // add another list of elements before head or after tail + void AddHead(CTypedPtrList<BASE_CLASS, TYPE>* pNewList) + { BASE_CLASS::AddHead(pNewList); } + void AddTail(CTypedPtrList<BASE_CLASS, TYPE>* pNewList) + { BASE_CLASS::AddTail(pNewList); } + + // iteration + TYPE& GetNext(POSITION& rPosition) + { return (TYPE&)BASE_CLASS::GetNext(rPosition); } + TYPE GetNext(POSITION& rPosition) const + { return (TYPE)BASE_CLASS::GetNext(rPosition); } + TYPE& GetPrev(POSITION& rPosition) + { return (TYPE&)BASE_CLASS::GetPrev(rPosition); } + TYPE GetPrev(POSITION& rPosition) const + { return (TYPE)BASE_CLASS::GetPrev(rPosition); } + + // getting/modifying an element at a given position + TYPE& GetAt(POSITION position) + { return (TYPE&)BASE_CLASS::GetAt(position); } + TYPE GetAt(POSITION position) const + { return (TYPE)BASE_CLASS::GetAt(position); } + void SetAt(POSITION pos, TYPE newElement) + { BASE_CLASS::SetAt(pos, newElement); } +}; + +///////////////////////////////////////////////////////////////////////////// +// CTypedPtrMap<BASE_CLASS, KEY, VALUE> + +template<class BASE_CLASS, class KEY, class VALUE> +class CTypedPtrMap : public BASE_CLASS +{ +public: + +// Construction + CTypedPtrMap(int nBlockSize = 10) + : BASE_CLASS(nBlockSize) { } + + // Lookup + BOOL Lookup(BASE_CLASS::BASE_ARG_KEY key, VALUE& rValue) const + { return BASE_CLASS::Lookup(key, (BASE_CLASS::BASE_VALUE&)rValue); } + + // Lookup and add if not there + VALUE& operator[](BASE_CLASS::BASE_ARG_KEY key) + { return (VALUE&)BASE_CLASS::operator[](key); } + + // add a new key (key, value) pair + void SetAt(KEY key, VALUE newValue) + { BASE_CLASS::SetAt(key, newValue); } + + // removing existing (key, ?) pair + BOOL RemoveKey(KEY key) + { return BASE_CLASS::RemoveKey(key); } + + // iteration + void GetNextAssoc(POSITION& rPosition, KEY& rKey, VALUE& rValue) const + { BASE_CLASS::GetNextAssoc(rPosition, (BASE_CLASS::BASE_KEY&)rKey, + (BASE_CLASS::BASE_VALUE&)rValue); } +}; + +///////////////////////////////////////////////////////////////////////////// + +#undef THIS_FILE +#define THIS_FILE __FILE__ + +#undef new +#ifdef _REDEF_NEW +#define new DEBUG_NEW +#undef _REDEF_NEW +#endif + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +#endif //__AFXTEMPL_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxtls_.h b/public/sdk/inc/mfc42/afxtls_.h new file mode 100644 index 000000000..a60b9e23d --- /dev/null +++ b/public/sdk/inc/mfc42/afxtls_.h @@ -0,0 +1,240 @@ +// 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. + +#ifndef __AFXTLS_H__ +#define __AFXTLS_H__ + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +// Classes declared in this file + +class CSimpleList; +class CThreadSlotData; // for manipulationg thread local storage +class CThreadLocalObject; // for storing thread local data +class CProcessLocalObject; // for storing thread local data +class CNoTrackObject; + +// template class CTypedSimpleList<> +// template class CThreadLocal<> +// template class CProcessLocal<> + +///////////////////////////////////////////////////////////////////////////// +// CSimpleList (simple/small subset of CList) + +class CSimpleList +{ +public: + CSimpleList(int nNextOffset = 0); + void Construct(int nNextOffset); + +// Operations + BOOL IsEmpty() const; + void AddHead(void* p); + void RemoveAll(); + void* GetHead() const; + void* GetNext(void* p) const; + BOOL Remove(void* p); + +// Implementation + void* m_pHead; + size_t m_nNextOffset; + + void** GetNextPtr(void* p) const; // somewhat trusting... +}; + +inline CSimpleList::CSimpleList(int nNextOffset) + { m_pHead = NULL; m_nNextOffset = nNextOffset; } +inline void CSimpleList::Construct(int nNextOffset) + { ASSERT(m_pHead == NULL); m_nNextOffset = nNextOffset; } +inline BOOL CSimpleList::IsEmpty() const + { return m_pHead == NULL; } +inline void** CSimpleList::GetNextPtr(void* p) const + { ASSERT(p != NULL); return (void**)((BYTE*)p+m_nNextOffset); } +inline void CSimpleList::RemoveAll() + { m_pHead = NULL; } +inline void* CSimpleList::GetHead() const + { return m_pHead; } +inline void* CSimpleList::GetNext(void* prevElement) const + { return *GetNextPtr(prevElement); } + +template<class TYPE> +class CTypedSimpleList : public CSimpleList +{ +public: + CTypedSimpleList(int nNextOffset = 0) + : CSimpleList(nNextOffset) { } + void AddHead(TYPE p) + { CSimpleList::AddHead(p); } + TYPE GetHead() + { return (TYPE)CSimpleList::GetHead(); } + TYPE GetNext(TYPE p) + { return (TYPE)CSimpleList::GetNext(p); } + BOOL Remove(TYPE p) + { return CSimpleList::Remove((TYPE)p); } + operator TYPE() + { return (TYPE)CSimpleList::GetHead(); } +}; + +///////////////////////////////////////////////////////////////////////////// +// CThreadSlotData - manages owned array of "slots" for thread local storage + +struct CThreadData; // private to implementation +struct CSlotData; // private to implementation + +class CThreadSlotData +{ +public: + CThreadSlotData(); + +// Operations + int AllocSlot(); + void FreeSlot(int nSlot); + void* GetValue(int nSlot); + void SetValue(int nSlot, void* pValue); + // delete all values in process/thread + void DeleteValues(HINSTANCE hInst, BOOL bAll = FALSE); + // assign instance handle to just constructed slots + void AssignInstance(HINSTANCE hInst); + +// Implementation + DWORD m_tlsIndex; // used to access system thread-local storage + + int m_nAlloc; // number of slots allocated (in UINTs) + int m_nRover; // (optimization) for quick finding of free slots + int m_nMax; // size of slot table below (in bits) + CSlotData* m_pSlotData; // state of each slot (allocated or not) + CTypedSimpleList<CThreadData*> m_list; // list of CThreadData structures + CRITICAL_SECTION m_sect; + + void* GetThreadValue(int nSlot); // special version for threads only! + void* PASCAL operator new(size_t, void* p) + { return p; } + void DeleteValues(CThreadData* pData, HINSTANCE hInst); + ~CThreadSlotData(); +}; + +class CNoTrackObject +{ +public: + void* PASCAL operator new(size_t nSize); + void PASCAL operator delete(void*); + +#if defined(_DEBUG) && !defined(_AFX_NO_DEBUG_CRT) + void* PASCAL operator new(size_t nSize, LPCSTR, int); +#endif + virtual ~CNoTrackObject() { } +}; + +class CThreadLocalObject +{ +public: +// Attributes + CNoTrackObject* GetData(CNoTrackObject* (AFXAPI* pfnCreateObject)()); + CNoTrackObject* GetDataNA(); + +// Implementation + int m_nSlot; + ~CThreadLocalObject(); +}; + +class CProcessLocalObject +{ +public: +// Attributes + CNoTrackObject* GetData(CNoTrackObject* (AFXAPI* pfnCreateObject)()); + +// Implementation + CNoTrackObject* volatile m_pObject; + ~CProcessLocalObject(); +}; + +template<class TYPE> +class CThreadLocal : public CThreadLocalObject +{ +// Attributes +public: + inline TYPE* GetData() + { + TYPE* pData = (TYPE*)CThreadLocalObject::GetData(&CreateObject); + ASSERT(pData != NULL); + return pData; + } + inline TYPE* GetDataNA() + { + TYPE* pData = (TYPE*)CThreadLocalObject::GetDataNA(); + return pData; + } + inline operator TYPE*() + { return GetData(); } + inline TYPE* operator->() + { return GetData(); } + +// Implementation +public: + static CNoTrackObject* AFXAPI CreateObject() + { return new TYPE; } +}; + +#define THREAD_LOCAL(class_name, ident_name) \ + AFX_DATADEF CThreadLocal<class_name> ident_name; +#define EXTERN_THREAD_LOCAL(class_name, ident_name) \ + extern AFX_DATA THREAD_LOCAL(class_name, ident_name) + +template<class TYPE> +class CProcessLocal : public CProcessLocalObject +{ +// Attributes +public: + inline TYPE* GetData() + { + TYPE* pData = (TYPE*)CProcessLocalObject::GetData(&CreateObject); + ASSERT(pData != NULL); + return pData; + } + inline TYPE* GetDataNA() + { return (TYPE*)m_pObject; } + inline operator TYPE*() + { return GetData(); } + inline TYPE* operator->() + { return GetData(); } + +// Implementation +public: + static CNoTrackObject* AFXAPI CreateObject() + { return new TYPE; } +}; + +#define PROCESS_LOCAL(class_name, ident_name) \ + AFX_DATADEF CProcessLocal<class_name> ident_name; +#define EXTERN_PROCESS_LOCAL(class_name, ident_name) \ + extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) + +///////////////////////////////////////////////////////////////////////////// + +void AFXAPI AfxInitLocalData(HINSTANCE hInstInit); +void AFXAPI AfxTermLocalData(HINSTANCE hInstTerm, BOOL bAll = FALSE); +void AFXAPI AfxTlsAddRef(); +void AFXAPI AfxTlsRelease(); + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#undef AFX_DATA +#define AFX_DATA + +#endif //__AFXTLS_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxv_cfg.h b/public/sdk/inc/mfc42/afxv_cfg.h new file mode 100644 index 000000000..dca730f40 --- /dev/null +++ b/public/sdk/inc/mfc42/afxv_cfg.h @@ -0,0 +1,17 @@ +// afxv_cfg.h - target configuration control for non-Microsoft compilers +// +// 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. + +// You can define _AFX_PORTABLE in order to keep the library from using +// certain Microsoft extensions that are not commonly implemented by +// other compilers. + +#define _AFX_PORTABLE diff --git a/public/sdk/inc/mfc42/afxv_cpu.h b/public/sdk/inc/mfc42/afxv_cpu.h new file mode 100644 index 000000000..d38001152 --- /dev/null +++ b/public/sdk/inc/mfc42/afxv_cpu.h @@ -0,0 +1,63 @@ +// 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. + +// afxv_cpu.h - target version/configuration control for non-Intel CPUs + +#if !defined(_M_MRX000) && !defined(_M_ALPHA) && !defined(_M_PPC) && !defined(_M_M68K) && !defined(_M_MPPC) + #error afxv_cpu.h is only for MIPS R4000, DEC AXP, Motorola M68000, and IBM PowerPC builds +#endif + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _M_M68K +// specific overrides for M68K... +#define AFXAPI __cdecl +#define AFXOLEAPI __pascal +#ifndef _AFX_NO_DEBUG_CRT + #define _AFX_NO_DEBUG_CRT +#endif +#endif //_M_M68K + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _M_MPPC +// specific overrides for MPPC... +#define AFXAPI __cdecl +#endif //_M_MPPC + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _MIPS_ +// specific overrides for MIPS... +#define _AFX_PACKING 8 // default MIPS alignment (required) +#endif //_MIPS_ + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _ALPHA_ +// specific overrides for ALPHA... +#define _AFX_PACKING 8 // default AXP alignment (required) +#ifdef _AFX_NO_DEBUG_CRT +extern "C" void _BPT(); +#pragma intrinsic(_BPT) +#define AfxDebugBreak() _BPT() +#else +#define AfxDebugBreak() _CrtDbgBreak() +#endif +#endif //_ALPHA_ + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _PPC_ +// specific overrides for PPC... +#define _AFX_PACKING 8 // default PPC alignment (required) +#endif //_PPC_ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxv_dll.h b/public/sdk/inc/mfc42/afxv_dll.h new file mode 100644 index 000000000..b22778a5d --- /dev/null +++ b/public/sdk/inc/mfc42/afxv_dll.h @@ -0,0 +1,53 @@ +// 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. + +// special header for _AFXDLL variant. + +// default AFX_XXX_DATA and AFX_XXX_DATADEF macros for using MFC DLLs + +#ifndef AFX_CORE_DATA + #define AFX_CORE_DATA AFX_DATA_IMPORT + #define AFX_CORE_DATADEF +#endif + +#ifndef AFX_OLE_DATA + #define AFX_OLE_DATA AFX_DATA_IMPORT + #define AFX_OLE_DATADEF +#endif + +#ifndef AFX_DB_DATA + #define AFX_DB_DATA AFX_DATA_IMPORT + #define AFX_DB_DATADEF +#endif + +#ifndef AFX_NET_DATA + #define AFX_NET_DATA AFX_DATA_IMPORT + #define AFX_NET_DATADEF +#endif + +// default AFX_EXT_DATA and AFX_EXT_DATADEF macros for using or +// creating MFC extension DLLs, depending on _AFX_EXT_IMPL +// AFX_EXT_CLASS can be used to import or export entire classes +// in an extension DLL without the hassle of creating a .DEF file +// with decorated names. + +#ifndef AFX_EXT_DATA + #ifdef _AFXEXT + #define AFX_EXT_CLASS AFX_CLASS_EXPORT + #define AFX_EXT_API AFX_API_EXPORT + #define AFX_EXT_DATA AFX_DATA_EXPORT + #define AFX_EXT_DATADEF + #else + #define AFX_EXT_CLASS AFX_CLASS_IMPORT + #define AFX_EXT_API AFX_API_IMPORT + #define AFX_EXT_DATA AFX_DATA_IMPORT + #define AFX_EXT_DATADEF + #endif +#endif diff --git a/public/sdk/inc/mfc42/afxv_mac.h b/public/sdk/inc/mfc42/afxv_mac.h new file mode 100644 index 000000000..099e55c23 --- /dev/null +++ b/public/sdk/inc/mfc42/afxv_mac.h @@ -0,0 +1,52 @@ +// 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. + +// afxv_mac.h - target version/configuration control for Macintosh OS + +#if !defined(_MAC) + #error afxv_mac.h is used only for Macintosh-targeted builds +#endif + +#if !defined(_M_M68K) && !defined(_M_MPPC) + #error afxv_mac.h is used only for Motorola M68000 and Motorola PowerPC builds +#endif + +#define SystemSevenOrLater 1 + +#define _beginthreadex(p1, p2, p3, p4, p5, p6) NULL +#define _endthreadex(p1) + +// wcslen is defined in wlm +extern "C" size_t WINAPI wcslen(const wchar_t*); + +#ifdef _68K_ + #define _AFX_NO_DEBUG_CRT + #define _AFX_NO_SOCKET_SUPPORT +#endif + +#define _AFX_NO_SYNC_SUPPORT +#define _AFX_NO_DAO_SUPPORT +#define _AFX_NO_OCX_SUPPORT +#define _AFX_NO_OCC_SUPPORT +#define _AFX_NO_DOCOBJECT_SUPPORT +#define _AFX_NO_ATLSERVER_SUPPORT +#define OLE2ANSI + +#ifdef _AFX_NO_DEBUG_CRT +#ifdef _68K_ + pascal void _AfxDebugBreak(void) = 0xA9FF; + #define AfxDebugBreak() _AfxDebugBreak() +#else + extern "C" pascal void Debugger(void); + #define AfxDebugBreak() Debugger() +#endif +#endif + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxv_w32.h b/public/sdk/inc/mfc42/afxv_w32.h new file mode 100644 index 000000000..e97a5f210 --- /dev/null +++ b/public/sdk/inc/mfc42/afxv_w32.h @@ -0,0 +1,208 @@ +// 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. + +// afxv_w32.h - target version/configuration control for Win32 + +#ifdef _WINDOWS_ + #error WINDOWS.H already included. MFC apps must not #include <windows.h> +#endif + +// STRICT is the only supported option (NOSTRICT is no longer supported) +#ifndef STRICT +#define STRICT 1 +#endif + +// certain parts of WINDOWS.H are necessary +#undef NOKERNEL +#undef NOGDI +#undef NOUSER +#undef NODRIVERS +#undef NOLOGERROR +#undef NOPROFILER +#undef NOMEMMGR +#undef NOLFILEIO +#undef NOOPENFILE +#undef NORESOURCE +#undef NOATOM +#undef NOLANGUAGE +#undef NOLSTRING +#undef NODBCS +#undef NOKEYBOARDINFO +#undef NOGDICAPMASKS +#undef NOCOLOR +#undef NOGDIOBJ +#undef NODRAWTEXT +#undef NOTEXTMETRIC +#undef NOSCALABLEFONT +#undef NOBITMAP +#undef NORASTEROPS +#undef NOMETAFILE +#undef NOSYSMETRICS +#undef NOSYSTEMPARAMSINFO +#undef NOMSG +#undef NOWINSTYLES +#undef NOWINOFFSETS +#undef NOSHOWWINDOW +#undef NODEFERWINDOWPOS +#undef NOVIRTUALKEYCODES +#undef NOKEYSTATES +#undef NOWH +#undef NOMENUS +#undef NOSCROLL +#undef NOCLIPBOARD +#undef NOICONS +#undef NOMB +#undef NOSYSCOMMANDS +#undef NOMDI +#undef NOCTLMGR +#undef NOWINMESSAGES + +#ifndef WIN32 +#define WIN32 +#endif + +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif + +#ifdef _UNICODE +#ifndef UNICODE +#define UNICODE // UNICODE is used by Windows headers +#endif +#endif + +#ifdef UNICODE +#ifndef _UNICODE +#define _UNICODE // _UNICODE is used by C-runtime/MFC headers +#endif +#endif + +#ifdef VC_EXTRALEAN +#define WIN32_EXTRA_LEAN +#define NOSERVICE +#define NOMCX +#define NOIME +#define NOSOUND +#define NOCOMM +#define NOKANJI +#define NORPC +#define NOPROXYSTUB +#define NOIMAGE +#define NOTAPE + +#ifndef NO_ANSIUNI_ONLY +#ifdef _UNICODE +#define UNICODE_ONLY +#else +#define ANSI_ONLY +#endif +#endif //!NO_ANSIUNI_ONLY + +#endif //VC_EXTRALEAN + +#ifdef _MAC +#define _WIN32NLS +#define _WIN32REG +#define _WLM_NOFORCE_LIBS +#ifdef _AFXDLL +#define _WLMDLL +#endif +#endif + +///////////////////////////////////////////////////////////////////////////// +// Turn off warnings for /W4 +// To resume any of these warning: #pragma warning(default: 4xxx) +// which should be placed after the AFX include files + +#ifndef ALL_WARNINGS +#pragma warning(disable: 4201) // winnt.h uses nameless structs +#endif + +#include <windows.h> + +struct HKEY__; +typedef struct HKEY__ *HKEY; + +#ifndef _INC_COMMCTRL + #include <commctrl.h> +#endif + +#ifndef EXPORT +#define EXPORT +#endif + +#ifndef _INC_TCHAR + #include <tchar.h> // used for ANSI v.s. UNICODE abstraction +#endif +#ifdef _MBCS +#ifndef _INC_MBCTYPE + #include <mbctype.h> +#endif +#ifndef _INC_MBSTRING + #include <mbstring.h> +#endif +#endif + +///////////////////////////////////////////////////////////////////////////// +// Now for the Windows API specific parts + +// WM_CTLCOLOR for 16 bit API compatability +#define WM_CTLCOLOR 0x0019 + +// Win32 uses macros with parameters for this, which breaks C++ code. +#ifdef GetWindowTask +#undef GetWindowTask +inline HTASK GetWindowTask(HWND hWnd) + { return (HTASK)::GetWindowThreadProcessId(hWnd, NULL); } +#endif + +// Win32 uses macros with parameters for this, which breaks C++ code. +#ifdef GetNextWindow +#undef GetNextWindow +inline HWND GetNextWindow(HWND hWnd, UINT nDirection) + { return ::GetWindow(hWnd, nDirection); } +#endif + +// Avoid Win95 mapping CToolBar::DrawState to DrawState[A/W] +#ifdef DrawState +#undef DrawState +inline BOOL WINAPI DrawState(HDC hdc, HBRUSH hbr, DRAWSTATEPROC lpOutputFunc, + LPARAM lData, WPARAM wData, int x, int y, int cx, int cy, UINT fuFlags) +#ifdef UNICODE + { return ::DrawStateW(hdc, hbr, lpOutputFunc, lData, wData, x, y, cx, cy, + fuFlags); } +#else + { return ::DrawStateA(hdc, hbr, lpOutputFunc, lData, wData, x, y, cx, cy, + fuFlags); } +#endif +#endif + +// Avoid Win95 mapping CStatusBar::DrawStatusText to DrawStatusText[A/W] +#ifdef DrawStatusText +#undef DrawStatusText +inline void WINAPI DrawStatusText(HDC hDC, LPRECT lprc, LPCTSTR szText, + UINT uFlags) +#ifdef UNICODE + { ::DrawStatusTextW(hDC, lprc, szText, uFlags); } +#else + { ::DrawStatusTextA(hDC, lprc, szText, uFlags); } +#endif +#endif + +#ifndef _MAC +// FreeResource is not required except on Mac platforms +#undef FreeResource +inline BOOL WINAPI FreeResource(HGLOBAL) { return TRUE; } +// UnlockResource is not required except on Mac platforms +#undef UnlockResource +inline int WINAPI UnlockResource(HGLOBAL) { return 0; } +#endif + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxver_.h b/public/sdk/inc/mfc42/afxver_.h new file mode 100644 index 000000000..7fb911948 --- /dev/null +++ b/public/sdk/inc/mfc42/afxver_.h @@ -0,0 +1,327 @@ +// 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. + +// afxver_.h - target version/configuration control + +///////////////////////////////////////////////////////////////////////////// +// Master version numbers + +#define _AFX 1 // Microsoft Application Framework Classes +#define _MFC_VER 0x0420 // Microsoft Foundation Classes version 4.20 + +///////////////////////////////////////////////////////////////////////////// +// Default swap tuning for AFX library + +#ifndef _68K_ + #define _TEXTSEG(name) ".text$" #name +#else + #define _TEXTSEG(name) #name, "swappable" +#endif + +// Most segments are tuned via function order list (DLL version) +#ifndef _AFX_FUNCTION_ORDER +#define AFX_CORE1_SEG _TEXTSEG(AFX_CORE1) // core functionality +#define AFX_CORE2_SEG _TEXTSEG(AFX_CORE2) // more core functionality +#define AFX_CORE3_SEG _TEXTSEG(AFX_CORE3) // more core functionality +#define AFX_CORE4_SEG _TEXTSEG(AFX_CORE4) // more core functionality +#define AFX_AUX_SEG _TEXTSEG(AFX_AUX) // auxilliary functionality +#define AFX_COLL_SEG _TEXTSEG(AFX_COL1) // collections +#define AFX_COLL2_SEG _TEXTSEG(AFX_COL2) // more collections +#define AFX_OLE_SEG _TEXTSEG(AFX_OLE1) // OLE support +#define AFX_OLE2_SEG _TEXTSEG(AFX_OLE2) // more OLE support +#define AFX_OLE3_SEG _TEXTSEG(AFX_OLE3) // and more OLE support +#define AFX_OLE4_SEG _TEXTSEG(AFX_OLE4) // and more OLE support +#define AFX_OLE5_SEG _TEXTSEG(AFX_OLE5) // and even more OLE support +#define AFX_OLERA_SEG _TEXTSEG(AFX_OLERA) // (reserved for future use) +#define AFX_PRINT_SEG _TEXTSEG(AFX_PRNT) // Printing functionality +#define AFX_DBG1_SEG _TEXTSEG(AFX_DBG1) // inlines go here in _DEBUG +#define AFX_DBG2_SEG _TEXTSEG(AFX_DBG2) // inlines go here in _DEBUG +#define AFX_VDEL_SEG _TEXTSEG(AFX_VDEL) // vector deleting destructors +#define AFX_TERM_SEG _TEXTSEG(AFX_TERM) // cleanup routines +#define AFX_MAPI_SEG _TEXTSEG(AFX_MAPI) // simple MAPI support +#define AFX_SOCK_SEG _TEXTSEG(AFX_SOCK) // windows sockets support +#else +#define AFX_CORE1_SEG // core functionality +#define AFX_CORE2_SEG // more core functionality +#define AFX_CORE3_SEG // more core functionality +#define AFX_CORE4_SEG // more core functionality +#define AFX_AUX_SEG // auxilliary functionality +#define AFX_COLL_SEG // collections +#define AFX_COLL2_SEG // more collections +#define AFX_OLE_SEG // OLE support +#define AFX_OLE2_SEG // more OLE support +#define AFX_OLE3_SEG // and more OLE support +#define AFX_OLE4_SEG // and more OLE support +#define AFX_OLE5_SEG // and even more OLE support +#define AFX_OLERA_SEG // (reserved for future use) +#define AFX_PRINT_SEG // Printing functionality +#define AFX_DBG1_SEG // inlines go here in _DEBUG +#define AFX_DBG2_SEG // inlines go here in _DEBUG +#define AFX_VDEL_SEG // vector deleting destructors +#define AFX_TERM_SEG // cleanup routines +#define AFX_MAPI_SEG // simple MAPI support +#define AFX_SOCK_SEG // windows sockets support +#endif + +// AFX_INIT_SEG is hand tuned even in DLL version +#define AFX_INIT_SEG _TEXTSEG(AFX_INIT) // initialization + +///////////////////////////////////////////////////////////////////////////// +// turn off reference tracking for certain often used symbols + +#ifndef _AFX_PORTABLE +#pragma component(browser, off, references, "ASSERT") +#pragma component(browser, off, references, "AfxAssertFailedLine") +#pragma component(browser, off, references, "AfxDebugBreak") +#pragma component(browser, off, references, "BOOL") +#pragma component(browser, off, references, "BYTE") +#pragma component(browser, off, references, "DECLSPEC_IMPORT") +#pragma component(browser, off, references, "DWORD") +#pragma component(browser, off, references, "FALSE") +#pragma component(browser, off, references, "FAR") +#pragma component(browser, off, references, "LPSTR") +#pragma component(browser, off, references, "LPTSTR") +#pragma component(browser, off, references, "LPCSTR") +#pragma component(browser, off, references, "LPCTSTR") +#pragma component(browser, off, references, "NULL") +#pragma component(browser, off, references, "PASCAL") +#pragma component(browser, off, references, "THIS_FILE") +#pragma component(browser, off, references, "TRUE") +#pragma component(browser, off, references, "UINT") +#pragma component(browser, off, references, "WINAPI") +#pragma component(browser, off, references, "WORD") +#endif //!_AFX_PORTABLE + +///////////////////////////////////////////////////////////////////////////// +// For target version (one of) +// _CUSTOM : for custom configurations (causes afxv_cfg.h to be included) +// +// Additional build options: +// _DEBUG debug versions (full diagnostics) +// _AFXDLL use shared MFC DLL +// _AFXEXT extension DLL version, implies _AFXDLL +// _USRDLL create regular DLL (_AFXDLL is valid too) +// + +#ifndef _DEBUG + #define _AFX_ENABLE_INLINES +#endif + +#define _AFX_NO_NESTED_DERIVATION + +///////////////////////////////////////////////////////////////////////////// +// Special configurations + +// _AFXEXT implies _AFXDLL +#if defined(_AFXEXT) && !defined(_AFXDLL) + #define _AFXDLL +#endif + +#if defined(_AFXDLL) && !defined(_DLL) + #error Please use the /MD switch for _AFXDLL builds +#endif + +#ifndef _MAC +#if defined(_AFXDLL) && !defined(_MT) + #error Please use the /MD switch (multithreaded DLL C-runtime) +#endif +#endif + +///////////////////////////////////////////////////////////////////////////// +// special include files + +#include <afxv_w32.h> + +// Include any non-Intel platform specific items +#ifndef _X86_ + #include <afxv_cpu.h> +#endif + +// Include any non-Windows OS-specific items +#ifdef _MAC + #include <afxv_mac.h> +#endif + +#if defined(_X86_) || defined(_MAC) + #define _AFX_MINREBUILD +#endif + +#ifdef _CUSTOM +// Put any custom configuration items in afxv_cfg.h + #include <afxv_cfg.h> +#endif + +// setup default packing value +#ifndef _AFX_PACKING + #define _AFX_PACKING 4 // default packs structs at 4 bytes +#endif + +#ifdef _AFXDLL + #include <afxv_dll.h> +#endif + +// Define this virtual key for use by status bar +#ifndef VK_KANA +#define VK_KANA 0x15 +#endif + +///////////////////////////////////////////////////////////////////////////// +// Special AfxDebugBreak: used to break into debugger at critical times + +#ifndef AfxDebugBreak +#ifdef _AFX_NO_DEBUG_CRT +// by default, debug break is asm int 3, or a call to DebugBreak, or nothing +#if defined(_M_IX86) && !defined(_AFX_PORTABLE) +#define AfxDebugBreak() _asm { int 3 } +#else +#define AfxDebugBreak() DebugBreak() +#endif +#else +#define AfxDebugBreak() _CrtDbgBreak() +#endif +#endif + +#ifndef _DEBUG +#ifdef AfxDebugBreak +#undef AfxDebugBreak +#endif +#define AfxDebugBreak() +#endif // _DEBUG + +///////////////////////////////////////////////////////////////////////////// +// Standard preprocessor symbols if not already defined +///////////////////////////////////////////////////////////////////////////// + +// SIZE_T_MAX is used by the collection classes +#ifndef SIZE_T_MAX + #define SIZE_T_MAX UINT_MAX +#endif + +// PASCAL is used for static member functions +#ifndef PASCAL + #define PASCAL +#endif + +// CDECL and EXPORT are defined in case WINDOWS.H doesn't +#ifndef CDECL + #define CDECL __cdecl +#endif + +#ifndef EXPORT + #define EXPORT +#endif + +// UNALIGNED is used for unaligned data access (in CArchive mostly) +#ifndef UNALIGNED + #define UNALIGNED +#endif + +// AFXAPI is used on global public functions +#ifndef AFXAPI + #define AFXAPI __stdcall +#endif + +// AFXOLEAPI is used for some special OLE functions +#ifndef AFXOLEAPI + #define AFXOLEAPI __stdcall +#endif + +// AFX_CDECL is used for rare functions taking variable arguments +#ifndef AFX_CDECL + #define AFX_CDECL __cdecl +#endif + +// AFX_EXPORT is used for functions which need to be exported +#ifndef AFX_EXPORT + #define AFX_EXPORT EXPORT +#endif + +// The following macros are used to enable export/import + +// for data +#ifndef AFX_DATA_EXPORT + #define AFX_DATA_EXPORT __declspec(dllexport) +#endif +#ifndef AFX_DATA_IMPORT + #define AFX_DATA_IMPORT __declspec(dllimport) +#endif + +// for classes +#ifndef AFX_CLASS_EXPORT + #define AFX_CLASS_EXPORT __declspec(dllexport) +#endif +#ifndef AFX_CLASS_IMPORT + #define AFX_CLASS_IMPORT __declspec(dllimport) +#endif + +// for global APIs +#ifndef AFX_API_EXPORT + #define AFX_API_EXPORT __declspec(dllexport) +#endif +#ifndef AFX_API_IMPORT + #define AFX_API_IMPORT __declspec(dllimport) +#endif + +// The following macros are used on data declarations/definitions +// (they are redefined for extension DLLs and the shared MFC DLL) +#define AFX_DATA +#define AFX_DATADEF + +// used when building the "core" MFC42.DLL +#ifndef AFX_CORE_DATA + #define AFX_CORE_DATA + #define AFX_CORE_DATADEF +#endif + +// used when building the MFC/OLE support MFCO42.DLL +#ifndef AFX_OLE_DATA + #define AFX_OLE_DATA + #define AFX_OLE_DATADEF +#endif + +// used when building the MFC/DB support MFCD42.DLL +#ifndef AFX_DB_DATA + #define AFX_DB_DATA + #define AFX_DB_DATADEF +#endif + +// used when building the MFC/NET support MFCN42.DLL +#ifndef AFX_NET_DATA + #define AFX_NET_DATA + #define AFX_NET_DATADEF +#endif + +// used when building extension DLLs +#ifndef AFX_EXT_DATA + #define AFX_EXT_DATA + #define AFX_EXT_DATADEF + #define AFX_EXT_CLASS + #define AFX_EXT_API +#endif + +// BASED_XXXX macros are provided for backward compatibility +#ifndef BASED_CODE + #define BASED_CODE +#endif + +#ifndef BASED_DEBUG + #define BASED_DEBUG +#endif + +#ifndef BASED_STACK + #define BASED_STACK +#endif + +// setup default code segment +#ifdef AFX_DEF_SEG + #pragma code_seg(AFX_DEF_SEG) +#endif + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxwin.h b/public/sdk/inc/mfc42/afxwin.h new file mode 100644 index 000000000..9a173da99 --- /dev/null +++ b/public/sdk/inc/mfc42/afxwin.h @@ -0,0 +1,4645 @@ +// 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. + +#ifndef __AFXWIN_H__ +#ifndef RC_INVOKED +#define __AFXWIN_H__ + +///////////////////////////////////////////////////////////////////////////// +// Make sure 'afx.h' is included first + +#ifndef __AFX_H__ + #include <afx.h> +#endif + +// Note: WINDOWS.H already included from AFXV_W32.H + +#ifndef _INC_SHELLAPI + #include <shellapi.h> +#endif + +#ifndef __AFXRES_H__ + #include <afxres.h> // standard resource IDs +#endif + +#ifndef __AFXCOLL_H__ + #include <afxcoll.h> // standard collections +#endif + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, on) +#endif + +#ifndef _AFX_NOFORCE_LIBS +#pragma comment(lib, "uuid.lib") +#endif + +#ifdef _INC_WINDOWSX +// The following names from WINDOWSX.H collide with names in this header +#undef SubclassWindow +#undef CopyRgn +#endif + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +///////////////////////////////////////////////////////////////////////////// +// Classes declared in this file + +class CSize; +class CPoint; +class CRect; + +//CObject + //CException + //CSimpleException + class CResourceException;// Win resource failure exception + class CUserException; // Message Box alert and stop operation + + class CGdiObject; // CDC drawing tool + class CPen; // a pen / HPEN wrapper + class CBrush; // a brush / HBRUSH wrapper + class CFont; // a font / HFONT wrapper + class CBitmap; // a bitmap / HBITMAP wrapper + class CPalette; // a palette / HPALLETE wrapper + class CRgn; // a region / HRGN wrapper + + class CDC; // a Display Context / HDC wrapper + class CClientDC; // CDC for client of window + class CWindowDC; // CDC for entire window + class CPaintDC; // embeddable BeginPaint struct helper + + class CMenu; // a menu / HMENU wrapper + + class CCmdTarget; // a target for user commands + class CWnd; // a window / HWND wrapper + class CDialog; // a dialog + + // standard windows controls + class CStatic; // Static control + class CButton; // Button control + class CListBox; // ListBox control + class CCheckListBox;// special listbox with checks + class CComboBox; // ComboBox control + class CEdit; // Edit control + class CScrollBar; // ScrollBar control + + // frame windows + class CFrameWnd; // standard SDI frame + class CMDIFrameWnd; // standard MDI frame + class CMDIChildWnd; // standard MDI child + class CMiniFrameWnd;// half-height caption frame wnd + + // views on a document + class CView; // a view on a document + class CScrollView; // a scrolling view + + class CWinThread; // thread base class + class CWinApp; // application base class + + class CDocTemplate; // template for document creation + class CSingleDocTemplate;// SDI support + class CMultiDocTemplate; // MDI support + + class CDocument; // main document abstraction + + +// Helper classes +class CCmdUI; // Menu/button enabling +class CDataExchange; // Data exchange and validation context +class CCommandLineInfo; // CommandLine parsing helper +class CDocManager; // CDocTemplate manager object + +///////////////////////////////////////////////////////////////////////////// + +// Type modifier for message handlers +#ifndef afx_msg +#define afx_msg // intentional placeholder +#endif + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +///////////////////////////////////////////////////////////////////////////// +// CSize - An extent, similar to Windows SIZE structure. + +class CSize : public tagSIZE +{ +public: + +// Constructors + CSize(); + CSize(int initCX, int initCY); + CSize(SIZE initSize); + CSize(POINT initPt); + CSize(DWORD dwSize); + +// Operations + BOOL operator==(SIZE size) const; + BOOL operator!=(SIZE size) const; + void operator+=(SIZE size); + void operator-=(SIZE size); + +// Operators returning CSize values + CSize operator+(SIZE size) const; + CSize operator-(SIZE size) const; + CSize operator-() const; + +// Operators returning CPoint values + CPoint operator+(POINT point) const; + CPoint operator-(POINT point) const; + +// Operators returning CRect values + CRect operator+(const RECT* lpRect) const; + CRect operator-(const RECT* lpRect) const; +}; + +///////////////////////////////////////////////////////////////////////////// +// CPoint - A 2-D point, similar to Windows POINT structure. + +class CPoint : public tagPOINT +{ +public: + +// Constructors + CPoint(); + CPoint(int initX, int initY); + CPoint(POINT initPt); + CPoint(SIZE initSize); + CPoint(DWORD dwPoint); + +// Operations + void Offset(int xOffset, int yOffset); + void Offset(POINT point); + void Offset(SIZE size); + BOOL operator==(POINT point) const; + BOOL operator!=(POINT point) const; + void operator+=(SIZE size); + void operator-=(SIZE size); + void operator+=(POINT point); + void operator-=(POINT point); + +// Operators returning CPoint values + CPoint operator+(SIZE size) const; + CPoint operator-(SIZE size) const; + CPoint operator-() const; + CPoint operator+(POINT point) const; + +// Operators returning CSize values + CSize operator-(POINT point) const; + +// Operators returning CRect values + CRect operator+(const RECT* lpRect) const; + CRect operator-(const RECT* lpRect) const; +}; + +///////////////////////////////////////////////////////////////////////////// +// CRect - A 2-D rectangle, similar to Windows RECT structure. + +typedef const RECT* LPCRECT; // pointer to read/only RECT + +class CRect : public tagRECT +{ +public: + +// Constructors + CRect(); + CRect(int l, int t, int r, int b); + CRect(const RECT& srcRect); + CRect(LPCRECT lpSrcRect); + CRect(POINT point, SIZE size); + CRect(POINT topLeft, POINT bottomRight); + +// Attributes (in addition to RECT members) + int Width() const; + int Height() const; + CSize Size() const; + CPoint& TopLeft(); + CPoint& BottomRight(); + const CPoint& TopLeft() const; + const CPoint& BottomRight() const; + CPoint CenterPoint() const; + + // convert between CRect and LPRECT/LPCRECT (no need for &) + operator LPRECT(); + operator LPCRECT() const; + + BOOL IsRectEmpty() const; + BOOL IsRectNull() const; + BOOL PtInRect(POINT point) const; + +// Operations + void SetRect(int x1, int y1, int x2, int y2); + void SetRect(POINT topLeft, POINT bottomRight); + void SetRectEmpty(); + void CopyRect(LPCRECT lpSrcRect); + BOOL EqualRect(LPCRECT lpRect) const; + + void InflateRect(int x, int y); + void InflateRect(SIZE size); + void InflateRect(LPCRECT lpRect); + void InflateRect(int l, int t, int r, int b); + void DeflateRect(int x, int y); + void DeflateRect(SIZE size); + void DeflateRect(LPCRECT lpRect); + void DeflateRect(int l, int t, int r, int b); + + void OffsetRect(int x, int y); + void OffsetRect(SIZE size); + void OffsetRect(POINT point); + void NormalizeRect(); + + // operations that fill '*this' with result + BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2); + BOOL UnionRect(LPCRECT lpRect1, LPCRECT lpRect2); + BOOL SubtractRect(LPCRECT lpRectSrc1, LPCRECT lpRectSrc2); + +// Additional Operations + void operator=(const RECT& srcRect); + BOOL operator==(const RECT& rect) const; + BOOL operator!=(const RECT& rect) const; + void operator+=(POINT point); + void operator+=(SIZE size); + void operator+=(LPCRECT lpRect); + void operator-=(POINT point); + void operator-=(SIZE size); + void operator-=(LPCRECT lpRect); + void operator&=(const RECT& rect); + void operator|=(const RECT& rect); + +// Operators returning CRect values + CRect operator+(POINT point) const; + CRect operator-(POINT point) const; + CRect operator+(LPCRECT lpRect) const; + CRect operator+(SIZE size) const; + CRect operator-(SIZE size) const; + CRect operator-(LPCRECT lpRect) const; + CRect operator&(const RECT& rect2) const; + CRect operator|(const RECT& rect2) const; + CRect MulDiv(int nMultiplier, int nDivisor) const; +}; + +#ifdef _DEBUG +// Diagnostic Output +CDumpContext& AFXAPI operator<<(CDumpContext& dc, SIZE size); +CDumpContext& AFXAPI operator<<(CDumpContext& dc, POINT point); +CDumpContext& AFXAPI operator<<(CDumpContext& dc, const RECT& rect); +#endif //_DEBUG + +// Serialization +CArchive& AFXAPI operator<<(CArchive& ar, SIZE size); +CArchive& AFXAPI operator<<(CArchive& ar, POINT point); +CArchive& AFXAPI operator<<(CArchive& ar, const RECT& rect); +CArchive& AFXAPI operator>>(CArchive& ar, SIZE& size); +CArchive& AFXAPI operator>>(CArchive& ar, POINT& point); +CArchive& AFXAPI operator>>(CArchive& ar, RECT& rect); + +///////////////////////////////////////////////////////////////////////////// +// Standard exceptions + +class CResourceException : public CSimpleException // resource failure +{ + DECLARE_DYNAMIC(CResourceException) +public: + CResourceException(); + +// Implementation +public: + CResourceException(BOOL bAutoDelete); + CResourceException(BOOL bAutoDelete, UINT nResourceID); + virtual ~CResourceException(); +}; + +class CUserException : public CSimpleException // general user visible alert +{ + DECLARE_DYNAMIC(CUserException) +public: + CUserException(); + +// Implementation +public: + CUserException(BOOL bAutoDelete); + CUserException(BOOL bAutoDelete, UINT nResourceID); + virtual ~CUserException(); +}; + +void AFXAPI AfxThrowResourceException(); +void AFXAPI AfxThrowUserException(); + +///////////////////////////////////////////////////////////////////////////// +// CGdiObject abstract class for CDC SelectObject + +class CGdiObject : public CObject +{ + DECLARE_DYNCREATE(CGdiObject) +public: + +// Attributes + HGDIOBJ m_hObject; // must be first data member + operator HGDIOBJ() const; + HGDIOBJ GetSafeHandle() const; + + static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject); + static void PASCAL DeleteTempMap(); + BOOL Attach(HGDIOBJ hObject); + HGDIOBJ Detach(); + +// Constructors + CGdiObject(); // must Create a derived class object + BOOL DeleteObject(); + +// Operations + int GetObject(int nCount, LPVOID lpObject) const; + UINT GetObjectType() const; + BOOL CreateStockObject(int nIndex); + BOOL UnrealizeObject(); + +// Implementation +public: + virtual ~CGdiObject(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + virtual void AssertValid() const; +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// CGdiObject subclasses (drawing tools) + +class CPen : public CGdiObject +{ + DECLARE_DYNAMIC(CPen) + +public: + static CPen* PASCAL FromHandle(HPEN hPen); + +// Constructors + CPen(); + CPen(int nPenStyle, int nWidth, COLORREF crColor); +#ifndef _MAC + CPen(int nPenStyle, int nWidth, const LOGBRUSH* pLogBrush, + int nStyleCount = 0, const DWORD* lpStyle = NULL); +#endif + BOOL CreatePen(int nPenStyle, int nWidth, COLORREF crColor); +#ifndef _MAC + BOOL CreatePen(int nPenStyle, int nWidth, const LOGBRUSH* pLogBrush, + int nStyleCount = 0, const DWORD* lpStyle = NULL); +#endif + BOOL CreatePenIndirect(LPLOGPEN lpLogPen); + +// Attributes + operator HPEN() const; + int GetLogPen(LOGPEN* pLogPen); +#ifndef _MAC + int GetExtLogPen(EXTLOGPEN* pLogPen); +#endif + +// Implementation +public: + virtual ~CPen(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +class CBrush : public CGdiObject +{ + DECLARE_DYNAMIC(CBrush) + +public: + static CBrush* PASCAL FromHandle(HBRUSH hBrush); + +// Constructors + CBrush(); + CBrush(COLORREF crColor); // CreateSolidBrush + CBrush(int nIndex, COLORREF crColor); // CreateHatchBrush + CBrush(CBitmap* pBitmap); // CreatePatternBrush + + BOOL CreateSolidBrush(COLORREF crColor); + BOOL CreateHatchBrush(int nIndex, COLORREF crColor); + BOOL CreateBrushIndirect(const LOGBRUSH* lpLogBrush); + BOOL CreatePatternBrush(CBitmap* pBitmap); + BOOL CreateDIBPatternBrush(HGLOBAL hPackedDIB, UINT nUsage); + BOOL CreateDIBPatternBrush(const void* lpPackedDIB, UINT nUsage); + BOOL CreateSysColorBrush(int nIndex); + +// Attributes + operator HBRUSH() const; + int GetLogBrush(LOGBRUSH* pLogBrush); + +// Implementation +public: + virtual ~CBrush(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +class CFont : public CGdiObject +{ + DECLARE_DYNAMIC(CFont) + +public: + static CFont* PASCAL FromHandle(HFONT hFont); + +// Constructors + CFont(); + BOOL CreateFontIndirect(const LOGFONT* lpLogFont); + BOOL CreateFont(int nHeight, int nWidth, int nEscapement, + int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, + BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, + BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, + LPCTSTR lpszFacename); + BOOL CreatePointFont(int nPointSize, LPCTSTR lpszFaceName, CDC* pDC = NULL); + BOOL CreatePointFontIndirect(const LOGFONT* lpLogFont, CDC* pDC = NULL); + +// Attributes + operator HFONT() const; + int GetLogFont(LOGFONT* pLogFont); + +// Implementation +public: + virtual ~CFont(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +class CBitmap : public CGdiObject +{ + DECLARE_DYNAMIC(CBitmap) + +public: + static CBitmap* PASCAL FromHandle(HBITMAP hBitmap); + +// Constructors + CBitmap(); + + BOOL LoadBitmap(LPCTSTR lpszResourceName); + BOOL LoadBitmap(UINT nIDResource); +#ifndef _MAC + BOOL LoadOEMBitmap(UINT nIDBitmap); // for OBM_/OCR_/OIC_ +#endif + BOOL LoadMappedBitmap(UINT nIDBitmap, UINT nFlags = 0, + LPCOLORMAP lpColorMap = NULL, int nMapSize = 0); + BOOL CreateBitmap(int nWidth, int nHeight, UINT nPlanes, UINT nBitcount, + const void* lpBits); + BOOL CreateBitmapIndirect(LPBITMAP lpBitmap); + BOOL CreateCompatibleBitmap(CDC* pDC, int nWidth, int nHeight); + BOOL CreateDiscardableBitmap(CDC* pDC, int nWidth, int nHeight); + +// Attributes + operator HBITMAP() const; + int GetBitmap(BITMAP* pBitMap); + +// Operations + DWORD SetBitmapBits(DWORD dwCount, const void* lpBits); + DWORD GetBitmapBits(DWORD dwCount, LPVOID lpBits) const; + CSize SetBitmapDimension(int nWidth, int nHeight); + CSize GetBitmapDimension() const; + +// Implementation +public: + virtual ~CBitmap(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +class CPalette : public CGdiObject +{ + DECLARE_DYNAMIC(CPalette) + +public: + static CPalette* PASCAL FromHandle(HPALETTE hPalette); + +// Constructors + CPalette(); + BOOL CreatePalette(LPLOGPALETTE lpLogPalette); +#ifndef _MAC + BOOL CreateHalftonePalette(CDC* pDC); +#endif + +// Attributes + operator HPALETTE() const; + int GetEntryCount(); + UINT GetPaletteEntries(UINT nStartIndex, UINT nNumEntries, + LPPALETTEENTRY lpPaletteColors) const; + UINT SetPaletteEntries(UINT nStartIndex, UINT nNumEntries, + LPPALETTEENTRY lpPaletteColors); + +// Operations +#ifndef _MAC + void AnimatePalette(UINT nStartIndex, UINT nNumEntries, + LPPALETTEENTRY lpPaletteColors); +#endif + UINT GetNearestPaletteIndex(COLORREF crColor) const; + BOOL ResizePalette(UINT nNumEntries); + +// Implementation + virtual ~CPalette(); +}; + +class CRgn : public CGdiObject +{ + DECLARE_DYNAMIC(CRgn) + +public: + static CRgn* PASCAL FromHandle(HRGN hRgn); + operator HRGN() const; + +// Constructors + CRgn(); + BOOL CreateRectRgn(int x1, int y1, int x2, int y2); + BOOL CreateRectRgnIndirect(LPCRECT lpRect); + BOOL CreateEllipticRgn(int x1, int y1, int x2, int y2); + BOOL CreateEllipticRgnIndirect(LPCRECT lpRect); + BOOL CreatePolygonRgn(LPPOINT lpPoints, int nCount, int nMode); +#ifndef _MAC + BOOL CreatePolyPolygonRgn(LPPOINT lpPoints, LPINT lpPolyCounts, + int nCount, int nPolyFillMode); +#endif + BOOL CreateRoundRectRgn(int x1, int y1, int x2, int y2, int x3, int y3); +#ifndef _MAC + BOOL CreateFromPath(CDC* pDC); + BOOL CreateFromData(const XFORM* lpXForm, int nCount, + const RGNDATA* pRgnData); +#endif + +// Operations + void SetRectRgn(int x1, int y1, int x2, int y2); + void SetRectRgn(LPCRECT lpRect); + int CombineRgn(CRgn* pRgn1, CRgn* pRgn2, int nCombineMode); + int CopyRgn(CRgn* pRgnSrc); + BOOL EqualRgn(CRgn* pRgn) const; + int OffsetRgn(int x, int y); + int OffsetRgn(POINT point); + int GetRgnBox(LPRECT lpRect) const; + BOOL PtInRegion(int x, int y) const; + BOOL PtInRegion(POINT point) const; + BOOL RectInRegion(LPCRECT lpRect) const; +#ifndef _MAC + int GetRegionData(LPRGNDATA lpRgnData, int nCount) const; +#endif + +// Implementation + virtual ~CRgn(); +}; + +///////////////////////////////////////////////////////////////////////////// +// The device context + +class CDC : public CObject +{ + DECLARE_DYNCREATE(CDC) +public: + +// Attributes + HDC m_hDC; // The output DC (must be first data member) + HDC m_hAttribDC; // The Attribute DC + operator HDC() const; + HDC GetSafeHdc() const; // Always returns the Output DC +#ifndef _MAC + CWnd* GetWindow() const; +#endif + + static CDC* PASCAL FromHandle(HDC hDC); + static void PASCAL DeleteTempMap(); + BOOL Attach(HDC hDC); // Attach/Detach affects only the Output DC + HDC Detach(); + + virtual void SetAttribDC(HDC hDC); // Set the Attribute DC + virtual void SetOutputDC(HDC hDC); // Set the Output DC + virtual void ReleaseAttribDC(); // Release the Attribute DC + virtual void ReleaseOutputDC(); // Release the Output DC + + BOOL IsPrinting() const; // TRUE if being used for printing + + CPen* GetCurrentPen() const; + CBrush* GetCurrentBrush() const; + CPalette* GetCurrentPalette() const; + CFont* GetCurrentFont() const; + CBitmap* GetCurrentBitmap() const; + +// Constructors + CDC(); + BOOL CreateDC(LPCTSTR lpszDriverName, LPCTSTR lpszDeviceName, + LPCTSTR lpszOutput, const void* lpInitData); + BOOL CreateIC(LPCTSTR lpszDriverName, LPCTSTR lpszDeviceName, + LPCTSTR lpszOutput, const void* lpInitData); + BOOL CreateCompatibleDC(CDC* pDC); + + BOOL DeleteDC(); + +// Device-Context Functions + virtual int SaveDC(); + virtual BOOL RestoreDC(int nSavedDC); + int GetDeviceCaps(int nIndex) const; +#ifndef _MAC + UINT SetBoundsRect(LPCRECT lpRectBounds, UINT flags); + UINT GetBoundsRect(LPRECT lpRectBounds, UINT flags); +#endif + BOOL ResetDC(const DEVMODE* lpDevMode); + +// Drawing-Tool Functions + CPoint GetBrushOrg() const; + CPoint SetBrushOrg(int x, int y); + CPoint SetBrushOrg(POINT point); + int EnumObjects(int nObjectType, + int (CALLBACK* lpfn)(LPVOID, LPARAM), LPARAM lpData); + +// Type-safe selection helpers +public: + virtual CGdiObject* SelectStockObject(int nIndex); + CPen* SelectObject(CPen* pPen); + CBrush* SelectObject(CBrush* pBrush); + virtual CFont* SelectObject(CFont* pFont); + CBitmap* SelectObject(CBitmap* pBitmap); + int SelectObject(CRgn* pRgn); // special return for regions + CGdiObject* SelectObject(CGdiObject* pObject); + // CGdiObject* provided so compiler doesn't use SelectObject(HGDIOBJ) + +// Color and Color Palette Functions + COLORREF GetNearestColor(COLORREF crColor) const; + CPalette* SelectPalette(CPalette* pPalette, BOOL bForceBackground); + UINT RealizePalette(); + void UpdateColors(); + +// Drawing-Attribute Functions + COLORREF GetBkColor() const; + int GetBkMode() const; + int GetPolyFillMode() const; + int GetROP2() const; + int GetStretchBltMode() const; + COLORREF GetTextColor() const; + + virtual COLORREF SetBkColor(COLORREF crColor); + int SetBkMode(int nBkMode); + int SetPolyFillMode(int nPolyFillMode); + int SetROP2(int nDrawMode); + int SetStretchBltMode(int nStretchMode); + virtual COLORREF SetTextColor(COLORREF crColor); + +#ifndef _MAC + BOOL GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const; + BOOL SetColorAdjustment(const COLORADJUSTMENT* lpColorAdjust); +#endif + +// Mapping Functions + int GetMapMode() const; + CPoint GetViewportOrg() const; + virtual int SetMapMode(int nMapMode); + // Viewport Origin + virtual CPoint SetViewportOrg(int x, int y); + CPoint SetViewportOrg(POINT point); + virtual CPoint OffsetViewportOrg(int nWidth, int nHeight); + + // Viewport Extent + CSize GetViewportExt() const; + virtual CSize SetViewportExt(int cx, int cy); + CSize SetViewportExt(SIZE size); + virtual CSize ScaleViewportExt(int xNum, int xDenom, int yNum, int yDenom); + + // Window Origin + CPoint GetWindowOrg() const; + CPoint SetWindowOrg(int x, int y); + CPoint SetWindowOrg(POINT point); + CPoint OffsetWindowOrg(int nWidth, int nHeight); + + // Window extent + CSize GetWindowExt() const; + virtual CSize SetWindowExt(int cx, int cy); + CSize SetWindowExt(SIZE size); + virtual CSize ScaleWindowExt(int xNum, int xDenom, int yNum, int yDenom); + +// Coordinate Functions + void DPtoLP(LPPOINT lpPoints, int nCount = 1) const; + void DPtoLP(LPRECT lpRect) const; + void DPtoLP(LPSIZE lpSize) const; + void LPtoDP(LPPOINT lpPoints, int nCount = 1) const; + void LPtoDP(LPRECT lpRect) const; + void LPtoDP(LPSIZE lpSize) const; + +// Special Coordinate Functions (useful for dealing with metafiles and OLE) + void DPtoHIMETRIC(LPSIZE lpSize) const; + void LPtoHIMETRIC(LPSIZE lpSize) const; + void HIMETRICtoDP(LPSIZE lpSize) const; + void HIMETRICtoLP(LPSIZE lpSize) const; + +// Region Functions + BOOL FillRgn(CRgn* pRgn, CBrush* pBrush); + BOOL FrameRgn(CRgn* pRgn, CBrush* pBrush, int nWidth, int nHeight); + BOOL InvertRgn(CRgn* pRgn); + BOOL PaintRgn(CRgn* pRgn); + +// Clipping Functions + virtual int GetClipBox(LPRECT lpRect) const; + virtual BOOL PtVisible(int x, int y) const; + BOOL PtVisible(POINT point) const; + virtual BOOL RectVisible(LPCRECT lpRect) const; + int SelectClipRgn(CRgn* pRgn); + int ExcludeClipRect(int x1, int y1, int x2, int y2); + int ExcludeClipRect(LPCRECT lpRect); + int ExcludeUpdateRgn(CWnd* pWnd); + int IntersectClipRect(int x1, int y1, int x2, int y2); + int IntersectClipRect(LPCRECT lpRect); + int OffsetClipRgn(int x, int y); + int OffsetClipRgn(SIZE size); +#ifndef _MAC + int SelectClipRgn(CRgn* pRgn, int nMode); +#endif + +// Line-Output Functions + CPoint GetCurrentPosition() const; + CPoint MoveTo(int x, int y); + CPoint MoveTo(POINT point); + BOOL LineTo(int x, int y); + BOOL LineTo(POINT point); + BOOL Arc(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4); + BOOL Arc(LPCRECT lpRect, POINT ptStart, POINT ptEnd); + BOOL Polyline(LPPOINT lpPoints, int nCount); + +#ifndef _MAC + BOOL AngleArc(int x, int y, int nRadius, float fStartAngle, float fSweepAngle); + BOOL ArcTo(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4); + BOOL ArcTo(LPCRECT lpRect, POINT ptStart, POINT ptEnd); + int GetArcDirection() const; + int SetArcDirection(int nArcDirection); + + BOOL PolyDraw(const POINT* lpPoints, const BYTE* lpTypes, int nCount); + BOOL PolylineTo(const POINT* lpPoints, int nCount); + BOOL PolyPolyline(const POINT* lpPoints, + const DWORD* lpPolyPoints, int nCount); + + BOOL PolyBezier(const POINT* lpPoints, int nCount); + BOOL PolyBezierTo(const POINT* lpPoints, int nCount); +#endif + +// Simple Drawing Functions + void FillRect(LPCRECT lpRect, CBrush* pBrush); + void FrameRect(LPCRECT lpRect, CBrush* pBrush); + void InvertRect(LPCRECT lpRect); + BOOL DrawIcon(int x, int y, HICON hIcon); + BOOL DrawIcon(POINT point, HICON hIcon); +#if (WINVER >= 0x400) +#ifndef _MAC + BOOL DrawState(CPoint pt, CSize size, HBITMAP hBitmap, UINT nFlags, + HBRUSH hBrush = NULL); + BOOL DrawState(CPoint pt, CSize size, CBitmap* pBitmap, UINT nFlags, + CBrush* pBrush = NULL); + BOOL DrawState(CPoint pt, CSize size, HICON hIcon, UINT nFlags, + HBRUSH hBrush = NULL); + BOOL DrawState(CPoint pt, CSize size, HICON hIcon, UINT nFlags, + CBrush* pBrush = NULL); + BOOL DrawState(CPoint pt, CSize size, LPCTSTR lpszText, UINT nFlags, + BOOL bPrefixText = TRUE, int nTextLen = 0, HBRUSH hBrush = NULL); + BOOL DrawState(CPoint pt, CSize size, LPCTSTR lpszText, UINT nFlags, + BOOL bPrefixText = TRUE, int nTextLen = 0, CBrush* pBrush = NULL); + BOOL DrawState(CPoint pt, CSize size, DRAWSTATEPROC lpDrawProc, + LPARAM lData, UINT nFlags, HBRUSH hBrush = NULL); + BOOL DrawState(CPoint pt, CSize size, DRAWSTATEPROC lpDrawProc, + LPARAM lData, UINT nFlags, CBrush* pBrush = NULL); +#endif +#endif + +// Ellipse and Polygon Functions +#ifndef _MAC + BOOL Chord(int x1, int y1, int x2, int y2, int x3, int y3, + int x4, int y4); + BOOL Chord(LPCRECT lpRect, POINT ptStart, POINT ptEnd); +#endif + void DrawFocusRect(LPCRECT lpRect); + BOOL Ellipse(int x1, int y1, int x2, int y2); + BOOL Ellipse(LPCRECT lpRect); + BOOL Pie(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4); + BOOL Pie(LPCRECT lpRect, POINT ptStart, POINT ptEnd); + BOOL Polygon(LPPOINT lpPoints, int nCount); +#ifndef _MAC + BOOL PolyPolygon(LPPOINT lpPoints, LPINT lpPolyCounts, int nCount); +#endif + BOOL Rectangle(int x1, int y1, int x2, int y2); + BOOL Rectangle(LPCRECT lpRect); + BOOL RoundRect(int x1, int y1, int x2, int y2, int x3, int y3); + BOOL RoundRect(LPCRECT lpRect, POINT point); + +// Bitmap Functions + BOOL PatBlt(int x, int y, int nWidth, int nHeight, DWORD dwRop); + BOOL BitBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC, + int xSrc, int ySrc, DWORD dwRop); + BOOL StretchBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC, + int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop); + COLORREF GetPixel(int x, int y) const; + COLORREF GetPixel(POINT point) const; + COLORREF SetPixel(int x, int y, COLORREF crColor); + COLORREF SetPixel(POINT point, COLORREF crColor); +#ifndef _MAC + BOOL FloodFill(int x, int y, COLORREF crColor); + BOOL ExtFloodFill(int x, int y, COLORREF crColor, UINT nFillType); + BOOL MaskBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC, + int xSrc, int ySrc, CBitmap& maskBitmap, int xMask, int yMask, + DWORD dwRop); + BOOL PlgBlt(LPPOINT lpPoint, CDC* pSrcDC, int xSrc, int ySrc, + int nWidth, int nHeight, CBitmap& maskBitmap, int xMask, int yMask); + BOOL SetPixelV(int x, int y, COLORREF crColor); + BOOL SetPixelV(POINT point, COLORREF crColor); +#endif + +// Text Functions + virtual BOOL TextOut(int x, int y, LPCTSTR lpszString, int nCount); + BOOL TextOut(int x, int y, const CString& str); + virtual BOOL ExtTextOut(int x, int y, UINT nOptions, LPCRECT lpRect, + LPCTSTR lpszString, UINT nCount, LPINT lpDxWidths); + BOOL ExtTextOut(int x, int y, UINT nOptions, LPCRECT lpRect, + const CString& str, LPINT lpDxWidths); + virtual CSize TabbedTextOut(int x, int y, LPCTSTR lpszString, int nCount, + int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin); + CSize TabbedTextOut(int x, int y, const CString& str, + int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin); + virtual int DrawText(LPCTSTR lpszString, int nCount, LPRECT lpRect, + UINT nFormat); + int DrawText(const CString& str, LPRECT lpRect, UINT nFormat); + CSize GetTextExtent(LPCTSTR lpszString, int nCount) const; + CSize GetTextExtent(const CString& str) const; + CSize GetOutputTextExtent(LPCTSTR lpszString, int nCount) const; + CSize GetOutputTextExtent(const CString& str) const; + CSize GetTabbedTextExtent(LPCTSTR lpszString, int nCount, + int nTabPositions, LPINT lpnTabStopPositions) const; + CSize GetTabbedTextExtent(const CString& str, + int nTabPositions, LPINT lpnTabStopPositions) const; + CSize GetOutputTabbedTextExtent(LPCTSTR lpszString, int nCount, + int nTabPositions, LPINT lpnTabStopPositions) const; + CSize GetOutputTabbedTextExtent(const CString& str, + int nTabPositions, LPINT lpnTabStopPositions) const; + virtual BOOL GrayString(CBrush* pBrush, + BOOL (CALLBACK* lpfnOutput)(HDC, LPARAM, int), LPARAM lpData, + int nCount, int x, int y, int nWidth, int nHeight); + UINT GetTextAlign() const; + UINT SetTextAlign(UINT nFlags); + int GetTextFace(int nCount, LPTSTR lpszFacename) const; + int GetTextFace(CString& rString) const; + BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const; + BOOL GetOutputTextMetrics(LPTEXTMETRIC lpMetrics) const; +#ifndef _MAC + int SetTextJustification(int nBreakExtra, int nBreakCount); +#endif + int GetTextCharacterExtra() const; + int SetTextCharacterExtra(int nCharExtra); + +// Advanced Drawing +#if (WINVER >= 0x400) +#ifndef _MAC + BOOL DrawEdge(LPRECT lpRect, UINT nEdge, UINT nFlags); + BOOL DrawFrameControl(LPRECT lpRect, UINT nType, UINT nState); +#endif +#endif + +// Scrolling Functions + BOOL ScrollDC(int dx, int dy, LPCRECT lpRectScroll, LPCRECT lpRectClip, + CRgn* pRgnUpdate, LPRECT lpRectUpdate); + +// Font Functions + BOOL GetCharWidth(UINT nFirstChar, UINT nLastChar, LPINT lpBuffer) const; + BOOL GetOutputCharWidth(UINT nFirstChar, UINT nLastChar, LPINT lpBuffer) const; + DWORD SetMapperFlags(DWORD dwFlag); + CSize GetAspectRatioFilter() const; + + BOOL GetCharABCWidths(UINT nFirstChar, UINT nLastChar, LPABC lpabc) const; + DWORD GetFontData(DWORD dwTable, DWORD dwOffset, LPVOID lpData, DWORD cbData) const; +#ifndef _MAC + int GetKerningPairs(int nPairs, LPKERNINGPAIR lpkrnpair) const; +#endif + UINT GetOutlineTextMetrics(UINT cbData, LPOUTLINETEXTMETRIC lpotm) const; +#ifndef _MAC + DWORD GetGlyphOutline(UINT nChar, UINT nFormat, LPGLYPHMETRICS lpgm, + DWORD cbBuffer, LPVOID lpBuffer, const MAT2* lpmat2) const; +#endif + +#ifndef _MAC + BOOL GetCharABCWidths(UINT nFirstChar, UINT nLastChar, + LPABCFLOAT lpABCF) const; + BOOL GetCharWidth(UINT nFirstChar, UINT nLastChar, + float* lpFloatBuffer) const; +#endif + +// Printer/Device Escape Functions + virtual int Escape(int nEscape, int nCount, + LPCSTR lpszInData, LPVOID lpOutData); +#ifndef _MAC + int Escape(int nEscape, int nInputSize, LPCSTR lpszInputData, + int nOutputSize, LPSTR lpszOutputData); + int DrawEscape(int nEscape, int nInputSize, LPCSTR lpszInputData); +#endif + + // Escape helpers + int StartDoc(LPCTSTR lpszDocName); // old Win3.0 version + int StartDoc(LPDOCINFO lpDocInfo); + int StartPage(); + int EndPage(); + int SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int)); + int AbortDoc(); + int EndDoc(); + +// MetaFile Functions + BOOL PlayMetaFile(HMETAFILE hMF); +#ifndef _MAC + BOOL PlayMetaFile(HENHMETAFILE hEnhMetaFile, LPCRECT lpBounds); + BOOL AddMetaFileComment(UINT nDataSize, const BYTE* pCommentData); + // can be used for enhanced metafiles only + +// Path Functions + BOOL AbortPath(); + BOOL BeginPath(); + BOOL CloseFigure(); + BOOL EndPath(); + BOOL FillPath(); + BOOL FlattenPath(); + BOOL StrokeAndFillPath(); + BOOL StrokePath(); + BOOL WidenPath(); + float GetMiterLimit() const; + BOOL SetMiterLimit(float fMiterLimit); + int GetPath(LPPOINT lpPoints, LPBYTE lpTypes, int nCount) const; + BOOL SelectClipPath(int nMode); +#endif + +// Misc Helper Functions + static CBrush* PASCAL GetHalftoneBrush(); + void DrawDragRect(LPCRECT lpRect, SIZE size, + LPCRECT lpRectLast, SIZE sizeLast, + CBrush* pBrush = NULL, CBrush* pBrushLast = NULL); + void FillSolidRect(LPCRECT lpRect, COLORREF clr); + void FillSolidRect(int x, int y, int cx, int cy, COLORREF clr); + void Draw3dRect(LPCRECT lpRect, COLORREF clrTopLeft, COLORREF clrBottomRight); + void Draw3dRect(int x, int y, int cx, int cy, + COLORREF clrTopLeft, COLORREF clrBottomRight); + +// Implementation +public: + virtual ~CDC(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + // advanced use and implementation + BOOL m_bPrinting; + HGDIOBJ SelectObject(HGDIOBJ); // do not use for regions + +protected: + // used for implementation of non-virtual SelectObject calls + static CGdiObject* PASCAL SelectGdiObject(HDC hDC, HGDIOBJ h); +}; + +///////////////////////////////////////////////////////////////////////////// +// CDC Helpers + +class CPaintDC : public CDC +{ + DECLARE_DYNAMIC(CPaintDC) + +// Constructors +public: + CPaintDC(CWnd* pWnd); // BeginPaint + +// Attributes +protected: + HWND m_hWnd; +public: + PAINTSTRUCT m_ps; // actual paint struct! + +// Implementation +public: + virtual ~CPaintDC(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +class CClientDC : public CDC +{ + DECLARE_DYNAMIC(CClientDC) + +// Constructors +public: + CClientDC(CWnd* pWnd); + +// Attributes +protected: + HWND m_hWnd; + +// Implementation +public: + virtual ~CClientDC(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +class CWindowDC : public CDC +{ + DECLARE_DYNAMIC(CWindowDC) + +// Constructors +public: + CWindowDC(CWnd* pWnd); + +// Attributes +protected: + HWND m_hWnd; + +// Implementation +public: + virtual ~CWindowDC(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// CMenu + +class CMenu : public CObject +{ + DECLARE_DYNCREATE(CMenu) +public: + +// Constructors + CMenu(); + + BOOL CreateMenu(); + BOOL CreatePopupMenu(); + BOOL LoadMenu(LPCTSTR lpszResourceName); + BOOL LoadMenu(UINT nIDResource); + BOOL LoadMenuIndirect(const void* lpMenuTemplate); + BOOL DestroyMenu(); + +// Attributes + HMENU m_hMenu; // must be first data member + HMENU GetSafeHmenu() const; + operator HMENU() const; + + static CMenu* PASCAL FromHandle(HMENU hMenu); + static void PASCAL DeleteTempMap(); + BOOL Attach(HMENU hMenu); + HMENU Detach(); + +// CMenu Operations + BOOL DeleteMenu(UINT nPosition, UINT nFlags); + BOOL TrackPopupMenu(UINT nFlags, int x, int y, + CWnd* pWnd, LPCRECT lpRect = 0); + +// CMenuItem Operations + BOOL AppendMenu(UINT nFlags, UINT nIDNewItem = 0, + LPCTSTR lpszNewItem = NULL); + BOOL AppendMenu(UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp); + UINT CheckMenuItem(UINT nIDCheckItem, UINT nCheck); + UINT EnableMenuItem(UINT nIDEnableItem, UINT nEnable); + UINT GetMenuItemCount() const; + UINT GetMenuItemID(int nPos) const; + UINT GetMenuState(UINT nID, UINT nFlags) const; + int GetMenuString(UINT nIDItem, LPTSTR lpString, int nMaxCount, + UINT nFlags) const; + int GetMenuString(UINT nIDItem, CString& rString, UINT nFlags) const; + CMenu* GetSubMenu(int nPos) const; + BOOL InsertMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, + LPCTSTR lpszNewItem = NULL); + BOOL InsertMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem, + const CBitmap* pBmp); + BOOL ModifyMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, + LPCTSTR lpszNewItem = NULL); + BOOL ModifyMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem, + const CBitmap* pBmp); + BOOL RemoveMenu(UINT nPosition, UINT nFlags); + BOOL SetMenuItemBitmaps(UINT nPosition, UINT nFlags, + const CBitmap* pBmpUnchecked, const CBitmap* pBmpChecked); +#ifndef _MAC + BOOL CheckMenuRadioItem(UINT nIDFirst, UINT nIDLast, UINT nIDItem, UINT nFlags); +#endif + +// Context Help Functions +#ifndef _MAC + BOOL SetMenuContextHelpId(DWORD dwContextHelpId); + DWORD GetMenuContextHelpId() const; +#endif + +// Overridables (must override draw and measure for owner-draw menu items) + virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); + virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct); + +// Implementation +public: + virtual ~CMenu(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + static CMenu* PASCAL CMenu::FromHandlePermanent(HMENU hMenu); +}; + +///////////////////////////////////////////////////////////////////////////// +// Window message map handling + +struct AFX_MSGMAP_ENTRY; // declared below after CWnd + +struct AFX_MSGMAP +{ +#ifdef _AFXDLL + const AFX_MSGMAP* (PASCAL* pfnGetBaseMap)(); +#else + const AFX_MSGMAP* pBaseMap; +#endif + const AFX_MSGMAP_ENTRY* lpEntries; +}; + +#ifdef _AFXDLL +#define DECLARE_MESSAGE_MAP() \ +private: \ + static const AFX_MSGMAP_ENTRY _messageEntries[]; \ +protected: \ + static AFX_DATA const AFX_MSGMAP messageMap; \ + static const AFX_MSGMAP* PASCAL _GetBaseMessageMap(); \ + virtual const AFX_MSGMAP* GetMessageMap() const; \ + +#else +#define DECLARE_MESSAGE_MAP() \ +private: \ + static const AFX_MSGMAP_ENTRY _messageEntries[]; \ +protected: \ + static AFX_DATA const AFX_MSGMAP messageMap; \ + virtual const AFX_MSGMAP* GetMessageMap() const; \ + +#endif + +#ifdef _AFXDLL +#define BEGIN_MESSAGE_MAP(theClass, baseClass) \ + const AFX_MSGMAP* PASCAL theClass::_GetBaseMessageMap() \ + { return &baseClass::messageMap; } \ + const AFX_MSGMAP* theClass::GetMessageMap() const \ + { return &theClass::messageMap; } \ + AFX_DATADEF const AFX_MSGMAP theClass::messageMap = \ + { &theClass::_GetBaseMessageMap, &theClass::_messageEntries[0] }; \ + const AFX_MSGMAP_ENTRY theClass::_messageEntries[] = \ + { \ + +#else +#define BEGIN_MESSAGE_MAP(theClass, baseClass) \ + const AFX_MSGMAP* theClass::GetMessageMap() const \ + { return &theClass::messageMap; } \ + AFX_DATADEF const AFX_MSGMAP theClass::messageMap = \ + { &baseClass::messageMap, &theClass::_messageEntries[0] }; \ + const AFX_MSGMAP_ENTRY theClass::_messageEntries[] = \ + { \ + +#endif + +#define END_MESSAGE_MAP() \ + {0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 } \ + }; \ + +// Message map signature values and macros in separate header +#include <afxmsg_.h> + +///////////////////////////////////////////////////////////////////////////// +// Dialog data exchange (DDX_) and validation (DDV_) + +// CDataExchange - for data exchange and validation +class CDataExchange +{ +// Attributes +public: + BOOL m_bSaveAndValidate; // TRUE => save and validate data + CWnd* m_pDlgWnd; // container usually a dialog + +// Operations (for implementors of DDX and DDV procs) + HWND PrepareCtrl(int nIDC); // return HWND of control + HWND PrepareEditCtrl(int nIDC); // return HWND of control + void Fail(); // will throw exception + +#ifndef _AFX_NO_OCC_SUPPORT + CWnd* PrepareOleCtrl(int nIDC); // for OLE controls in dialog +#endif + +// Implementation + CDataExchange(CWnd* pDlgWnd, BOOL bSaveAndValidate); + + HWND m_hWndLastControl; // last control used (for validation) + BOOL m_bEditLastControl; // last control was an edit item +}; + +#include <afxdd_.h> // standard DDX_ and DDV_ routines + +///////////////////////////////////////////////////////////////////////////// +// OLE types + +typedef LONG HRESULT; + +struct IUnknown; +typedef IUnknown* LPUNKNOWN; + +struct IDispatch; +typedef IDispatch* LPDISPATCH; + +struct IConnectionPoint; +typedef IConnectionPoint* LPCONNECTIONPOINT; + +struct IEnumOLEVERB; +typedef IEnumOLEVERB* LPENUMOLEVERB; + +typedef struct _GUID GUID; +typedef GUID IID; +typedef GUID CLSID; +#ifndef _REFCLSID_DEFINED +#define REFCLSID const CLSID & +#endif + +typedef long DISPID; +typedef unsigned short VARTYPE; +typedef long SCODE; + +#if defined(WIN32) && !defined(OLE2ANSI) +typedef WCHAR OLECHAR; +#else +typedef char OLECHAR; +#endif +typedef OLECHAR* BSTR; + +struct tagDISPPARAMS; +typedef tagDISPPARAMS DISPPARAMS; + +struct tagVARIANT; +typedef tagVARIANT VARIANT; + +struct ITypeInfo; +typedef ITypeInfo* LPTYPEINFO; + +struct ITypeLib; +typedef ITypeLib* LPTYPELIB; + +///////////////////////////////////////////////////////////////////////////// +// CCmdTarget + +// private structures +struct AFX_CMDHANDLERINFO; // info about where the command is handled +struct AFX_EVENT; // info about an event +class CTypeLibCache; // cache for OLE type libraries + +///////////////////////////////////////////////////////////////////////////// +// OLE interface map handling (more in AFXDISP.H) + +#ifndef _AFX_NO_OLE_SUPPORT + +struct AFX_INTERFACEMAP_ENTRY +{ + const void* piid; // the interface id (IID) (NULL for aggregate) + size_t nOffset; // offset of the interface vtable from m_unknown +}; + +struct AFX_INTERFACEMAP +{ +#ifdef _AFXDLL + const AFX_INTERFACEMAP* (PASCAL* pfnGetBaseMap)(); // NULL is root class +#else + const AFX_INTERFACEMAP* pBaseMap; +#endif + const AFX_INTERFACEMAP_ENTRY* pEntry; // map for this class +}; + + +#ifdef _AFXDLL +#define DECLARE_INTERFACE_MAP() \ +private: \ + static const AFX_INTERFACEMAP_ENTRY _interfaceEntries[]; \ +protected: \ + static AFX_DATA const AFX_INTERFACEMAP interfaceMap; \ + static const AFX_INTERFACEMAP* PASCAL _GetBaseInterfaceMap(); \ + virtual const AFX_INTERFACEMAP* GetInterfaceMap() const; \ + +#else +#define DECLARE_INTERFACE_MAP() \ +private: \ + static const AFX_INTERFACEMAP_ENTRY _interfaceEntries[]; \ +protected: \ + static AFX_DATA const AFX_INTERFACEMAP interfaceMap; \ + virtual const AFX_INTERFACEMAP* GetInterfaceMap() const; \ + +#endif + +#endif //!_AFX_NO_OLE_SUPPORT + +///////////////////////////////////////////////////////////////////////////// +// OLE dispatch map handling (more in AFXDISP.H) + +#ifndef _AFX_NO_OLE_SUPPORT + +struct AFX_DISPMAP_ENTRY; + +struct AFX_DISPMAP +{ +#ifdef _AFXDLL + const AFX_DISPMAP* (PASCAL* pfnGetBaseMap)(); +#else + const AFX_DISPMAP* pBaseMap; +#endif + const AFX_DISPMAP_ENTRY* lpEntries; + UINT* lpEntryCount; + DWORD* lpStockPropMask; +}; + +#ifdef _AFXDLL +#define DECLARE_DISPATCH_MAP() \ +private: \ + static const AFX_DISPMAP_ENTRY _dispatchEntries[]; \ + static UINT _dispatchEntryCount; \ + static DWORD _dwStockPropMask; \ +protected: \ + static AFX_DATA const AFX_DISPMAP dispatchMap; \ + static const AFX_DISPMAP* PASCAL _GetBaseDispatchMap(); \ + virtual const AFX_DISPMAP* GetDispatchMap() const; \ + +#else +#define DECLARE_DISPATCH_MAP() \ +private: \ + static const AFX_DISPMAP_ENTRY _dispatchEntries[]; \ + static UINT _dispatchEntryCount; \ + static DWORD _dwStockPropMask; \ +protected: \ + static AFX_DATA const AFX_DISPMAP dispatchMap; \ + virtual const AFX_DISPMAP* GetDispatchMap() const; \ + +#endif + +#endif //!_AFX_NO_OLE_SUPPORT + +///////////////////////////////////////////////////////////////////////////// +// OLE Document Object command target handling + +#ifndef _AFX_NO_DOCOBJECT_SUPPORT + +struct AFX_OLECMDMAP_ENTRY +{ + const GUID* pguid; // id of the command group + ULONG cmdID; // OLECMD ID + UINT nID; // corresponding WM_COMMAND message ID +}; + +struct AFX_OLECMDMAP +{ +#ifdef _AFXDLL + const AFX_OLECMDMAP* (PASCAL* pfnGetBaseMap)(); +#else + const AFX_OLECMDMAP* pBaseMap; +#endif + const AFX_OLECMDMAP_ENTRY* lpEntries; +}; + +#ifdef _AFXDLL +#define DECLARE_OLECMD_MAP() \ +private: \ + static const AFX_OLECMDMAP_ENTRY _commandEntries[]; \ +protected: \ + static AFX_DATA const AFX_OLECMDMAP commandMap; \ + static const AFX_OLECMDMAP* PASCAL _GetBaseCommandMap(); \ + virtual const AFX_OLECMDMAP* GetCommandMap() const; \ + +#else +#define DECLARE_OLECMD_MAP() \ +private: \ + static const AFX_OLECMDMAP_ENTRY _commandEntries[]; \ +protected: \ + static AFX_DATA const AFX_OLECMDMAP commandMap; \ + virtual const AFX_OLECMDMAP* GetCommandMap() const; \ + +#endif + +#ifdef _AFXDLL +#define BEGIN_OLECMD_MAP(theClass, baseClass) \ + const AFX_OLECMDMAP* PASCAL theClass::_GetBaseCommandMap() \ + { return &baseClass::commandMap; } \ + const AFX_OLECMDMAP* theClass::GetCommandMap() const \ + { return &theClass::commandMap; } \ + AFX_DATADEF const AFX_OLECMDMAP theClass::commandMap = \ + { &theClass::_GetBaseCommandMap, &theClass::_commandEntries[0] }; \ + const AFX_OLECMDMAP_ENTRY theClass::_commandEntries[] = \ + { \ + +#else +#define BEGIN_OLECMD_MAP(theClass, baseClass) \ + const AFX_OLECMDMAP* theClass::GetCommandMap() const \ + { return &theClass::commandMap; } \ + AFX_DATADEF const AFX_OLECMDMAP theClass::commandMap = \ + { &baseClass::commandMap, &theClass::_commandEntries[0] }; \ + const AFX_OLECMDMAP_ENTRY theClass::_commandEntries[] = \ + { \ + +#endif + +#define END_OLECMD_MAP() \ + {NULL, 0, 0} \ + }; \ + +class COleCmdUI; + +#endif //!_AFX_NO_DOCOBJECT_SUPPORT + +///////////////////////////////////////////////////////////////////////////// +// OLE event sink map handling (more in AFXDISP.H) + +#ifndef _AFX_NO_OCC_SUPPORT + +struct AFX_EVENTSINKMAP_ENTRY; + +struct AFX_EVENTSINKMAP +{ +#ifdef _AFXDLL + const AFX_EVENTSINKMAP* (PASCAL* pfnGetBaseMap)(); +#else + const AFX_EVENTSINKMAP* pBaseMap; +#endif + const AFX_EVENTSINKMAP_ENTRY* lpEntries; + UINT* lpEntryCount; +}; + +#ifdef _AFXDLL +#define DECLARE_EVENTSINK_MAP() \ +private: \ + static const AFX_EVENTSINKMAP_ENTRY _eventsinkEntries[]; \ + static UINT _eventsinkEntryCount; \ +protected: \ + static AFX_DATA const AFX_EVENTSINKMAP eventsinkMap; \ + static const AFX_EVENTSINKMAP* PASCAL _GetBaseEventSinkMap(); \ + virtual const AFX_EVENTSINKMAP* GetEventSinkMap() const; \ + +#else +#define DECLARE_EVENTSINK_MAP() \ +private: \ + static const AFX_EVENTSINKMAP_ENTRY _eventsinkEntries[]; \ + static UINT _eventsinkEntryCount; \ +protected: \ + static AFX_DATA const AFX_EVENTSINKMAP eventsinkMap; \ + virtual const AFX_EVENTSINKMAP* GetEventSinkMap() const; \ + +#endif + +#endif //!_AFX_NO_OCC_SUPPORT + +///////////////////////////////////////////////////////////////////////////// +// OLE connection map handling (more in AFXDISP.H) + +#ifndef _AFX_NO_OLE_SUPPORT + +struct AFX_CONNECTIONMAP_ENTRY +{ + const void* piid; // the interface id (IID) + size_t nOffset; // offset of the interface vtable from m_unknown +}; + +struct AFX_CONNECTIONMAP +{ +#ifdef _AFXDLL + const AFX_CONNECTIONMAP* (PASCAL* pfnGetBaseMap)(); // NULL is root class +#else + const AFX_CONNECTIONMAP* pBaseMap; +#endif + const AFX_CONNECTIONMAP_ENTRY* pEntry; // map for this class +}; + +#ifdef _AFXDLL +#define DECLARE_CONNECTION_MAP() \ +private: \ + static const AFX_CONNECTIONMAP_ENTRY _connectionEntries[]; \ +protected: \ + static AFX_DATA const AFX_CONNECTIONMAP connectionMap; \ + static const AFX_CONNECTIONMAP* PASCAL _GetBaseConnectionMap(); \ + virtual const AFX_CONNECTIONMAP* GetConnectionMap() const; \ + +#else +#define DECLARE_CONNECTION_MAP() \ +private: \ + static const AFX_CONNECTIONMAP_ENTRY _connectionEntries[]; \ +protected: \ + static AFX_DATA const AFX_CONNECTIONMAP connectionMap; \ + virtual const AFX_CONNECTIONMAP* GetConnectionMap() const; \ + +#endif + +#endif //!_AFX_NO_OLE_SUPPORT + +///////////////////////////////////////////////////////////////////////////// +// CCmdTarget proper + +#ifndef _AFX_NO_OCC_SUPPORT +class COccManager; // forward reference (see ..\src\occimpl.h) +#endif + +class CCmdTarget : public CObject +{ + DECLARE_DYNAMIC(CCmdTarget) +protected: + +public: +// Constructors + CCmdTarget(); + +// Attributes + LPDISPATCH GetIDispatch(BOOL bAddRef); + // retrieve IDispatch part of CCmdTarget + static CCmdTarget* PASCAL FromIDispatch(LPDISPATCH lpDispatch); + // map LPDISPATCH back to CCmdTarget* (inverse of GetIDispatch) + BOOL IsResultExpected(); + // returns TRUE if automation function should return a value + +// Operations + void EnableAutomation(); + // call in constructor to wire up IDispatch + void EnableConnections(); + // call in constructor to wire up IConnectionPointContainer + + void BeginWaitCursor(); + void EndWaitCursor(); + void RestoreWaitCursor(); // call after messagebox + +#ifndef _AFX_NO_OLE_SUPPORT + // dispatch OLE verbs through the message map + BOOL EnumOleVerbs(LPENUMOLEVERB* ppenumOleVerb); + BOOL DoOleVerb(LONG iVerb, LPMSG lpMsg, HWND hWndParent, LPCRECT lpRect); +#endif + +// Overridables + // route and dispatch standard command message types + // (more sophisticated than OnCommand) + virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, + AFX_CMDHANDLERINFO* pHandlerInfo); + +#ifndef _AFX_NO_OLE_SUPPORT + // called when last OLE reference is released + virtual void OnFinalRelease(); +#endif + +#ifndef _AFX_NO_OLE_SUPPORT + // called before dispatching to an automation handler function + virtual BOOL IsInvokeAllowed(DISPID dispid); +#endif + +#ifndef _AFX_NO_OLE_SUPPORT + // support for OLE type libraries + void EnableTypeLib(); + HRESULT GetTypeInfoOfGuid(LCID lcid, const GUID& guid, + LPTYPEINFO* ppTypeInfo); + virtual BOOL GetDispatchIID(IID* pIID); + virtual UINT GetTypeInfoCount(); + virtual CTypeLibCache* GetTypeLibCache(); + virtual HRESULT GetTypeLib(LCID lcid, LPTYPELIB* ppTypeLib); +#endif + +// Implementation +public: + virtual ~CCmdTarget(); +#ifdef _DEBUG + virtual void Dump(CDumpContext& dc) const; + virtual void AssertValid() const; +#endif +#ifndef _AFX_NO_OLE_SUPPORT + void GetNotSupported(); + void SetNotSupported(); +#endif + +protected: + friend class CView; + + CView* GetRoutingView(); + CFrameWnd* GetRoutingFrame(); + DECLARE_MESSAGE_MAP() // base class - no {{ }} macros + +#ifndef _AFX_NO_DOCOBJECT_SUPPORT + DECLARE_OLECMD_MAP() + friend class COleCmdUI; +#endif + +#ifndef _AFX_NO_OLE_SUPPORT + DECLARE_DISPATCH_MAP() + DECLARE_CONNECTION_MAP() + DECLARE_INTERFACE_MAP() + +#ifndef _AFX_NO_OCC_SUPPORT + DECLARE_EVENTSINK_MAP() +#endif // !_AFX_NO_OCC_SUPPORT + + // OLE interface map implementation +public: + // data used when CCmdTarget is made OLE aware + long m_dwRef; + LPUNKNOWN m_pOuterUnknown; // external controlling unknown if != NULL + DWORD m_xInnerUnknown; // place-holder for inner controlling unknown + +public: + // advanced operations + void EnableAggregation(); // call to enable aggregation + void ExternalDisconnect(); // forcibly disconnect + LPUNKNOWN GetControllingUnknown(); + // get controlling IUnknown for aggregate creation + + // these versions do not delegate to m_pOuterUnknown + DWORD InternalQueryInterface(const void*, LPVOID* ppvObj); + DWORD InternalAddRef(); + DWORD InternalRelease(); + // these versions delegate to m_pOuterUnknown + DWORD ExternalQueryInterface(const void*, LPVOID* ppvObj); + DWORD ExternalAddRef(); + DWORD ExternalRelease(); + + // implementation helpers + LPUNKNOWN GetInterface(const void*); + LPUNKNOWN QueryAggregates(const void*); + + // advanced overrideables for implementation + virtual BOOL OnCreateAggregates(); + virtual LPUNKNOWN GetInterfaceHook(const void*); + + // OLE automation implementation +protected: + struct XDispatch + { + DWORD m_vtbl; // place-holder for IDispatch vtable +#ifndef _AFX_NO_NESTED_DERIVATION + size_t m_nOffset; +#endif + } m_xDispatch; + BOOL m_bResultExpected; + + // member variable-based properties + void GetStandardProp(const AFX_DISPMAP_ENTRY* pEntry, + VARIANT* pvarResult, UINT* puArgErr); + SCODE SetStandardProp(const AFX_DISPMAP_ENTRY* pEntry, + DISPPARAMS* pDispParams, UINT* puArgErr); + + // DISPID to dispatch map lookup + static UINT PASCAL GetEntryCount(const AFX_DISPMAP* pDispMap); + const AFX_DISPMAP_ENTRY* PASCAL GetDispEntry(LONG memid); + static LONG PASCAL MemberIDFromName(const AFX_DISPMAP* pDispMap, LPCTSTR lpszName); + + // helpers for member function calling implementation + static UINT PASCAL GetStackSize(const BYTE* pbParams, VARTYPE vtResult); +#if defined(_PPC_) || defined(_MPPC_) + SCODE PushStackArgs(BYTE* pStack, const BYTE* pbParams, + void* pResult, VARTYPE vtResult, DISPPARAMS* pDispParams, + UINT* puArgErr, VARIANT* rgTempVars, UINT nSizeArgs); +#else + SCODE PushStackArgs(BYTE* pStack, const BYTE* pbParams, + void* pResult, VARTYPE vtResult, DISPPARAMS* pDispParams, + UINT* puArgErr, VARIANT* rgTempVars); +#endif + SCODE CallMemberFunc(const AFX_DISPMAP_ENTRY* pEntry, WORD wFlags, + VARIANT* pvarResult, DISPPARAMS* pDispParams, UINT* puArgErr); + + friend class COleDispatchImpl; + +#ifndef _AFX_NO_OCC_SUPPORT +public: + // OLE event sink implementation + BOOL OnEvent(UINT idCtrl, AFX_EVENT* pEvent, + AFX_CMDHANDLERINFO* pHandlerInfo); +protected: + const AFX_EVENTSINKMAP_ENTRY* PASCAL GetEventSinkEntry(UINT idCtrl, + AFX_EVENT* pEvent); +#endif // !_AFX_NO_OCC_SUPPORT + + // OLE connection implementation + struct XConnPtContainer + { + DWORD m_vtbl; // place-holder for IConnectionPointContainer vtable +#ifndef _AFX_NO_NESTED_DERIVATION + size_t m_nOffset; +#endif + } m_xConnPtContainer; + +#ifdef _AFXDLL + AFX_MODULE_STATE* m_pModuleState; + friend class CInnerUnknown; + friend UINT APIENTRY _AfxThreadEntry(void* pParam); +#endif + + virtual BOOL GetExtraConnectionPoints(CPtrArray* pConnPoints); + virtual LPCONNECTIONPOINT GetConnectionHook(const IID& iid); + + friend class COleConnPtContainer; + +#endif //!_AFX_NO_OLE_SUPPORT +}; + +class CCmdUI // simple helper class +{ +public: +// Attributes + UINT m_nID; + UINT m_nIndex; // menu item or other index + + // if a menu item + CMenu* m_pMenu; // NULL if not a menu + CMenu* m_pSubMenu; // sub containing menu item + // if a popup sub menu - ID is for first in popup + + // if from some other window + CWnd* m_pOther; // NULL if a menu or not a CWnd + +// Operations to do in ON_UPDATE_COMMAND_UI + virtual void Enable(BOOL bOn = TRUE); + virtual void SetCheck(int nCheck = 1); // 0, 1 or 2 (indeterminate) + virtual void SetRadio(BOOL bOn = TRUE); + virtual void SetText(LPCTSTR lpszText); + +// Advanced operation + void ContinueRouting(); + +// Implementation + CCmdUI(); + BOOL m_bEnableChanged; + BOOL m_bContinueRouting; + UINT m_nIndexMax; // last + 1 for iterating m_nIndex + + CMenu* m_pParentMenu; // NULL if parent menu not easily determined + // (probably a secondary popup menu) + + BOOL DoUpdate(CCmdTarget* pTarget, BOOL bDisableIfNoHndler); +}; + +// special CCmdUI derived classes are used for other UI paradigms +// like toolbar buttons and status indicators + +// pointer to afx_msg member function +#ifndef AFX_MSG_CALL +#define AFX_MSG_CALL +#endif +typedef void (AFX_MSG_CALL CCmdTarget::*AFX_PMSG)(void); + +enum AFX_DISPMAP_FLAGS +{ + afxDispCustom = 0, + afxDispStock = 1 +}; + +struct AFX_DISPMAP_ENTRY +{ + LPCTSTR lpszName; // member/property name + long lDispID; // DISPID (may be DISPID_UNKNOWN) + LPCSTR lpszParams; // member parameter description + WORD vt; // return value type / or type of property + AFX_PMSG pfn; // normal member On<membercall> or, OnGet<property> + AFX_PMSG pfnSet; // special member for OnSet<property> + size_t nPropOffset; // property offset + AFX_DISPMAP_FLAGS flags;// flags (e.g. stock/custom) +}; + +struct AFX_EVENTSINKMAP_ENTRY +{ + AFX_DISPMAP_ENTRY dispEntry; + UINT nCtrlIDFirst; + UINT nCtrlIDLast; +}; + +// DSC Sink state/reason codes passed to MFC user event handlers +enum DSCSTATE +{ + dscNoState = 0, + dscOKToDo, + dscCancelled, + dscSyncBefore, + dscAboutToDo, + dscFailedToDo, + dscSyncAfter, + dscDidEvent +}; + +enum DSCREASON +{ + dscNoReason = 0, + dscClose, + dscCommit, + dscDelete, + dscEdit, + dscInsert, + dscModify, + dscMove +}; + +///////////////////////////////////////////////////////////////////////////// +// CWnd implementation + +// structures (see afxext.h) +struct CCreateContext; // context for creating things +struct CPrintInfo; // print preview customization info + +struct AFX_MSGMAP_ENTRY +{ + UINT nMessage; // windows message + UINT nCode; // control code or WM_NOTIFY code + UINT nID; // control ID (or 0 for windows messages) + UINT nLastID; // used for entries specifying a range of control id's + UINT nSig; // signature type (action) or pointer to message # + AFX_PMSG pfn; // routine to call (or special value) +}; + +///////////////////////////////////////////////////////////////////////////// +// CWnd - a Microsoft Windows application window + +class COleDropTarget; // for more information see AFXOLE.H +class COleControlContainer; +class COleControlSite; + +// CWnd::m_nFlags (generic to CWnd) +#define WF_TOOLTIPS 0x0001 // window is enabled for tooltips +#define WF_TEMPHIDE 0x0002 // window is temporarily hidden +#define WF_STAYDISABLED 0x0004 // window should stay disabled +#define WF_MODALLOOP 0x0008 // currently in modal loop +#define WF_CONTINUEMODAL 0x0010 // modal loop should continue running +#define WF_OLECTLCONTAINER 0x0100 // some descendant is an OLE control + +// CWnd::m_nFlags (specific to CFrameWnd) +#define WF_STAYACTIVE 0x0020 // look active even though not active +#define WF_NOPOPMSG 0x0040 // ignore WM_POPMESSAGESTRING calls +#define WF_MODALDISABLE 0x0080 // window is disabled +#define WF_KEEPMINIACTIVE 0x0200 // stay activate even though you are deactivated + +// flags for CWnd::RunModalLoop +#define MLF_NOIDLEMSG 0x0001 // don't send WM_ENTERIDLE messages +#define MLF_NOKICKIDLE 0x0002 // don't send WM_KICKIDLE messages +#define MLF_SHOWONIDLE 0x0004 // show window if not visible at idle time + +// extra MFC defined TTF_ flags for TOOLINFO::uFlags +#define TTF_NOTBUTTON 0x80000000L // no status help on buttondown +#define TTF_ALWAYSTIP 0x40000000L // always show the tip even if not active + +class CWnd : public CCmdTarget +{ + DECLARE_DYNCREATE(CWnd) +protected: + static const MSG* PASCAL GetCurrentMessage(); + +// Attributes +public: + HWND m_hWnd; // must be first data member + operator HWND() const; + + HWND GetSafeHwnd() const; + DWORD GetStyle() const; + DWORD GetExStyle() const; + BOOL ModifyStyle(DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0); + BOOL ModifyStyleEx(DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0); + + CWnd* GetOwner() const; + void SetOwner(CWnd* pOwnerWnd); + +// Constructors and other creation + CWnd(); + + static CWnd* PASCAL FromHandle(HWND hWnd); + static CWnd* PASCAL FromHandlePermanent(HWND hWnd); + static void PASCAL DeleteTempMap(); + BOOL Attach(HWND hWndNew); + HWND Detach(); + + // subclassing/unsubclassing functions + virtual void PreSubclassWindow(); + BOOL SubclassWindow(HWND hWnd); + BOOL SubclassDlgItem(UINT nID, CWnd* pParent); + HWND UnsubclassWindow(); + + // handling of RT_DLGINIT resource (extension to RT_DIALOG) + BOOL ExecuteDlgInit(LPCTSTR lpszResourceName); + BOOL ExecuteDlgInit(LPVOID lpResource); + +public: + // for child windows, views, panes etc + virtual BOOL Create(LPCTSTR lpszClassName, + LPCTSTR lpszWindowName, DWORD dwStyle, + const RECT& rect, + CWnd* pParentWnd, UINT nID, + CCreateContext* pContext = NULL); + + // advanced creation (allows access to extended styles) + BOOL CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName, + LPCTSTR lpszWindowName, DWORD dwStyle, + int x, int y, int nWidth, int nHeight, + HWND hWndParent, HMENU nIDorHMenu, LPVOID lpParam = NULL); + +#ifndef _AFX_NO_OCC_SUPPORT + // for wrapping OLE controls + BOOL CreateControl(REFCLSID clsid, LPCTSTR pszWindowName, DWORD dwStyle, + const RECT& rect, CWnd* pParentWnd, UINT nID, CFile* pPersist=NULL, + BOOL bStorage=FALSE, BSTR bstrLicKey=NULL); + + BOOL CreateControl(LPCTSTR pszClass, LPCTSTR pszWindowName, DWORD dwStyle, + const RECT& rect, CWnd* pParentWnd, UINT nID, CFile* pPersist=NULL, + BOOL bStorage=FALSE, BSTR bstrLicKey=NULL); + + LPUNKNOWN GetControlUnknown(); +#endif + + virtual BOOL DestroyWindow(); + + // special pre-creation and window rect adjustment hooks + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + + // Advanced: virtual AdjustWindowRect + enum AdjustType { adjustBorder = 0, adjustOutside = 1 }; + virtual void CalcWindowRect(LPRECT lpClientRect, + UINT nAdjustType = adjustBorder); + +// Window tree access + int GetDlgCtrlID() const; + int SetDlgCtrlID(int nID); + // get and set window ID, for child windows only + CWnd* GetDlgItem(int nID) const; + // get immediate child with given ID + void GetDlgItem(int nID, HWND* phWnd) const; + // as above, but returns HWND + CWnd* GetDescendantWindow(int nID, BOOL bOnlyPerm = FALSE) const; + // like GetDlgItem but recursive + void SendMessageToDescendants(UINT message, WPARAM wParam = 0, + LPARAM lParam = 0, BOOL bDeep = TRUE, BOOL bOnlyPerm = FALSE); + CFrameWnd* GetParentFrame() const; + CWnd* GetTopLevelParent() const; + CWnd* GetTopLevelOwner() const; + CWnd* GetParentOwner() const; + CFrameWnd* GetTopLevelFrame() const; + static CWnd* PASCAL GetSafeOwner(CWnd* pParent = NULL, HWND* pWndTop = NULL); + +// Message Functions + LRESULT SendMessage(UINT message, WPARAM wParam = 0, LPARAM lParam = 0); + BOOL PostMessage(UINT message, WPARAM wParam = 0, LPARAM lParam = 0); + +#ifndef _MAC + BOOL SendNotifyMessage(UINT message, WPARAM wParam, LPARAM lParam); +#endif + BOOL SendChildNotifyLastMsg(LRESULT* pResult = NULL); + +// Message processing for modeless dialog-like windows + BOOL IsDialogMessage(LPMSG lpMsg); + +// Window Text Functions + void SetWindowText(LPCTSTR lpszString); + int GetWindowText(LPTSTR lpszStringBuf, int nMaxCount) const; + void GetWindowText(CString& rString) const; + int GetWindowTextLength() const; + void SetFont(CFont* pFont, BOOL bRedraw = TRUE); + CFont* GetFont() const; + +// CMenu Functions - non-Child windows only + CMenu* GetMenu() const; + BOOL SetMenu(CMenu* pMenu); + void DrawMenuBar(); + CMenu* GetSystemMenu(BOOL bRevert) const; + BOOL HiliteMenuItem(CMenu* pMenu, UINT nIDHiliteItem, UINT nHilite); + +// Window Size and Position Functions + BOOL IsIconic() const; + BOOL IsZoomed() const; + void MoveWindow(int x, int y, int nWidth, int nHeight, + BOOL bRepaint = TRUE); + void MoveWindow(LPCRECT lpRect, BOOL bRepaint = TRUE); + + static AFX_DATA const CWnd wndTop; // SetWindowPos's pWndInsertAfter + static AFX_DATA const CWnd wndBottom; // SetWindowPos's pWndInsertAfter + static AFX_DATA const CWnd wndTopMost; // SetWindowPos pWndInsertAfter + static AFX_DATA const CWnd wndNoTopMost; // SetWindowPos pWndInsertAfter + + BOOL SetWindowPos(const CWnd* pWndInsertAfter, int x, int y, + int cx, int cy, UINT nFlags); +#ifndef _MAC + UINT ArrangeIconicWindows(); +#endif + void BringWindowToTop(); + void GetWindowRect(LPRECT lpRect) const; + void GetClientRect(LPRECT lpRect) const; + + BOOL GetWindowPlacement(WINDOWPLACEMENT* lpwndpl) const; + BOOL SetWindowPlacement(const WINDOWPLACEMENT* lpwndpl); + +// Coordinate Mapping Functions + void ClientToScreen(LPPOINT lpPoint) const; + void ClientToScreen(LPRECT lpRect) const; + void ScreenToClient(LPPOINT lpPoint) const; + void ScreenToClient(LPRECT lpRect) const; + void MapWindowPoints(CWnd* pwndTo, LPPOINT lpPoint, UINT nCount) const; + void MapWindowPoints(CWnd* pwndTo, LPRECT lpRect) const; + +// Update/Painting Functions + CDC* BeginPaint(LPPAINTSTRUCT lpPaint); + void EndPaint(LPPAINTSTRUCT lpPaint); + CDC* GetDC(); + CDC* GetWindowDC(); + int ReleaseDC(CDC* pDC); + void Print(CDC* pDC, DWORD dwFlags) const; + void PrintClient(CDC* pDC, DWORD dwFlags) const; + + void UpdateWindow(); + void SetRedraw(BOOL bRedraw = TRUE); + BOOL GetUpdateRect(LPRECT lpRect, BOOL bErase = FALSE); + int GetUpdateRgn(CRgn* pRgn, BOOL bErase = FALSE); + void Invalidate(BOOL bErase = TRUE); + void InvalidateRect(LPCRECT lpRect, BOOL bErase = TRUE); + void InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE); + void ValidateRect(LPCRECT lpRect); + void ValidateRgn(CRgn* pRgn); + BOOL ShowWindow(int nCmdShow); + BOOL IsWindowVisible() const; + void ShowOwnedPopups(BOOL bShow = TRUE); + + CDC* GetDCEx(CRgn* prgnClip, DWORD flags); +#ifndef _MAC + BOOL LockWindowUpdate(); // for backward compatibility + void UnlockWindowUpdate(); +#endif + BOOL RedrawWindow(LPCRECT lpRectUpdate = NULL, + CRgn* prgnUpdate = NULL, + UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE); + BOOL EnableScrollBar(int nSBFlags, UINT nArrowFlags = ESB_ENABLE_BOTH); + +// Timer Functions + UINT SetTimer(UINT nIDEvent, UINT nElapse, + void (CALLBACK* lpfnTimer)(HWND, UINT, UINT, DWORD)); + BOOL KillTimer(int nIDEvent); + +// ToolTip Functions + BOOL EnableToolTips(BOOL bEnable = TRUE); + static void PASCAL CancelToolTips(BOOL bKeys = FALSE); + void FilterToolTipMessage(MSG* pMsg); + + // for command hit testing (used for automatic tooltips) + virtual int OnToolHitTest(CPoint point, TOOLINFO* pTI) const; + +// Window State Functions + BOOL IsWindowEnabled() const; + BOOL EnableWindow(BOOL bEnable = TRUE); + + // the active window applies only to top-level (frame windows) + static CWnd* PASCAL GetActiveWindow(); + CWnd* SetActiveWindow(); + + // the foreground window applies only to top-level windows (frame windows) + BOOL SetForegroundWindow(); + static CWnd* PASCAL GetForegroundWindow(); + + // capture and focus apply to all windows + static CWnd* PASCAL GetCapture(); + CWnd* SetCapture(); + static CWnd* PASCAL GetFocus(); + CWnd* SetFocus(); + + static CWnd* PASCAL GetDesktopWindow(); + +// Obsolete and non-portable APIs - not recommended for new code +#ifndef _MAC + void CloseWindow(); + BOOL OpenIcon(); +#endif + +// Dialog-Box Item Functions +// (NOTE: Dialog-Box Items/Controls are not necessarily in dialog boxes!) + void CheckDlgButton(int nIDButton, UINT nCheck); + void CheckRadioButton(int nIDFirstButton, int nIDLastButton, + int nIDCheckButton); + int GetCheckedRadioButton(int nIDFirstButton, int nIDLastButton); +#ifndef _MAC + int DlgDirList(LPTSTR lpPathSpec, int nIDListBox, + int nIDStaticPath, UINT nFileType); + int DlgDirListComboBox(LPTSTR lpPathSpec, int nIDComboBox, + int nIDStaticPath, UINT nFileType); + BOOL DlgDirSelect(LPTSTR lpString, int nIDListBox); + BOOL DlgDirSelectComboBox(LPTSTR lpString, int nIDComboBox); +#endif + + UINT GetDlgItemInt(int nID, BOOL* lpTrans = NULL, + BOOL bSigned = TRUE) const; + int GetDlgItemText(int nID, LPTSTR lpStr, int nMaxCount) const; + int GetDlgItemText(int nID, CString& rString) const; + CWnd* GetNextDlgGroupItem(CWnd* pWndCtl, BOOL bPrevious = FALSE) const; + + CWnd* GetNextDlgTabItem(CWnd* pWndCtl, BOOL bPrevious = FALSE) const; + UINT IsDlgButtonChecked(int nIDButton) const; + LRESULT SendDlgItemMessage(int nID, UINT message, + WPARAM wParam = 0, LPARAM lParam = 0); + void SetDlgItemInt(int nID, UINT nValue, BOOL bSigned = TRUE); + void SetDlgItemText(int nID, LPCTSTR lpszString); + +// Scrolling Functions + int GetScrollPos(int nBar) const; + void GetScrollRange(int nBar, LPINT lpMinPos, LPINT lpMaxPos) const; + void ScrollWindow(int xAmount, int yAmount, + LPCRECT lpRect = NULL, + LPCRECT lpClipRect = NULL); + int SetScrollPos(int nBar, int nPos, BOOL bRedraw = TRUE); + void SetScrollRange(int nBar, int nMinPos, int nMaxPos, + BOOL bRedraw = TRUE); + void ShowScrollBar(UINT nBar, BOOL bShow = TRUE); + void EnableScrollBarCtrl(int nBar, BOOL bEnable = TRUE); + virtual CScrollBar* GetScrollBarCtrl(int nBar) const; + // return sibling scrollbar control (or NULL if none) + + int ScrollWindowEx(int dx, int dy, + LPCRECT lpRectScroll, LPCRECT lpRectClip, + CRgn* prgnUpdate, LPRECT lpRectUpdate, UINT flags); + BOOL SetScrollInfo(int nBar, LPSCROLLINFO lpScrollInfo, + BOOL bRedraw = TRUE); + BOOL GetScrollInfo(int nBar, LPSCROLLINFO lpScrollInfo, UINT nMask = SIF_ALL); + int GetScrollLimit(int nBar); + +// Window Access Functions + CWnd* ChildWindowFromPoint(POINT point) const; +#ifndef _MAC + CWnd* ChildWindowFromPoint(POINT point, UINT nFlags) const; +#endif + static CWnd* PASCAL FindWindow(LPCTSTR lpszClassName, LPCTSTR lpszWindowName); + CWnd* GetNextWindow(UINT nFlag = GW_HWNDNEXT) const; + CWnd* GetTopWindow() const; + + CWnd* GetWindow(UINT nCmd) const; + CWnd* GetLastActivePopup() const; + + BOOL IsChild(const CWnd* pWnd) const; + CWnd* GetParent() const; + CWnd* SetParent(CWnd* pWndNewParent); + static CWnd* PASCAL WindowFromPoint(POINT point); + +// Alert Functions + BOOL FlashWindow(BOOL bInvert); + int MessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, + UINT nType = MB_OK); + +// Clipboard Functions + BOOL ChangeClipboardChain(HWND hWndNext); + HWND SetClipboardViewer(); + BOOL OpenClipboard(); + static CWnd* PASCAL GetClipboardOwner(); + static CWnd* PASCAL GetClipboardViewer(); + static CWnd* PASCAL GetOpenClipboardWindow(); + +// Caret Functions + void CreateCaret(CBitmap* pBitmap); + void CreateSolidCaret(int nWidth, int nHeight); + void CreateGrayCaret(int nWidth, int nHeight); + static CPoint PASCAL GetCaretPos(); + static void PASCAL SetCaretPos(POINT point); + void HideCaret(); + void ShowCaret(); + +// Shell Interaction Functions + void DragAcceptFiles(BOOL bAccept = TRUE); + +// Icon Functions + HICON SetIcon(HICON hIcon, BOOL bBigIcon); + HICON GetIcon(BOOL bBigIcon) const; + +// Context Help Functions +#ifndef _MAC + BOOL SetWindowContextHelpId(DWORD dwContextHelpId); + DWORD GetWindowContextHelpId() const; + +#endif + +// Dialog Data support +public: + BOOL UpdateData(BOOL bSaveAndValidate = TRUE); + // data wnd must be same type as this + +// Help Command Handlers + afx_msg void OnHelp(); // F1 (uses current context) + afx_msg void OnHelpIndex(); // ID_HELP_INDEX + afx_msg void OnHelpFinder(); // ID_HELP_FINDER, ID_DEFAULT_HELP + afx_msg void OnHelpUsing(); // ID_HELP_USING + virtual void WinHelp(DWORD dwData, UINT nCmd = HELP_CONTEXT); + +// Layout and other functions +public: + enum RepositionFlags + { reposDefault = 0, reposQuery = 1, reposExtra = 2 }; + void RepositionBars(UINT nIDFirst, UINT nIDLast, UINT nIDLeftOver, + UINT nFlag = reposDefault, LPRECT lpRectParam = NULL, + LPCRECT lpRectClient = NULL, BOOL bStretch = TRUE); + + // dialog support + void UpdateDialogControls(CCmdTarget* pTarget, BOOL bDisableIfNoHndler); + void CenterWindow(CWnd* pAlternateOwner = NULL); + int RunModalLoop(DWORD dwFlags = 0); + virtual BOOL ContinueModal(); + virtual void EndModalLoop(int nResult); + +#ifndef _AFX_NO_OCC_SUPPORT +// OLE control wrapper functions + void AFX_CDECL InvokeHelper(DISPID dwDispID, WORD wFlags, + VARTYPE vtRet, void* pvRet, const BYTE* pbParamInfo, ...); + void AFX_CDECL SetProperty(DISPID dwDispID, VARTYPE vtProp, ...); + void GetProperty(DISPID dwDispID, VARTYPE vtProp, void* pvProp) const; + IUnknown* GetDSCCursor(); + void BindDefaultProperty(DISPID dwDispID, VARTYPE vtProp, LPCTSTR szFieldName, CWnd* pDSCWnd); + void BindProperty(DISPID dwDispId, CWnd* pWndDSC); +#endif + +// Window-Management message handler member functions +protected: + virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); + virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult); + + afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized); + afx_msg void OnActivateApp(BOOL bActive, HTASK hTask); + afx_msg LRESULT OnActivateTopLevel(WPARAM, LPARAM); + afx_msg void OnCancelMode(); + afx_msg void OnChildActivate(); + afx_msg void OnClose(); + afx_msg void OnContextMenu(CWnd* pWnd, CPoint pos); + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + + afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); + + afx_msg void OnDestroy(); + afx_msg void OnEnable(BOOL bEnable); + afx_msg void OnEndSession(BOOL bEnding); + afx_msg void OnEnterIdle(UINT nWhy, CWnd* pWho); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI); + afx_msg BOOL OnHelpInfo(HELPINFO* lpHelpInfo); + afx_msg void OnIconEraseBkgnd(CDC* pDC); + afx_msg void OnKillFocus(CWnd* pNewWnd); + afx_msg LRESULT OnMenuChar(UINT nChar, UINT nFlags, CMenu* pMenu); + afx_msg void OnMenuSelect(UINT nItemID, UINT nFlags, HMENU hSysMenu); + afx_msg void OnMove(int x, int y); + afx_msg void OnPaint(); + afx_msg void OnParentNotify(UINT message, LPARAM lParam); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg BOOL OnQueryEndSession(); + afx_msg BOOL OnQueryNewPalette(); + afx_msg BOOL OnQueryOpen(); + afx_msg void OnSetFocus(CWnd* pOldWnd); + afx_msg void OnShowWindow(BOOL bShow, UINT nStatus); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnTCard(UINT idAction, DWORD dwActionData); + afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos); + afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos); + +// Nonclient-Area message handler member functions + afx_msg BOOL OnNcActivate(BOOL bActive); + afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp); + afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnNcDestroy(); + afx_msg UINT OnNcHitTest(CPoint point); + afx_msg void OnNcLButtonDblClk(UINT nHitTest, CPoint point); + afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point); + afx_msg void OnNcLButtonUp(UINT nHitTest, CPoint point); + afx_msg void OnNcMButtonDblClk(UINT nHitTest, CPoint point); + afx_msg void OnNcMButtonDown(UINT nHitTest, CPoint point); + afx_msg void OnNcMButtonUp(UINT nHitTest, CPoint point); + afx_msg void OnNcMouseMove(UINT nHitTest, CPoint point); + afx_msg void OnNcPaint(); + afx_msg void OnNcRButtonDblClk(UINT nHitTest, CPoint point); + afx_msg void OnNcRButtonDown(UINT nHitTest, CPoint point); + afx_msg void OnNcRButtonUp(UINT nHitTest, CPoint point); + +// System message handler member functions + afx_msg void OnDropFiles(HDROP hDropInfo); + afx_msg void OnPaletteIsChanging(CWnd* pRealizeWnd); + afx_msg void OnSysChar(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnSysDeadChar(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnSysKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnCompacting(UINT nCpuTime); + afx_msg void OnDevModeChange(LPTSTR lpDeviceName); + afx_msg void OnFontChange(); + afx_msg void OnPaletteChanged(CWnd* pFocusWnd); + afx_msg void OnSpoolerStatus(UINT nStatus, UINT nJobs); + afx_msg void OnSysColorChange(); + afx_msg void OnTimeChange(); + afx_msg void OnWinIniChange(LPCTSTR lpszSection); + +// Input message handler member functions + afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnDeadChar(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); + afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); + afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); + afx_msg void OnLButtonDown(UINT nFlags, CPoint point); + afx_msg void OnLButtonUp(UINT nFlags, CPoint point); + afx_msg void OnMButtonDblClk(UINT nFlags, CPoint point); + afx_msg void OnMButtonDown(UINT nFlags, CPoint point); + afx_msg void OnMButtonUp(UINT nFlags, CPoint point); + afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message); + afx_msg void OnMouseMove(UINT nFlags, CPoint point); + afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point); + afx_msg void OnRButtonDown(UINT nFlags, CPoint point); + afx_msg void OnRButtonUp(UINT nFlags, CPoint point); + afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); + afx_msg void OnTimer(UINT nIDEvent); + +// Initialization message handler member functions + afx_msg void OnInitMenu(CMenu* pMenu); + afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu); + +// Clipboard message handler member functions + afx_msg void OnAskCbFormatName(UINT nMaxCount, LPTSTR lpszString); + afx_msg void OnChangeCbChain(HWND hWndRemove, HWND hWndAfter); + afx_msg void OnDestroyClipboard(); + afx_msg void OnDrawClipboard(); + afx_msg void OnHScrollClipboard(CWnd* pClipAppWnd, UINT nSBCode, UINT nPos); + afx_msg void OnPaintClipboard(CWnd* pClipAppWnd, HGLOBAL hPaintStruct); + afx_msg void OnRenderAllFormats(); + afx_msg void OnRenderFormat(UINT nFormat); + afx_msg void OnSizeClipboard(CWnd* pClipAppWnd, HGLOBAL hRect); + afx_msg void OnVScrollClipboard(CWnd* pClipAppWnd, UINT nSBCode, UINT nPos); + +// Control message handler member functions + afx_msg int OnCompareItem(int nIDCtl, LPCOMPAREITEMSTRUCT lpCompareItemStruct); + afx_msg void OnDeleteItem(int nIDCtl, LPDELETEITEMSTRUCT lpDeleteItemStruct); + afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct); + afx_msg UINT OnGetDlgCode(); + afx_msg void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct); + afx_msg int OnCharToItem(UINT nChar, CListBox* pListBox, UINT nIndex); + afx_msg int OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex); + +// MDI message handler member functions + afx_msg void OnMDIActivate(BOOL bActivate, + CWnd* pActivateWnd, CWnd* pDeactivateWnd); + +// Menu loop notification messages + afx_msg void OnEnterMenuLoop(BOOL bIsTrackPopupMenu); + afx_msg void OnExitMenuLoop(BOOL bIsTrackPopupMenu); + +// Win4 messages + afx_msg void OnStyleChanged(int nStyleType, LPSTYLESTRUCT lpStyleStruct); + afx_msg void OnStyleChanging(int nStyleType, LPSTYLESTRUCT lpStyleStruct); + afx_msg void OnSizing(UINT nSide, LPRECT lpRect); + afx_msg void OnMoving(UINT nSide, LPRECT lpRect); + afx_msg void OnCaptureChanged(CWnd* pWnd); + afx_msg BOOL OnDeviceChange(UINT nEventType, DWORD dwData); + +// Overridables and other helpers (for implementation of derived classes) +protected: + // for deriving from a standard control + virtual WNDPROC* GetSuperWndProcAddr(); + + // for dialog data exchange and validation + virtual void DoDataExchange(CDataExchange* pDX); + +public: + // for modality + virtual void BeginModalState(); + virtual void EndModalState(); + + // for translating Windows messages in main message pump + virtual BOOL PreTranslateMessage(MSG* pMsg); + +#ifndef _AFX_NO_OCC_SUPPORT + // for ambient properties exposed to contained OLE controls + virtual BOOL OnAmbientProperty(COleControlSite* pSite, DISPID dispid, + VARIANT* pvar); +#endif + +protected: + // for processing Windows messages + virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam); + virtual BOOL OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult); + + // for handling default processing + LRESULT Default(); + virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam); + + // for custom cleanup after WM_NCDESTROY + virtual void PostNcDestroy(); + + // for notifications from parent + virtual BOOL OnChildNotify(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult); + // return TRUE if parent should not process this message + BOOL ReflectChildNotify(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult); + static BOOL PASCAL ReflectLastMsg(HWND hWndChild, LRESULT* pResult = NULL); + +// Implementation +public: + virtual ~CWnd(); + virtual BOOL CheckAutoCenter(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + // 3D support (these APIs will be obsolete with next version of Windows) + BOOL SubclassCtl3d(int nControlType = -1); + // see CTL3D.H for list of control types + BOOL SubclassDlg3d(DWORD dwMask = 0xFFFF /*CTL3D_ALL*/); + // see CTL3D.H for list of mask values + static BOOL PASCAL GrayCtlColor(HDC hDC, HWND hWnd, UINT nCtlColor, + HBRUSH hbrGray, COLORREF clrText); + HBRUSH OnGrayCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); + + // helper routines for implementation + BOOL HandleFloatingSysCommand(UINT nID, LPARAM lParam); + BOOL IsTopParentActive() const; + void ActivateTopParent(); + static BOOL PASCAL WalkPreTranslateTree(HWND hWndStop, MSG* pMsg); + static CWnd* PASCAL GetDescendantWindow(HWND hWnd, int nID, + BOOL bOnlyPerm); + static void PASCAL SendMessageToDescendants(HWND hWnd, UINT message, + WPARAM wParam, LPARAM lParam, BOOL bDeep, BOOL bOnlyPerm); + virtual BOOL IsFrameWnd() const; // IsKindOf(RUNTIME_CLASS(CFrameWnd))) + virtual void OnFinalRelease(); + BOOL PreTranslateInput(LPMSG lpMsg); + static BOOL PASCAL ModifyStyle(HWND hWnd, DWORD dwRemove, DWORD dwAdd, + UINT nFlags); + static BOOL PASCAL ModifyStyleEx(HWND hWnd, DWORD dwRemove, DWORD dwAdd, + UINT nFlags); + static void PASCAL _FilterToolTipMessage(MSG* pMsg, CWnd* pWnd); + +public: + HWND m_hWndOwner; // implementation of SetOwner and GetOwner + UINT m_nFlags; // see WF_ flags above + +protected: + WNDPROC m_pfnSuper; // for subclassing of controls + static const UINT m_nMsgDragList; + int m_nModalResult; // for return values from CWnd::RunModalLoop + + COleDropTarget* m_pDropTarget; // for automatic cleanup of drop target + friend class COleDropTarget; + friend class CFrameWnd; + + // for creating dialogs and dialog-like windows + BOOL CreateDlg(LPCTSTR lpszTemplateName, CWnd* pParentWnd); + BOOL CreateDlgIndirect(LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd); + BOOL CreateDlgIndirect(LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd, + HINSTANCE hInst); + +#ifndef _AFX_NO_OCC_SUPPORT + COleControlContainer* m_pCtrlCont; // for containing OLE controls + COleControlSite* m_pCtrlSite; // for wrapping an OLE control + friend class COccManager; + friend class COleControlSite; + friend class COleControlContainer; + BOOL InitControlContainer(); + virtual BOOL SetOccDialogInfo(struct _AFX_OCC_DIALOG_INFO* pOccDialogInfo); + void AttachControlSite(CHandleMap* pMap); +public: + void AttachControlSite(CWnd* pWndParent); +#endif + +protected: + // implementation of message dispatch/hooking + friend LRESULT CALLBACK _AfxSendMsgHook(int, WPARAM, LPARAM); + friend void AFXAPI _AfxStandardSubclass(HWND); + friend LRESULT CALLBACK _AfxCbtFilterHook(int, WPARAM, LPARAM); + friend LRESULT AFXAPI AfxCallWndProc(CWnd*, HWND, UINT, WPARAM, LPARAM); + + // standard message implementation + afx_msg LRESULT OnNTCtlColor(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnQuery3dControls(WPARAM, LPARAM); + afx_msg LRESULT OnDisplayChange(WPARAM, LPARAM); +#ifdef _MAC + afx_msg LRESULT OnMacintosh(WPARAM wParam, LPARAM lParam); +#endif + + afx_msg LRESULT OnDragList(WPARAM, LPARAM); + + //{{AFX_MSG(CWnd) + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +private: + CWnd(HWND hWnd); // just for special initialization +}; + +// helpers for registering your own WNDCLASSes +LPCTSTR AFXAPI AfxRegisterWndClass(UINT nClassStyle, + HCURSOR hCursor = 0, HBRUSH hbrBackground = 0, HICON hIcon = 0); + +BOOL AFXAPI AfxRegisterClass(WNDCLASS* lpWndClass); + +// Implementation +LRESULT CALLBACK AfxWndProc(HWND, UINT, WPARAM, LPARAM); + +WNDPROC AFXAPI AfxGetAfxWndProc(); +#define AfxWndProc (*AfxGetAfxWndProc()) + +typedef void (AFX_MSG_CALL CWnd::*AFX_PMSGW)(void); + // like 'AFX_PMSG' but for CWnd derived classes only + +typedef void (AFX_MSG_CALL CWinThread::*AFX_PMSGT)(void); + // like 'AFX_PMSG' but for CWinThread-derived classes only + +///////////////////////////////////////////////////////////////////////////// +// CDialog - a modal or modeless dialog + +class CDialog : public CWnd +{ + DECLARE_DYNAMIC(CDialog) + + // Modeless construct +public: + CDialog(); + + BOOL Create(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL); + BOOL Create(UINT nIDTemplate, CWnd* pParentWnd = NULL); + BOOL CreateIndirect(LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd = NULL, + void* lpDialogInit = NULL); + BOOL CreateIndirect(HGLOBAL hDialogTemplate, CWnd* pParentWnd = NULL); + + // Modal construct +public: + CDialog(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL); + CDialog(UINT nIDTemplate, CWnd* pParentWnd = NULL); + BOOL InitModalIndirect(LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd = NULL, + void* lpDialogInit = NULL); + BOOL InitModalIndirect(HGLOBAL hDialogTemplate, CWnd* pParentWnd = NULL); + +// Attributes +public: + void MapDialogRect(LPRECT lpRect) const; + void SetHelpID(UINT nIDR); + +// Operations +public: + // modal processing + virtual int DoModal(); + + // support for passing on tab control - use 'PostMessage' if needed + void NextDlgCtrl() const; + void PrevDlgCtrl() const; + void GotoDlgCtrl(CWnd* pWndCtrl); + + // default button access + void SetDefID(UINT nID); + DWORD GetDefID() const; + + // termination + void EndDialog(int nResult); + +// Overridables (special message map entries) + virtual BOOL OnInitDialog(); + virtual void OnSetFont(CFont* pFont); +protected: + virtual void OnOK(); + virtual void OnCancel(); + +// Implementation +public: + virtual ~CDialog(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual BOOL PreTranslateMessage(MSG* pMsg); + virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, + AFX_CMDHANDLERINFO* pHandlerInfo); + virtual BOOL CheckAutoCenter(); + +protected: + UINT m_nIDHelp; // Help ID (0 for none, see HID_BASE_RESOURCE) + + // parameters for 'DoModal' + LPCTSTR m_lpszTemplateName; // name or MAKEINTRESOURCE + HGLOBAL m_hDialogTemplate; // indirect (m_lpDialogTemplate == NULL) + LPCDLGTEMPLATE m_lpDialogTemplate; // indirect if (m_lpszTemplateName == NULL) + void* m_lpDialogInit; // DLGINIT resource data + CWnd* m_pParentWnd; // parent/owner window + HWND m_hWndTop; // top level parent window (may be disabled) + +#ifndef _AFX_NO_OCC_SUPPORT + _AFX_OCC_DIALOG_INFO* m_pOccDialogInfo; + virtual BOOL SetOccDialogInfo(_AFX_OCC_DIALOG_INFO* pOccDialogInfo); +#endif + virtual void PreInitDialog(); + + // implementation helpers + HWND PreModal(); + void PostModal(); + + BOOL CreateIndirect(LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd, + void* lpDialogInit, HINSTANCE hInst); + BOOL CreateIndirect(HGLOBAL hDialogTemplate, CWnd* pParentWnd, + HINSTANCE hInst); + +protected: + //{{AFX_MSG(CDialog) + afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); + afx_msg LRESULT OnCommandHelp(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnHelpHitTest(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT HandleInitDialog(WPARAM, LPARAM); + afx_msg LRESULT HandleSetFont(WPARAM, LPARAM); + //}}AFX_MSG +#ifdef _MAC + afx_msg void OnSysColorChange(); +#endif + DECLARE_MESSAGE_MAP() +}; + +// all CModalDialog functionality is now in CDialog +#define CModalDialog CDialog + +///////////////////////////////////////////////////////////////////////////// +// Standard Windows controls + +class CStatic : public CWnd +{ + DECLARE_DYNAMIC(CStatic) + +// Constructors +public: + CStatic(); + BOOL Create(LPCTSTR lpszText, DWORD dwStyle, + const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff); + +// Operations + HICON SetIcon(HICON hIcon); + HICON GetIcon() const; + +#if (WINVER >= 0x400) + HENHMETAFILE SetEnhMetaFile(HENHMETAFILE hMetaFile); + HENHMETAFILE GetEnhMetaFile() const; + HBITMAP SetBitmap(HBITMAP hBitmap); + HBITMAP GetBitmap() const; + HCURSOR SetCursor(HCURSOR hCursor); + HCURSOR GetCursor(); +#endif + +// Implementation +public: + virtual ~CStatic(); +}; + +class CButton : public CWnd +{ + DECLARE_DYNAMIC(CButton) + +// Constructors +public: + CButton(); + BOOL Create(LPCTSTR lpszCaption, DWORD dwStyle, + const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + UINT GetState() const; + void SetState(BOOL bHighlight); + int GetCheck() const; + void SetCheck(int nCheck); + UINT GetButtonStyle() const; + void SetButtonStyle(UINT nStyle, BOOL bRedraw = TRUE); + +#if (WINVER >= 0x400) + HICON SetIcon(HICON hIcon); + HICON GetIcon() const; + HBITMAP SetBitmap(HBITMAP hBitmap); + HBITMAP GetBitmap() const; + HCURSOR SetCursor(HCURSOR hCursor); + HCURSOR GetCursor(); +#endif + +// Overridables (for owner draw only) + virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); + +// Implementation +public: + virtual ~CButton(); +protected: + virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); +}; + +class CListBox : public CWnd +{ + DECLARE_DYNAMIC(CListBox) + +// Constructors +public: + CListBox(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + + // for entire listbox + int GetCount() const; + int GetHorizontalExtent() const; + void SetHorizontalExtent(int cxExtent); + int GetTopIndex() const; + int SetTopIndex(int nIndex); + LCID GetLocale() const; + LCID SetLocale(LCID nNewLocale); +#if (WINVER >= 0x400) + int InitStorage(int nItems, UINT nBytes); + UINT ItemFromPoint(CPoint pt, BOOL& bOutside) const; +#endif + // for single-selection listboxes + int GetCurSel() const; + int SetCurSel(int nSelect); + + // for multiple-selection listboxes + int GetSel(int nIndex) const; // also works for single-selection + int SetSel(int nIndex, BOOL bSelect = TRUE); + int GetSelCount() const; + int GetSelItems(int nMaxItems, LPINT rgIndex) const; + void SetAnchorIndex(int nIndex); + int GetAnchorIndex() const; + + // for listbox items + DWORD GetItemData(int nIndex) const; + int SetItemData(int nIndex, DWORD dwItemData); + void* GetItemDataPtr(int nIndex) const; + int SetItemDataPtr(int nIndex, void* pData); + int GetItemRect(int nIndex, LPRECT lpRect) const; + int GetText(int nIndex, LPTSTR lpszBuffer) const; + void GetText(int nIndex, CString& rString) const; + int GetTextLen(int nIndex) const; + + // Settable only attributes + void SetColumnWidth(int cxWidth); + BOOL SetTabStops(int nTabStops, LPINT rgTabStops); + void SetTabStops(); + BOOL SetTabStops(const int& cxEachStop); // takes an 'int' + + int SetItemHeight(int nIndex, UINT cyItemHeight); + int GetItemHeight(int nIndex) const; + int FindStringExact(int nIndexStart, LPCTSTR lpszFind) const; + int GetCaretIndex() const; + int SetCaretIndex(int nIndex, BOOL bScroll = TRUE); + +// Operations + // manipulating listbox items + int AddString(LPCTSTR lpszItem); + int DeleteString(UINT nIndex); + int InsertString(int nIndex, LPCTSTR lpszItem); + void ResetContent(); + int Dir(UINT attr, LPCTSTR lpszWildCard); + + // selection helpers + int FindString(int nStartAfter, LPCTSTR lpszItem) const; + int SelectString(int nStartAfter, LPCTSTR lpszItem); + int SelItemRange(BOOL bSelect, int nFirstItem, int nLastItem); + +// Overridables (must override draw, measure and compare for owner draw) + virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); + virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct); + virtual int CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct); + virtual void DeleteItem(LPDELETEITEMSTRUCT lpDeleteItemStruct); + virtual int VKeyToItem(UINT nKey, UINT nIndex); + virtual int CharToItem(UINT nKey, UINT nIndex); + +// Implementation +public: + virtual ~CListBox(); +protected: + virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); +}; + +class CCheckListBox : public CListBox +{ + DECLARE_DYNAMIC(CCheckListBox) + +// Constructors +public: + CCheckListBox(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + void SetCheckStyle(UINT nStyle); + UINT GetCheckStyle(); + void SetCheck(int nIndex, int nCheck); + int GetCheck(int nIndex); + void Enable(int nIndex, BOOL bEnabled = TRUE); + BOOL IsEnabled(int nIndex); + + virtual CRect OnGetCheckPosition(CRect rectItem, CRect rectCheckBox); + +// Overridables (must override draw, measure and compare for owner draw) + virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); + virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct); + +// Implementation +protected: + void PreDrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); + void PreMeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct); + int PreCompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct); + void PreDeleteItem(LPDELETEITEMSTRUCT lpDeleteItemStruct); + + virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); + +#ifdef _DEBUG + virtual void PreSubclassWindow(); +#endif + + int CalcMinimumItemHeight(); + void InvalidateCheck(int nIndex); + void InvalidateItem(int nIndex); + int CheckFromPoint(CPoint point, BOOL& bInCheck); + + int m_cyText; + UINT m_nStyle; + + // Message map functions +protected: + //{{AFX_MSG(CCheckListBox) + afx_msg void OnLButtonDown(UINT nFlags, CPoint point); + afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); + afx_msg LRESULT OnSetFont(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnLBAddString(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnLBFindString(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnLBFindStringExact(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnLBGetItemData(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnLBGetText(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnLBInsertString(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnLBSelectString(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnLBSetItemData(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnLBSetItemHeight(WPARAM wParam, LPARAM lParam); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +class CComboBox : public CWnd +{ + DECLARE_DYNAMIC(CComboBox) + +// Constructors +public: + CComboBox(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + // for entire combo box + int GetCount() const; + int GetCurSel() const; + int SetCurSel(int nSelect); + LCID GetLocale() const; + LCID SetLocale(LCID nNewLocale); +// Win4 + int GetTopIndex() const; + int SetTopIndex(int nIndex); + int InitStorage(int nItems, UINT nBytes); + void SetHorizontalExtent(UINT nExtent); + UINT GetHorizontalExtent() const; + int SetDroppedWidth(UINT nWidth); + int GetDroppedWidth() const; + + // for edit control + DWORD GetEditSel() const; + BOOL LimitText(int nMaxChars); + BOOL SetEditSel(int nStartChar, int nEndChar); + + // for combobox item + DWORD GetItemData(int nIndex) const; + int SetItemData(int nIndex, DWORD dwItemData); + void* GetItemDataPtr(int nIndex) const; + int SetItemDataPtr(int nIndex, void* pData); + int GetLBText(int nIndex, LPTSTR lpszText) const; + void GetLBText(int nIndex, CString& rString) const; + int GetLBTextLen(int nIndex) const; + + int SetItemHeight(int nIndex, UINT cyItemHeight); + int GetItemHeight(int nIndex) const; + int FindStringExact(int nIndexStart, LPCTSTR lpszFind) const; + int SetExtendedUI(BOOL bExtended = TRUE); + BOOL GetExtendedUI() const; + void GetDroppedControlRect(LPRECT lprect) const; + BOOL GetDroppedState() const; + +// Operations + // for drop-down combo boxes + void ShowDropDown(BOOL bShowIt = TRUE); + + // manipulating listbox items + int AddString(LPCTSTR lpszString); + int DeleteString(UINT nIndex); + int InsertString(int nIndex, LPCTSTR lpszString); + void ResetContent(); + int Dir(UINT attr, LPCTSTR lpszWildCard); + + // selection helpers + int FindString(int nStartAfter, LPCTSTR lpszString) const; + int SelectString(int nStartAfter, LPCTSTR lpszString); + + // Clipboard operations + void Clear(); + void Copy(); + void Cut(); + void Paste(); + +// Overridables (must override draw, measure and compare for owner draw) + virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); + virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct); + virtual int CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct); + virtual void DeleteItem(LPDELETEITEMSTRUCT lpDeleteItemStruct); + +// Implementation +public: + virtual ~CComboBox(); +protected: + virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*); +}; + +class CEdit : public CWnd +{ + DECLARE_DYNAMIC(CEdit) + +// Constructors +public: + CEdit(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + BOOL CanUndo() const; + int GetLineCount() const; + BOOL GetModify() const; + void SetModify(BOOL bModified = TRUE); + void GetRect(LPRECT lpRect) const; + DWORD GetSel() const; + void GetSel(int& nStartChar, int& nEndChar) const; + HLOCAL GetHandle() const; + void SetHandle(HLOCAL hBuffer); +#if (WINVER >= 0x400) + void SetMargins(UINT nLeft, UINT nRight); + DWORD GetMargins() const; + void SetLimitText(UINT nMax); + UINT GetLimitText() const; + CPoint PosFromChar(UINT nChar) const; + int CharFromPos(CPoint pt) const; +#endif + + // NOTE: first word in lpszBuffer must contain the size of the buffer! + int GetLine(int nIndex, LPTSTR lpszBuffer) const; + int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const; + +// Operations + void EmptyUndoBuffer(); + BOOL FmtLines(BOOL bAddEOL); + + void LimitText(int nChars = 0); + int LineFromChar(int nIndex = -1) const; + int LineIndex(int nLine = -1) const; + int LineLength(int nLine = -1) const; + void LineScroll(int nLines, int nChars = 0); + void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE); + void SetPasswordChar(TCHAR ch); + void SetRect(LPCRECT lpRect); + void SetRectNP(LPCRECT lpRect); + void SetSel(DWORD dwSelection, BOOL bNoScroll = FALSE); + void SetSel(int nStartChar, int nEndChar, BOOL bNoScroll = FALSE); +#ifndef _MAC + BOOL SetTabStops(int nTabStops, LPINT rgTabStops); + void SetTabStops(); + BOOL SetTabStops(const int& cxEachStop); // takes an 'int' +#endif + + // Clipboard operations + BOOL Undo(); + void Clear(); + void Copy(); + void Cut(); + void Paste(); + + BOOL SetReadOnly(BOOL bReadOnly = TRUE); + int GetFirstVisibleLine() const; + TCHAR GetPasswordChar() const; + +// Implementation +public: + virtual ~CEdit(); +}; + +class CScrollBar : public CWnd +{ + DECLARE_DYNAMIC(CScrollBar) + +// Constructors +public: + CScrollBar(); + BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); + +// Attributes + int GetScrollPos() const; + int SetScrollPos(int nPos, BOOL bRedraw = TRUE); + void GetScrollRange(LPINT lpMinPos, LPINT lpMaxPos) const; + void SetScrollRange(int nMinPos, int nMaxPos, BOOL bRedraw = TRUE); + void ShowScrollBar(BOOL bShow = TRUE); + + BOOL EnableScrollBar(UINT nArrowFlags = ESB_ENABLE_BOTH); + + BOOL SetScrollInfo(LPSCROLLINFO lpScrollInfo, BOOL bRedraw = TRUE); + BOOL GetScrollInfo(LPSCROLLINFO lpScrollInfo, UINT nMask = SIF_ALL); + int GetScrollLimit(); + +// Implementation +public: + virtual ~CScrollBar(); +}; + +///////////////////////////////////////////////////////////////////////////// +// CFrameWnd - base class for SDI and other frame windows + +// Frame window styles +#define FWS_ADDTOTITLE 0x00008000L // modify title based on content +#define FWS_PREFIXTITLE 0x00004000L // show document name before app name +#define FWS_SNAPTOBARS 0x00002000L // snap size to size of contained bars + +struct CPrintPreviewState; // forward reference (see afxext.h) +class CControlBar; // forward reference (see afxext.h) + +class CDockBar; // forward reference (see afxpriv.h) +class CMiniDockFrameWnd; // forward reference (see afxpriv.h) +class CDockState; // forward reference (see afxpriv.h) + +class COleFrameHook; // forward reference (see ..\src\oleimpl.h) + +class CFrameWnd : public CWnd +{ + DECLARE_DYNCREATE(CFrameWnd) + +// Constructors +public: + static AFX_DATA const CRect rectDefault; + CFrameWnd(); + + BOOL LoadAccelTable(LPCTSTR lpszResourceName); + BOOL Create(LPCTSTR lpszClassName, + LPCTSTR lpszWindowName, + DWORD dwStyle = WS_OVERLAPPEDWINDOW, + const RECT& rect = rectDefault, + CWnd* pParentWnd = NULL, // != NULL for popups + LPCTSTR lpszMenuName = NULL, + DWORD dwExStyle = 0, + CCreateContext* pContext = NULL); + + // dynamic creation - load frame and associated resources + virtual BOOL LoadFrame(UINT nIDResource, + DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, + CWnd* pParentWnd = NULL, + CCreateContext* pContext = NULL); + + // special helper for view creation + CWnd* CreateView(CCreateContext* pContext, UINT nID = AFX_IDW_PANE_FIRST); + +// Attributes + virtual CDocument* GetActiveDocument(); + + // Active child view maintenance + CView* GetActiveView() const; // active view or NULL + void SetActiveView(CView* pViewNew, BOOL bNotify = TRUE); + // active view or NULL, bNotify == FALSE if focus should not be set + + // Active frame (for frames within frames -- MDI) + virtual CFrameWnd* GetActiveFrame(); + + // For customizing the default messages on the status bar + virtual void GetMessageString(UINT nID, CString& rMessage) const; + + BOOL m_bAutoMenuEnable; + // TRUE => menu items without handlers will be disabled + + BOOL IsTracking() const; + +// Operations + virtual void RecalcLayout(BOOL bNotify = TRUE); + virtual void ActivateFrame(int nCmdShow = -1); + void InitialUpdateFrame(CDocument* pDoc, BOOL bMakeVisible); + + // to set text of standard status bar + void SetMessageText(LPCTSTR lpszText); + void SetMessageText(UINT nID); + + // control bar docking + void EnableDocking(DWORD dwDockStyle); + void DockControlBar(CControlBar* pBar, UINT nDockBarID = 0, + LPCRECT lpRect = NULL); + void FloatControlBar(CControlBar* pBar, CPoint point, + DWORD dwStyle = CBRS_ALIGN_TOP); + CControlBar* GetControlBar(UINT nID); + + // frame window based modality + virtual void BeginModalState(); + virtual void EndModalState(); + BOOL InModalState() const; + void ShowOwnedWindows(BOOL bShow); + + // saving and loading control bar state + void LoadBarState(LPCTSTR lpszProfileName); + void SaveBarState(LPCTSTR lpszProfileName) const; + void ShowControlBar(CControlBar* pBar, BOOL bShow, BOOL bDelay); + void SetDockState(const CDockState& state); + void GetDockState(CDockState& state) const; + +// Overridables + virtual void OnSetPreviewMode(BOOL bPreview, CPrintPreviewState* pState); + virtual CWnd* GetMessageBar(); + + // border space negotiation + enum BorderCmd + { borderGet = 1, borderRequest = 2, borderSet = 3 }; + virtual BOOL NegotiateBorderSpace(UINT nBorderCmd, LPRECT lpRectBorder); + +protected: + virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext); + +// Command Handlers +public: + afx_msg void OnContextHelp(); // for Shift+F1 help + afx_msg void OnUpdateControlBarMenu(CCmdUI* pCmdUI); + afx_msg BOOL OnBarCheck(UINT nID); + +// Implementation +public: + virtual ~CFrameWnd(); + int m_nWindow; // general purpose window number - display as ":n" + // -1 => unknown, 0 => only window viewing document + // 1 => first of many windows viewing document, 2=> second + + HMENU m_hMenuDefault; // default menu resource for this frame + HACCEL m_hAccelTable; // accelerator table + DWORD m_dwPromptContext; // current help prompt context for message box + BOOL m_bHelpMode; // if TRUE, then Shift+F1 help mode is active + CFrameWnd* m_pNextFrameWnd; // next CFrameWnd in app global list + CRect m_rectBorder; // for OLE border space negotiation + COleFrameHook* m_pNotifyHook; + + CPtrList m_listControlBars; // array of all control bars that have this + // window as their dock site + int m_nShowDelay; // SW_ command for delay show/hide + + CMiniDockFrameWnd* CreateFloatingFrame(DWORD dwStyle); + DWORD CanDock(CRect rect, DWORD dwDockStyle, + CDockBar** ppDockBar = NULL); // called by CDockContext + void AddControlBar(CControlBar *pBar); + void RemoveControlBar(CControlBar *pBar); + void DockControlBar(CControlBar* pBar, CDockBar* pDockBar, + LPCRECT lpRect = NULL); + void ReDockControlBar(CControlBar* pBar, CDockBar* pDockBar, + LPCRECT lpRect = NULL); + void NotifyFloatingWindows(DWORD dwFlags); + void DestroyDockBars(); + +protected: + UINT m_nIDHelp; // Help ID (0 for none, see HID_BASE_RESOURCE) + UINT m_nIDTracking; // tracking command ID or string IDS + UINT m_nIDLastMessage; // last displayed message string IDS + CView* m_pViewActive; // current active view + BOOL (CALLBACK* m_lpfnCloseProc)(CFrameWnd* pFrameWnd); + UINT m_cModalStack; // BeginModalState depth + HWND* m_phWndDisable; // windows disabled because of BeginModalState + HMENU m_hMenuAlt; // menu to update to (NULL means default) + CString m_strTitle; // default title (original) + BOOL m_bInRecalcLayout; // avoid recursion in RecalcLayout + CRuntimeClass* m_pFloatingFrameClass; + static const DWORD dwDockBarMap[4][2]; + +public: +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual BOOL IsFrameWnd() const; + virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, + AFX_CMDHANDLERINFO* pHandlerInfo); + virtual void OnUpdateFrameTitle(BOOL bAddToTitle); + virtual void OnUpdateFrameMenu(HMENU hMenuAlt); + virtual HACCEL GetDefaultAccelerator(); + virtual BOOL PreTranslateMessage(MSG* pMsg); + + // idle update of frame user interface + enum IdleFlags + { idleMenu = 1, idleTitle = 2, idleNotify = 4, idleLayout = 8 }; + UINT m_nIdleFlags; // set of bit flags for idle processing + virtual void DelayUpdateFrameMenu(HMENU hMenuAlt); + void DelayUpdateFrameTitle(); + void DelayRecalcLayout(BOOL bNotify = TRUE); + + // for Shift+F1 help support + BOOL CanEnterHelpMode(); + virtual void ExitHelpMode(); + +protected: + // implementation helpers + LPCTSTR GetIconWndClass(DWORD dwDefaultStyle, UINT nIDResource); + void UpdateFrameTitleForDocument(LPCTSTR lpszDocName); + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); + virtual void PostNcDestroy(); // default to delete this. + int OnCreateHelper(LPCREATESTRUCT lpcs, CCreateContext* pContext); + void BringToTop(int nCmdShow); + // bring window to top for SW_ commands which affect z-order + + // implementation helpers for Shift+F1 help mode + BOOL ProcessHelpMsg(MSG& msg, DWORD* pContext); + HWND SetHelpCapture(POINT point, BOOL* pbDescendant); + + // CFrameWnd list management + void AddFrameWnd(); + void RemoveFrameWnd(); + + friend class CWnd; // for access to m_bModalDisable + + //{{AFX_MSG(CFrameWnd) + // Windows messages + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnDestroy(); + afx_msg void OnClose(); + afx_msg void OnInitMenuPopup(CMenu*, UINT, BOOL); + afx_msg void OnMenuSelect(UINT nItemID, UINT nFlags, HMENU hSysMenu); + afx_msg LRESULT OnPopMessageString(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnSetMessageString(WPARAM wParam, LPARAM lParam); + afx_msg void OnIdleUpdateCmdUI(); + afx_msg void OnEnterIdle(UINT nWhy, CWnd* pWho); + afx_msg void OnSetFocus(CWnd* pOldWnd); + afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); + afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); + afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized); + afx_msg BOOL OnNcActivate(BOOL bActive); + afx_msg void OnSysCommand(UINT nID, LONG lParam); + afx_msg BOOL OnQueryEndSession(); + afx_msg void OnEndSession(BOOL bEnding); + afx_msg void OnDropFiles(HDROP hDropInfo); + afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); + afx_msg LRESULT OnCommandHelp(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnHelpHitTest(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnActivateTopLevel(WPARAM wParam, LPARAM lParam); + afx_msg void OnEnable(BOOL bEnable); + afx_msg void OnPaletteChanged(CWnd* pFocusWnd); + afx_msg BOOL OnQueryNewPalette(); + // standard commands + afx_msg BOOL OnToolTipText(UINT nID, NMHDR* pNMHDR, LRESULT* pResult); + afx_msg void OnUpdateKeyIndicator(CCmdUI* pCmdUI); + afx_msg void OnHelp(); + afx_msg void OnUpdateContextHelp(CCmdUI* pCmdUI); + //}}AFX_MSG +protected: +#ifndef _MAC + afx_msg LRESULT OnDDEInitiate(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnDDEExecute(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnDDETerminate(WPARAM wParam, LPARAM lParam); +#endif +#ifdef _MAC + afx_msg void OnActivateApp(BOOL bActive, HTASK hTask); + afx_msg void OnPaint(); +#endif + DECLARE_MESSAGE_MAP() + + friend class CWinApp; +}; + +///////////////////////////////////////////////////////////////////////////// +// MDI Support + +class CMDIFrameWnd : public CFrameWnd +{ + DECLARE_DYNCREATE(CMDIFrameWnd) + +public: +// Constructors + CMDIFrameWnd(); + +// Operations + void MDIActivate(CWnd* pWndActivate); + CMDIChildWnd* MDIGetActive(BOOL* pbMaximized = NULL) const; + void MDIIconArrange(); + void MDIMaximize(CWnd* pWnd); + void MDINext(); + void MDIRestore(CWnd* pWnd); + CMenu* MDISetMenu(CMenu* pFrameMenu, CMenu* pWindowMenu); + void MDITile(); + void MDICascade(); + void MDITile(int nType); + void MDICascade(int nType); + +// Overridables + // MFC 1.0 backward compatible CreateClient hook (called by OnCreateClient) + virtual BOOL CreateClient(LPCREATESTRUCT lpCreateStruct, CMenu* pWindowMenu); + // customize if using an 'Window' menu with non-standard IDs + virtual HMENU GetWindowMenuPopup(HMENU hMenuBar); + +// Implementation +public: + HWND m_hWndMDIClient; // MDI Client window handle + +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + virtual BOOL LoadFrame(UINT nIDResource, + DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, + CWnd* pParentWnd = NULL, + CCreateContext* pContext = NULL); + virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext); + virtual BOOL PreTranslateMessage(MSG* pMsg); + virtual void OnUpdateFrameTitle(BOOL bAddToTitle); + virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, + AFX_CMDHANDLERINFO* pHandlerInfo); + virtual void OnUpdateFrameMenu(HMENU hMenuAlt); + virtual void DelayUpdateFrameMenu(HMENU hMenuAlt); + virtual CFrameWnd* GetActiveFrame(); + +protected: + virtual LRESULT DefWindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam); + virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); + + //{{AFX_MSG(CMDIFrameWnd) + afx_msg void OnDestroy(); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnUpdateMDIWindowCmd(CCmdUI* pCmdUI); + afx_msg BOOL OnMDIWindowCmd(UINT nID); + afx_msg void OnWindowNew(); + afx_msg LRESULT OnCommandHelp(WPARAM wParam, LPARAM lParam); + afx_msg void OnIdleUpdateCmdUI(); + afx_msg LRESULT OnMenuChar(UINT nChar, UINT, CMenu*); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +class CMDIChildWnd : public CFrameWnd +{ + DECLARE_DYNCREATE(CMDIChildWnd) + +// Constructors +public: + CMDIChildWnd(); + + virtual BOOL Create(LPCTSTR lpszClassName, + LPCTSTR lpszWindowName, + DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW, + const RECT& rect = rectDefault, + CMDIFrameWnd* pParentWnd = NULL, + CCreateContext* pContext = NULL); + +// Attributes + CMDIFrameWnd* GetMDIFrame(); + +// Operations + void MDIDestroy(); + void MDIActivate(); + void MDIMaximize(); + void MDIRestore(); + +// Implementation +protected: + HMENU m_hMenuShared; // menu when we are active + +public: +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + virtual BOOL LoadFrame(UINT nIDResource, DWORD dwDefaultStyle, + CWnd* pParentWnd, CCreateContext* pContext = NULL); + // 'pParentWnd' parameter is required for MDI Child + virtual BOOL DestroyWindow(); + virtual BOOL PreTranslateMessage(MSG* pMsg); + virtual void ActivateFrame(int nCmdShow = -1); + virtual void OnUpdateFrameMenu(BOOL bActive, CWnd* pActivateWnd, + HMENU hMenuAlt); + + BOOL m_bPseudoInactive; // TRUE if window is MDI active according to + // windows, but not according to MFC... + +protected: + virtual CWnd* GetMessageBar(); + virtual void OnUpdateFrameTitle(BOOL bAddToTitle); + virtual LRESULT DefWindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam); + BOOL UpdateClientEdge(LPRECT lpRect = NULL); + + //{{AFX_MSG(CMDIChildWnd) + afx_msg void OnMDIActivate(BOOL bActivate, CWnd*, CWnd*); + afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message); + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnWindowPosChanging(LPWINDOWPOS lpWndPos); + afx_msg BOOL OnNcActivate(BOOL bActive); + afx_msg void OnDestroy(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// CMiniFrameWnd + +// MiniFrame window styles +#define MFS_SYNCACTIVE 0x00000100L // syncronize activation w/ parent +#define MFS_4THICKFRAME 0x00000200L // thick frame all around (no tiles) +#define MFS_THICKFRAME 0x00000400L // use instead of WS_THICKFRAME +#define MFS_MOVEFRAME 0x00000800L // no sizing, just moving +#define MFS_BLOCKSYSMENU 0x00001000L // block hit testing on system menu + +class CMiniFrameWnd : public CFrameWnd +{ + DECLARE_DYNCREATE(CMiniFrameWnd) + +// Constructors +public: + CMiniFrameWnd(); + BOOL Create(LPCTSTR lpClassName, LPCTSTR lpWindowName, + DWORD dwStyle, const RECT& rect, + CWnd* pParentWnd = NULL, UINT nID = 0); + BOOL CreateEx(DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, + DWORD dwStyle, const RECT& rect, + CWnd* pParentWnd = NULL, UINT nID = 0); + +// Implementation +public: + ~CMiniFrameWnd(); + + static void AFX_CDECL Initialize(); + + //{{AFX_MSG(CMiniFrameWnd) + afx_msg BOOL OnNcActivate(BOOL bActive); + afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpParams); + afx_msg UINT OnNcHitTest(CPoint point); + afx_msg void OnNcPaint(); + afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint pt ); + afx_msg void OnLButtonUp(UINT nFlags, CPoint pt ); + afx_msg void OnMouseMove(UINT nFlags, CPoint pt ); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnGetMinMaxInfo(MINMAXINFO* pMMI); + afx_msg LRESULT OnGetText(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnGetTextLength(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnSetText(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnFloatStatus(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnQueryCenterWnd(WPARAM wParam, LPARAM lParam); + afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpcs); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + +public: + virtual void CalcWindowRect(LPRECT lpClientRect, + UINT nAdjustType = adjustBorder); + + static void PASCAL CalcBorders(LPRECT lpClientRect, + DWORD dwStyle = WS_THICKFRAME | WS_CAPTION, DWORD dwExStyle = 0); + +protected: + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + +protected: + BOOL m_bSysTracking; + BOOL m_bInSys; + BOOL m_bActive; + CString m_strCaption; + + void InvertSysMenu(); +}; + +///////////////////////////////////////////////////////////////////////////// +// class CView is the client area UI for a document + +class CPrintDialog; // forward reference (see afxdlgs.h) +class CPreviewView; // forward reference (see afxpriv.h) +class CSplitterWnd; // forward reference (see afxext.h) +class COleServerDoc; // forward reference (see afxole.h) + +typedef DWORD DROPEFFECT; +class COleDataObject; // forward reference (see afxole.h) + +class CView : public CWnd +{ + DECLARE_DYNAMIC(CView) + +// Constructors +protected: + CView(); + +// Attributes +public: + CDocument* GetDocument() const; + +// Operations +public: + // for standard printing setup (override OnPreparePrinting) + BOOL DoPreparePrinting(CPrintInfo* pInfo); + +// Overridables +public: + virtual BOOL IsSelected(const CObject* pDocItem) const; // support for OLE + + // OLE scrolling support (used for drag/drop as well) + virtual BOOL OnScroll(UINT nScrollCode, UINT nPos, BOOL bDoScroll = TRUE); + virtual BOOL OnScrollBy(CSize sizeScroll, BOOL bDoScroll = TRUE); + + // OLE drag/drop support + virtual DROPEFFECT OnDragEnter(COleDataObject* pDataObject, + DWORD dwKeyState, CPoint point); + virtual DROPEFFECT OnDragOver(COleDataObject* pDataObject, + DWORD dwKeyState, CPoint point); + virtual void OnDragLeave(); + virtual BOOL OnDrop(COleDataObject* pDataObject, + DROPEFFECT dropEffect, CPoint point); + virtual DROPEFFECT OnDropEx(COleDataObject* pDataObject, + DROPEFFECT dropDefault, DROPEFFECT dropList, CPoint point); + virtual DROPEFFECT OnDragScroll(DWORD dwKeyState, CPoint point); + + virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL); + + virtual void OnInitialUpdate(); // called first time after construct + +protected: + // Activation + virtual void OnActivateView(BOOL bActivate, CView* pActivateView, + CView* pDeactiveView); + virtual void OnActivateFrame(UINT nState, CFrameWnd* pFrameWnd); + + // General drawing/updating + virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint); + virtual void OnDraw(CDC* pDC) = 0; + + // Printing support + virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); + // must override to enable printing and print preview + + virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); + virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo); + virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); + + // Advanced: end print preview mode, move to point + virtual void OnEndPrintPreview(CDC* pDC, CPrintInfo* pInfo, POINT point, + CPreviewView* pView); + +// Implementation +public: + virtual ~CView(); +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; + virtual void AssertValid() const; +#endif //_DEBUG + + // Advanced: for implementing custom print preview + BOOL DoPrintPreview(UINT nIDResource, CView* pPrintView, + CRuntimeClass* pPreviewViewClass, CPrintPreviewState* pState); + + virtual void CalcWindowRect(LPRECT lpClientRect, + UINT nAdjustType = adjustBorder); + virtual CScrollBar* GetScrollBarCtrl(int nBar) const; + static CSplitterWnd* PASCAL GetParentSplitter( + const CWnd* pWnd, BOOL bAnyState); + +protected: + CDocument* m_pDocument; + + virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, + AFX_CMDHANDLERINFO* pHandlerInfo); + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + virtual void PostNcDestroy(); + + // friend classes that call protected CView overridables + friend class CDocument; + friend class CDocTemplate; + friend class CPreviewView; + friend class CFrameWnd; + friend class CMDIFrameWnd; + friend class CMDIChildWnd; + friend class CSplitterWnd; + friend class COleServerDoc; + friend class CDocObjectServer; + + //{{AFX_MSG(CView) + afx_msg int OnCreate(LPCREATESTRUCT lpcs); + afx_msg void OnDestroy(); + afx_msg void OnPaint(); + afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message); + // commands + afx_msg void OnUpdateSplitCmd(CCmdUI* pCmdUI); + afx_msg BOOL OnSplitCmd(UINT nID); + afx_msg void OnUpdateNextPaneMenu(CCmdUI* pCmdUI); + afx_msg BOOL OnNextPaneCmd(UINT nID); + + // not mapped commands - must be mapped in derived class + afx_msg void OnFilePrint(); + afx_msg void OnFilePrintPreview(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// class CCtrlView allows almost any control to be a view + +class CCtrlView : public CView +{ + DECLARE_DYNCREATE(CCtrlView) + +public: + CCtrlView(LPCTSTR lpszClass, DWORD dwStyle); + +// Attributes +protected: + CString m_strClass; + DWORD m_dwDefaultStyle; + +// Overrides + virtual void OnDraw(CDC*); + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + +// Implementation +public: +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; + virtual void AssertValid() const; +#endif //_DEBUG + +protected: + afx_msg void OnPaint(); + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// class CScrollView supports simple scrolling and scaling + +class CScrollView : public CView +{ + DECLARE_DYNAMIC(CScrollView) + +// Constructors +protected: + CScrollView(); + +public: + static AFX_DATA const SIZE sizeDefault; + // used to specify default calculated page and line sizes + + // in logical units - call one of the following Set routines + void SetScaleToFitSize(SIZE sizeTotal); + void SetScrollSizes(int nMapMode, SIZE sizeTotal, + const SIZE& sizePage = sizeDefault, + const SIZE& sizeLine = sizeDefault); + +// Attributes +public: + CPoint GetScrollPosition() const; // upper corner of scrolling + CSize GetTotalSize() const; // logical size + + // for device units + CPoint GetDeviceScrollPosition() const; + void GetDeviceScrollSizes(int& nMapMode, SIZE& sizeTotal, + SIZE& sizePage, SIZE& sizeLine) const; + +// Operations +public: + void ScrollToPosition(POINT pt); // set upper left position + void FillOutsideRect(CDC* pDC, CBrush* pBrush); + void ResizeParentToFit(BOOL bShrinkOnly = TRUE); + +// Implementation +protected: + int m_nMapMode; + CSize m_totalLog; // total size in logical units (no rounding) + CSize m_totalDev; // total size in device units + CSize m_pageDev; // per page scroll size in device units + CSize m_lineDev; // per line scroll size in device units + + BOOL m_bCenter; // Center output if larger than total size + BOOL m_bInsideUpdate; // internal state for OnSize callback + void CenterOnPoint(CPoint ptCenter); + void ScrollToDevicePosition(POINT ptDev); // explicit scrolling no checking + +protected: + virtual void OnDraw(CDC* pDC) = 0; // pass on pure virtual + + void UpdateBars(); // adjust scrollbars etc + BOOL GetTrueClientSize(CSize& size, CSize& sizeSb); + // size with no bars + void GetScrollBarSizes(CSize& sizeSb); + void GetScrollBarState(CSize sizeClient, CSize& needSb, + CSize& sizeRange, CPoint& ptMove, BOOL bInsideClient); + +public: + virtual ~CScrollView(); +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; + virtual void AssertValid() const; +#endif //_DEBUG + virtual void CalcWindowRect(LPRECT lpClientRect, + UINT nAdjustType = adjustBorder); + virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL); + + // scrolling implementation support for OLE + virtual BOOL OnScroll(UINT nScrollCode, UINT nPos, BOOL bDoScroll = TRUE); + virtual BOOL OnScrollBy(CSize sizeScroll, BOOL bDoScroll = TRUE); + + //{{AFX_MSG(CScrollView) + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); + afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// CWinThread + +typedef UINT (AFX_CDECL *AFX_THREADPROC)(LPVOID); + +class COleMessageFilter; // forward reference (see afxole.h) + +class CWinThread : public CCmdTarget +{ + DECLARE_DYNAMIC(CWinThread) + +public: +// Constructors + CWinThread(); + BOOL CreateThread(DWORD dwCreateFlags = 0, UINT nStackSize = 0, + LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL); + +// Attributes + CWnd* m_pMainWnd; // main window (usually same AfxGetApp()->m_pMainWnd) + CWnd* m_pActiveWnd; // active main window (may not be m_pMainWnd) + BOOL m_bAutoDelete; // enables 'delete this' after thread termination + + // only valid while running + HANDLE m_hThread; // this thread's HANDLE + operator HANDLE() const; + DWORD m_nThreadID; // this thread's ID + + int GetThreadPriority(); + BOOL SetThreadPriority(int nPriority); + +// Operations + DWORD SuspendThread(); + DWORD ResumeThread(); + BOOL PostThreadMessage(UINT message, WPARAM wParam, LPARAM lParam); + +// Overridables + // thread initialization + virtual BOOL InitInstance(); + + // running and idle processing + virtual int Run(); + virtual BOOL PreTranslateMessage(MSG* pMsg); + virtual BOOL PumpMessage(); // low level message pump + virtual BOOL OnIdle(LONG lCount); // return TRUE if more idle processing + virtual BOOL IsIdleMessage(MSG* pMsg); // checks for special messages + + // thread termination + virtual int ExitInstance(); // default will 'delete this' + + // Advanced: exception handling + virtual LRESULT ProcessWndProcException(CException* e, const MSG* pMsg); + + // Advanced: handling messages sent to message filter hook + virtual BOOL ProcessMessageFilter(int code, LPMSG lpMsg); + + // Advanced: virtual access to m_pMainWnd + virtual CWnd* GetMainWnd(); + +// Implementation +public: + virtual ~CWinThread(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; + int m_nDisablePumpCount; // Diagnostic trap to detect illegal re-entrancy +#endif + void CommonConstruct(); + virtual void Delete(); + // 'delete this' only if m_bAutoDelete == TRUE + + // message pump for Run + MSG m_msgCur; // current message + +public: + // constructor used by implementation of AfxBeginThread + CWinThread(AFX_THREADPROC pfnThreadProc, LPVOID pParam); + + // valid after construction + LPVOID m_pThreadParams; // generic parameters passed to starting function + AFX_THREADPROC m_pfnThreadProc; + + // set after OLE is initialized + void (AFXAPI* m_lpfnOleTermOrFreeLib)(BOOL, BOOL); + COleMessageFilter* m_pMessageFilter; + +protected: + CPoint m_ptCursorLast; // last mouse position + UINT m_nMsgLast; // last mouse message + void DispatchThreadMessage(MSG* msg); // helper +}; + +// global helpers for threads + +CWinThread* AFXAPI AfxBeginThread(AFX_THREADPROC pfnThreadProc, LPVOID pParam, + int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, + DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL); +CWinThread* AFXAPI AfxBeginThread(CRuntimeClass* pThreadClass, + int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, + DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL); + +CWinThread* AFXAPI AfxGetThread(); +void AFXAPI AfxEndThread(UINT nExitCode, BOOL bDelete = TRUE); + +void AFXAPI AfxInitThread(); +void AFXAPI AfxTermThread(HINSTANCE hInstTerm = NULL); + +///////////////////////////////////////////////////////////////////////////// +// Global functions for access to the one and only CWinApp + +#define afxCurrentWinApp AfxGetModuleState()->m_pCurrentWinApp +#define afxCurrentInstanceHandle AfxGetModuleState()->m_hCurrentInstanceHandle +#define afxCurrentResourceHandle AfxGetModuleState()->m_hCurrentResourceHandle +#define afxCurrentAppName AfxGetModuleState()->m_lpszCurrentAppName +#define afxContextIsDLL AfxGetModuleState()->m_bDLL +#define afxRegisteredClasses AfxGetModuleState()->m_fRegisteredClasses + +#ifndef _AFX_NO_OCC_SUPPORT +#define afxOccManager AfxGetModuleState()->m_pOccManager +#endif + +// Advanced initialization: for overriding default WinMain +BOOL AFXAPI AfxWinInit(HINSTANCE, HINSTANCE, LPTSTR, int); +void AFXAPI AfxWinTerm(); + +// Global Windows state data helper functions (inlines) +CWinApp* AFXAPI AfxGetApp(); +CWnd* AFXAPI AfxGetMainWnd(); +HINSTANCE AFXAPI AfxGetInstanceHandle(); +HINSTANCE AFXAPI AfxGetResourceHandle(); +void AFXAPI AfxSetResourceHandle(HINSTANCE hInstResource); +LPCTSTR AFXAPI AfxGetAppName(); + +// Use instead of PostQuitMessage in OLE server applications +void AFXAPI AfxPostQuitMessage(int nExitCode); + +// Use AfxFindResourceHandle to find resource in chain of extension DLLs +#ifndef _AFXDLL +#define AfxFindResourceHandle(lpszResource, lpszType) AfxGetResourceHandle() +#else +HINSTANCE AFXAPI AfxFindResourceHandle(LPCTSTR lpszName, LPCTSTR lpszType); +#endif + +class CRecentFileList; // forward reference (see afxpriv.h) + +// access to message filter in CWinApp +COleMessageFilter* AFXAPI AfxOleGetMessageFilter(); + +///////////////////////////////////////////////////////////////////////////// +// CCommandLineInfo + +class CCommandLineInfo : public CObject +{ +public: + // Sets default values + CCommandLineInfo(); + + //REVIEW: Keep char* version on UNICODE for source-code backwards + //compatibility + virtual void ParseParam(const TCHAR* pszParam, BOOL bFlag, BOOL bLast); +#ifdef UNICODE + virtual void ParseParam(const char* pszParam, BOOL bFlag, BOOL bLast); +#endif + + BOOL m_bShowSplash; + BOOL m_bRunEmbedded; + BOOL m_bRunAutomated; + enum { FileNew, FileOpen, FilePrint, FilePrintTo, FileDDE, + AppUnregister, FileNothing = -1 } m_nShellCommand; + + // not valid for FileNew + CString m_strFileName; + + // valid only for FilePrintTo + CString m_strPrinterName; + CString m_strDriverName; + CString m_strPortName; + + ~CCommandLineInfo(); +// Implementation +protected: + void ParseParamFlag(const char* pszParam); + void ParseParamNotFlag(const TCHAR* pszParam); +#ifdef UNICODE + void ParseParamNotFlag(const char* pszParam); +#endif + void ParseLast(BOOL bLast); +}; + +///////////////////////////////////////////////////////////////////////////// +// CDocManager + +class CDocManager : public CObject +{ + DECLARE_DYNAMIC(CDocManager) +public: + +// Constructor + CDocManager(); + + //Document functions + virtual void AddDocTemplate(CDocTemplate* pTemplate); + virtual POSITION GetFirstDocTemplatePosition() const; + virtual CDocTemplate* GetNextDocTemplate(POSITION& pos) const; + virtual void RegisterShellFileTypes(BOOL bCompat); + virtual CDocument* OpenDocumentFile(LPCTSTR lpszFileName); // open named file + virtual BOOL SaveAllModified(); // save before exit + virtual void CloseAllDocuments(BOOL bEndSession); // close documents before exiting + virtual int GetOpenDocumentCount(); + + // helper for standard commdlg dialogs + virtual BOOL DoPromptFileName(CString& fileName, UINT nIDSTitle, + DWORD lFlags, BOOL bOpenFileDialog, CDocTemplate* pTemplate); + +//Commands +#ifndef _MAC + // Advanced: process async DDE request + virtual BOOL OnDDECommand(LPTSTR lpszCommand); +#endif + virtual void OnFileNew(); + virtual void OnFileOpen(); + +// Implementation +protected: + CPtrList m_templateList; + +public: + static CPtrList* pStaticList; // for static CDocTemplate objects + static BOOL bStaticInit; // TRUE during static initialization + static CDocManager* pStaticDocManager; // for static CDocTemplate objects + +public: + virtual ~CDocManager(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif +}; + +///////////////////////////////////////////////////////////////////////////// +// CWinApp - the root of all Windows applications + +#define _AFX_MRU_COUNT 4 // default support for 4 entries in file MRU +#define _AFX_MRU_MAX_COUNT 16 // currently allocated id range supports 16 + +class CWinApp : public CWinThread +{ + DECLARE_DYNAMIC(CWinApp) +public: + +// Constructor + CWinApp(LPCTSTR lpszAppName = NULL); // app name defaults to EXE name + +// Attributes + // Startup args (do not change) + HINSTANCE m_hInstance; + HINSTANCE m_hPrevInstance; + LPTSTR m_lpCmdLine; + int m_nCmdShow; + + // Running args (can be changed in InitInstance) + LPCTSTR m_pszAppName; // human readable name + // (from constructor or AFX_IDS_APP_TITLE) + LPCTSTR m_pszRegistryKey; // used for registry entries + CDocManager* m_pDocManager; + + // Support for Shift+F1 help mode. + BOOL m_bHelpMode; // are we in Shift+F1 mode? + +#ifdef _MAC + // Support for AppleEvent interaction levels + enum SaveOption + { + saveYes, // always save modified documents + saveNo, // never save modified documents + saveAsk // ask user whether to save modified documents + }; + SaveOption m_nSaveOption; +#endif + +public: // set in constructor to override default + LPCTSTR m_pszExeName; // executable name (no spaces) + LPCTSTR m_pszHelpFilePath; // default based on module path + LPCTSTR m_pszProfileName; // default based on app name + +// Initialization Operations - should be done in InitInstance +protected: + void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT); // load MRU file list and last preview state + void EnableShellOpen(); + + void SetDialogBkColor(COLORREF clrCtlBk = RGB(192, 192, 192), + COLORREF clrCtlText = RGB(0, 0, 0)); + // set dialog box and message box background color + + void SetRegistryKey(LPCTSTR lpszRegistryKey); + void SetRegistryKey(UINT nIDRegistryKey); + // enables app settings in registry instead of INI files + // (registry key is usually a "company name") + +#ifdef _MAC + friend void CFrameWnd::OnSysColorChange(); + friend void CDialog::OnSysColorChange(); +#endif + + BOOL Enable3dControls(); // use CTL3D32.DLL for 3D controls in dialogs +#ifndef _AFXDLL + BOOL Enable3dControlsStatic(); // statically link CTL3D.LIB instead +#endif + + void RegisterShellFileTypes(BOOL bCompat=FALSE); + // call after all doc templates are registered + void RegisterShellFileTypesCompat(); + // for backwards compatibility + +// Helper Operations - usually done in InitInstance +public: + // Cursors + HCURSOR LoadCursor(LPCTSTR lpszResourceName) const; + HCURSOR LoadCursor(UINT nIDResource) const; + HCURSOR LoadStandardCursor(LPCTSTR lpszCursorName) const; // for IDC_ values + HCURSOR LoadOEMCursor(UINT nIDCursor) const; // for OCR_ values + + // Icons + HICON LoadIcon(LPCTSTR lpszResourceName) const; + HICON LoadIcon(UINT nIDResource) const; + HICON LoadStandardIcon(LPCTSTR lpszIconName) const; // for IDI_ values + HICON LoadOEMIcon(UINT nIDIcon) const; // for OIC_ values + + // Profile settings (to the app specific .INI file, or registry) + UINT GetProfileInt(LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault); + BOOL WriteProfileInt(LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue); + CString GetProfileString(LPCTSTR lpszSection, LPCTSTR lpszEntry, + LPCTSTR lpszDefault = NULL); + BOOL WriteProfileString(LPCTSTR lpszSection, LPCTSTR lpszEntry, + LPCTSTR lpszValue); + BOOL GetProfileBinary(LPCTSTR lpszSection, LPCTSTR lpszEntry, + LPBYTE* ppData, UINT* pBytes); + BOOL WriteProfileBinary(LPCTSTR lpszSection, LPCTSTR lpszEntry, + LPBYTE pData, UINT nBytes); + +#ifndef _MAC + BOOL Unregister(); + LONG DelRegTree(HKEY hParentKey, const CString& strKeyName); +#endif + +// Running Operations - to be done on a running application + // Dealing with document templates + void AddDocTemplate(CDocTemplate* pTemplate); + POSITION GetFirstDocTemplatePosition() const; + CDocTemplate* GetNextDocTemplate(POSITION& pos) const; + + // Dealing with files + virtual CDocument* OpenDocumentFile(LPCTSTR lpszFileName); // open named file + virtual void AddToRecentFileList(LPCTSTR lpszPathName); // add to MRU + + // Printer DC Setup routine, 'struct tagPD' is a PRINTDLG structure + void SelectPrinter(HANDLE hDevNames, HANDLE hDevMode, + BOOL bFreeOld = TRUE); + BOOL CreatePrinterDC(CDC& dc); +#ifndef _UNICODE + BOOL GetPrinterDeviceDefaults(struct tagPDA* pPrintDlg); +#else + BOOL GetPrinterDeviceDefaults(struct tagPDW* pPrintDlg); +#endif + + // Command line parsing + BOOL RunEmbedded(); + BOOL RunAutomated(); + void ParseCommandLine(CCommandLineInfo& rCmdInfo); + BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo); + +// Overridables + // hooks for your initialization code + virtual BOOL InitApplication(); +#ifdef _MAC + virtual BOOL CreateInitialDocument(); +#endif + + // exiting + virtual BOOL SaveAllModified(); // save before exit + void HideApplication(); + void CloseAllDocuments(BOOL bEndSession); // close documents before exiting + + // Advanced: to override message boxes and other hooks + virtual int DoMessageBox(LPCTSTR lpszPrompt, UINT nType, UINT nIDPrompt); + virtual void DoWaitCursor(int nCode); // 0 => restore, 1=> begin, -1=> end + +#ifndef _MAC + // Advanced: process async DDE request + virtual BOOL OnDDECommand(LPTSTR lpszCommand); +#endif + + // Advanced: Help support + virtual void WinHelp(DWORD dwData, UINT nCmd = HELP_CONTEXT); + +// Command Handlers +protected: + // map to the following for file new/open + afx_msg void OnFileNew(); + afx_msg void OnFileOpen(); + + // map to the following to enable print setup + afx_msg void OnFilePrintSetup(); + + // map to the following to enable help + afx_msg void OnContextHelp(); // shift-F1 + afx_msg void OnHelp(); // F1 (uses current context) + afx_msg void OnHelpIndex(); // ID_HELP_INDEX + afx_msg void OnHelpFinder(); // ID_HELP_FINDER, ID_DEFAULT_HELP + afx_msg void OnHelpUsing(); // ID_HELP_USING + +// Implementation +protected: + HGLOBAL m_hDevMode; // printer Dev Mode + HGLOBAL m_hDevNames; // printer Device Names + DWORD m_dwPromptContext; // help context override for message box + + int m_nWaitCursorCount; // for wait cursor (>0 => waiting) + HCURSOR m_hcurWaitCursorRestore; // old cursor to restore after wait cursor + + CRecentFileList* m_pRecentFileList; + + void UpdatePrinterSelection(BOOL bForceDefaults); + void SaveStdProfileSettings(); // save options to .INI file + +public: // public for implementation access + CCommandLineInfo* m_pCmdInfo; + + ATOM m_atomApp, m_atomSystemTopic; // for DDE open + UINT m_nNumPreviewPages; // number of default printed pages + + size_t m_nSafetyPoolSize; // ideal size + + void (AFXAPI* m_lpfnDaoTerm)(); + + void DevModeChange(LPTSTR lpDeviceName); + void SetCurrentHandles(); + int GetOpenDocumentCount(); + + // helpers for standard commdlg dialogs + BOOL DoPromptFileName(CString& fileName, UINT nIDSTitle, + DWORD lFlags, BOOL bOpenFileDialog, CDocTemplate* pTemplate); + int DoPrintDialog(CPrintDialog* pPD); + + void EnableModeless(BOOL bEnable); // to disable OLE in-place dialogs + + // overrides for implementation + virtual BOOL InitInstance(); + virtual int ExitInstance(); // return app exit code + virtual int Run(); + virtual BOOL OnIdle(LONG lCount); // return TRUE if more idle processing + virtual LRESULT ProcessWndProcException(CException* e, const MSG* pMsg); + +public: + virtual ~CWinApp(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +#ifndef _MAC + // helpers for registration + HKEY GetSectionKey(LPCTSTR lpszSection); + HKEY GetAppRegistryKey(); +#endif + +protected: + //{{AFX_MSG(CWinApp) + afx_msg void OnAppExit(); + afx_msg void OnUpdateRecentFileMenu(CCmdUI* pCmdUI); + afx_msg BOOL OnOpenRecentFile(UINT nID); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// class CWaitCursor + +class CWaitCursor +{ +// Construction/Destruction +public: + CWaitCursor(); + ~CWaitCursor(); + +// Operations +public: + void Restore(); +}; + +///////////////////////////////////////////////////////////////////////////// +// class CDocTemplate creates documents + +class CDocTemplate : public CCmdTarget +{ + DECLARE_DYNAMIC(CDocTemplate) + +// Constructors +protected: + CDocTemplate(UINT nIDResource, CRuntimeClass* pDocClass, + CRuntimeClass* pFrameClass, CRuntimeClass* pViewClass); +public: + virtual void LoadTemplate(); + +// Attributes +public: + // setup for OLE containers + void SetContainerInfo(UINT nIDOleInPlaceContainer); + + // setup for OLE servers + void SetServerInfo(UINT nIDOleEmbedding, UINT nIDOleInPlaceServer = 0, + CRuntimeClass* pOleFrameClass = NULL, CRuntimeClass* pOleViewClass = NULL); + + // iterating over open documents + virtual POSITION GetFirstDocPosition() const = 0; + virtual CDocument* GetNextDoc(POSITION& rPos) const = 0; + +// Operations +public: + virtual void AddDocument(CDocument* pDoc); // must override + virtual void RemoveDocument(CDocument* pDoc); // must override + + enum DocStringIndex + { + windowTitle, // default window title + docName, // user visible name for default document + fileNewName, // user visible name for FileNew + // for file based documents: +#ifndef _MAC + filterName, // user visible name for FileOpen + filterExt, // user visible extension for FileOpen +#else + filterWinName, // user visible name for FileOpen + filterWinExt, // user visible extension for FileOpen +#endif + // for file based documents with Shell open support: + regFileTypeId, // REGEDIT visible registered file type identifier + regFileTypeName, // Shell visible registered file type name + // for Macintosh file based documents: +#ifdef _MAC + filterExt, // Macintosh file type for FileOpen + filterName // user visible name for Macintosh FileOpen +#else + filterMacExt, // Macintosh file type for FileOpen + filterMacName // user visible name for Macintosh FileOpen +#endif + }; + virtual BOOL GetDocString(CString& rString, + enum DocStringIndex index) const; // get one of the info strings + CFrameWnd* CreateOleFrame(CWnd* pParentWnd, CDocument* pDoc, + BOOL bCreateView); + +// Overridables +public: + enum Confidence + { + noAttempt, + maybeAttemptForeign, + maybeAttemptNative, + yesAttemptForeign, + yesAttemptNative, + yesAlreadyOpen + }; +#ifndef _MAC + virtual Confidence MatchDocType(LPCTSTR lpszPathName, + CDocument*& rpDocMatch); +#else + virtual Confidence MatchDocType(LPCTSTR lpszFileName, + DWORD dwFileType, CDocument*& rpDocMatch); +#endif + virtual CDocument* CreateNewDocument(); + virtual CFrameWnd* CreateNewFrame(CDocument* pDoc, CFrameWnd* pOther); + virtual void InitialUpdateFrame(CFrameWnd* pFrame, CDocument* pDoc, + BOOL bMakeVisible = TRUE); + virtual BOOL SaveAllModified(); // for all documents + virtual void CloseAllDocuments(BOOL bEndSession); + virtual CDocument* OpenDocumentFile( + LPCTSTR lpszPathName, BOOL bMakeVisible = TRUE) = 0; + // open named file + // if lpszPathName == NULL => create new file with this type + virtual void SetDefaultTitle(CDocument* pDocument) = 0; + +// Implementation +public: + BOOL m_bAutoDelete; + virtual ~CDocTemplate(); + + // back pointer to OLE or other server (NULL if none or disabled) + CObject* m_pAttachedFactory; + + // menu & accelerator resources for in-place container + HMENU m_hMenuInPlace; + HACCEL m_hAccelInPlace; + + // menu & accelerator resource for server editing embedding + HMENU m_hMenuEmbedding; + HACCEL m_hAccelEmbedding; + + // menu & accelerator resource for server editing in-place + HMENU m_hMenuInPlaceServer; + HACCEL m_hAccelInPlaceServer; + +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; + virtual void AssertValid() const; +#endif + virtual void OnIdle(); // for all documents + +protected: + UINT m_nIDResource; // IDR_ for frame/menu/accel as well + UINT m_nIDServerResource; // IDR_ for OLE inplace frame/menu/accel + UINT m_nIDEmbeddingResource; // IDR_ for OLE open frame/menu/accel + UINT m_nIDContainerResource; // IDR_ for container frame/menu/accel + + CRuntimeClass* m_pDocClass; // class for creating new documents + CRuntimeClass* m_pFrameClass; // class for creating new frames + CRuntimeClass* m_pViewClass; // class for creating new views + CRuntimeClass* m_pOleFrameClass; // class for creating in-place frame + CRuntimeClass* m_pOleViewClass; // class for creating in-place view + + CString m_strDocStrings; // '\n' separated names + // The document names sub-strings are represented as _one_ string: + // windowTitle\ndocName\n ... (see DocStringIndex enum) +}; + +// SDI support (1 document only) +class CSingleDocTemplate : public CDocTemplate +{ + DECLARE_DYNAMIC(CSingleDocTemplate) + +// Constructors +public: + CSingleDocTemplate(UINT nIDResource, CRuntimeClass* pDocClass, + CRuntimeClass* pFrameClass, CRuntimeClass* pViewClass); + +// Implementation +public: + virtual ~CSingleDocTemplate(); + virtual void AddDocument(CDocument* pDoc); + virtual void RemoveDocument(CDocument* pDoc); + virtual POSITION GetFirstDocPosition() const; + virtual CDocument* GetNextDoc(POSITION& rPos) const; + virtual CDocument* OpenDocumentFile( + LPCTSTR lpszPathName, BOOL bMakeVisible = TRUE); + virtual void SetDefaultTitle(CDocument* pDocument); + +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; + virtual void AssertValid() const; +#endif //_DEBUG + +protected: // standard implementation + CDocument* m_pOnlyDoc; +}; + +// MDI support (zero or more documents) +class CMultiDocTemplate : public CDocTemplate +{ + DECLARE_DYNAMIC(CMultiDocTemplate) + +// Constructors +public: + CMultiDocTemplate(UINT nIDResource, CRuntimeClass* pDocClass, + CRuntimeClass* pFrameClass, CRuntimeClass* pViewClass); + +// Implementation +public: + // Menu and accel table for MDI Child windows of this type + HMENU m_hMenuShared; + HACCEL m_hAccelTable; + + virtual ~CMultiDocTemplate(); + virtual void LoadTemplate(); + virtual void AddDocument(CDocument* pDoc); + virtual void RemoveDocument(CDocument* pDoc); + virtual POSITION GetFirstDocPosition() const; + virtual CDocument* GetNextDoc(POSITION& rPos) const; + virtual CDocument* OpenDocumentFile( + LPCTSTR lpszPathName, BOOL bMakeVisible = TRUE); + virtual void SetDefaultTitle(CDocument* pDocument); + +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; + virtual void AssertValid() const; +#endif //_DEBUG + +protected: // standard implementation + CPtrList m_docList; // open documents of this type + UINT m_nUntitledCount; // start at 0, for "Document1" title +}; + +///////////////////////////////////////////////////////////////////////////// +// class CDocument is the main document data abstraction + +class CDocument : public CCmdTarget +{ + DECLARE_DYNAMIC(CDocument) + +public: +// Constructors + CDocument(); + +// Attributes +public: + const CString& GetTitle() const; + virtual void SetTitle(LPCTSTR lpszTitle); + const CString& GetPathName() const; + virtual void SetPathName(LPCTSTR lpszPathName, BOOL bAddToMRU = TRUE); + + CDocTemplate* GetDocTemplate() const; + virtual BOOL IsModified(); + virtual void SetModifiedFlag(BOOL bModified = TRUE); + +// Operations + void AddView(CView* pView); + void RemoveView(CView* pView); + virtual POSITION GetFirstViewPosition() const; + virtual CView* GetNextView(POSITION& rPosition) const; + + // Update Views (simple update - DAG only) + void UpdateAllViews(CView* pSender, LPARAM lHint = 0L, + CObject* pHint = NULL); + +// Overridables + // Special notifications + virtual void OnChangedViewList(); // after Add or Remove view + virtual void DeleteContents(); // delete doc items etc + + // File helpers + virtual BOOL OnNewDocument(); + virtual BOOL OnOpenDocument(LPCTSTR lpszPathName); + virtual BOOL OnSaveDocument(LPCTSTR lpszPathName); +#ifdef _MAC + virtual void RecordDataFileOwner(LPCTSTR lpszPathName, LPCTSTR lpszAppName); +#endif + virtual void OnCloseDocument(); + virtual void ReportSaveLoadException(LPCTSTR lpszPathName, + CException* e, BOOL bSaving, UINT nIDPDefault); + virtual CFile* GetFile(LPCTSTR lpszFileName, UINT nOpenFlags, + CFileException* pError); + virtual void ReleaseFile(CFile* pFile, BOOL bAbort); + + // advanced overridables, closing down frame/doc, etc. + virtual BOOL CanCloseFrame(CFrameWnd* pFrame); + virtual BOOL SaveModified(); // return TRUE if ok to continue + virtual void PreCloseFrame(CFrameWnd* pFrame); + +// Implementation +protected: + // default implementation + CString m_strTitle; + CString m_strPathName; + CDocTemplate* m_pDocTemplate; + CPtrList m_viewList; // list of views + BOOL m_bModified; // changed since last saved + +public: + BOOL m_bAutoDelete; // TRUE => delete document when no more views + BOOL m_bEmbedded; // TRUE => document is being created by OLE + +#ifdef _DEBUG + virtual void Dump(CDumpContext&) const; + virtual void AssertValid() const; +#endif //_DEBUG + virtual ~CDocument(); + + // implementation helpers + virtual BOOL DoSave(LPCTSTR lpszPathName, BOOL bReplace = TRUE); + virtual BOOL DoFileSave(); + virtual void UpdateFrameCounts(); + void DisconnectViews(); + void SendInitialUpdate(); + + // overridables for implementation + virtual HMENU GetDefaultMenu(); // get menu depending on state + virtual HACCEL GetDefaultAccelerator(); + virtual void OnIdle(); + virtual void OnFinalRelease(); + + virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, + AFX_CMDHANDLERINFO* pHandlerInfo); + friend class CDocTemplate; + +protected: + // file menu commands + //{{AFX_MSG(CDocument) + afx_msg void OnFileClose(); + afx_msg void OnFileSave(); + afx_msg void OnFileSaveAs(); + //}}AFX_MSG + // mail enabling + afx_msg void OnFileSendMail(); + afx_msg void OnUpdateFileSendMail(CCmdUI* pCmdUI); + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// +// Extra diagnostic tracing options + +#ifdef _DEBUG + +extern AFX_DATA UINT afxTraceFlags; +enum AfxTraceFlags +{ + traceMultiApp = 1, // multi-app debugging + traceAppMsg = 2, // main message pump trace (includes DDE) + traceWinMsg = 4, // Windows message tracing + traceCmdRouting = 8, // Windows command routing trace (set 4+8 for control notifications) + traceOle = 16, // special OLE callback trace + traceDatabase = 32, // special database trace + traceInternet = 64 // special Internet client trace +}; + +#endif // _DEBUG + +////////////////////////////////////////////////////////////////////////////// +// MessageBox helpers + +void AFXAPI AfxFormatString1(CString& rString, UINT nIDS, LPCTSTR lpsz1); +void AFXAPI AfxFormatString2(CString& rString, UINT nIDS, + LPCTSTR lpsz1, LPCTSTR lpsz2); +int AFXAPI AfxMessageBox(LPCTSTR lpszText, UINT nType = MB_OK, + UINT nIDHelp = 0); +int AFXAPI AfxMessageBox(UINT nIDPrompt, UINT nType = MB_OK, + UINT nIDHelp = (UINT)-1); + +// Implementation string helpers +void AFXAPI AfxFormatStrings(CString& rString, UINT nIDS, + LPCTSTR const* rglpsz, int nString); +void AFXAPI AfxFormatStrings(CString& rString, LPCTSTR lpszFormat, + LPCTSTR const* rglpsz, int nString); +BOOL AFXAPI AfxExtractSubString(CString& rString, LPCTSTR lpszFullString, + int iSubString, TCHAR chSep = '\n'); + +///////////////////////////////////////////////////////////////////////////// +// Special target variant APIs + +#ifdef _AFXDLL + #include <afxdll_.h> +#endif + +// Windows Version compatibility (obsolete) +#define AfxEnableWin30Compatibility() +#define AfxEnableWin31Compatibility() +#define AfxEnableWin40Compatibility() + +// Temporary map management (locks temp map on current thread) +void AFXAPI AfxLockTempMaps(); +BOOL AFXAPI AfxUnlockTempMaps(BOOL bDeleteTemps = TRUE); + +///////////////////////////////////////////////////////////////////////////// +// Special OLE related functions (see OLELOCK.CPP) + +void AFXAPI AfxOleOnReleaseAllObjects(); +BOOL AFXAPI AfxOleCanExitApp(); +void AFXAPI AfxOleLockApp(); +void AFXAPI AfxOleUnlockApp(); + +void AFXAPI AfxOleSetUserCtrl(BOOL bUserCtrl); +BOOL AFXAPI AfxOleGetUserCtrl(); + +#ifndef _AFX_NO_OCC_SUPPORT +BOOL AFXAPI AfxOleLockControl(REFCLSID clsid); +BOOL AFXAPI AfxOleUnlockControl(REFCLSID clsid); +BOOL AFXAPI AfxOleLockControl(LPCTSTR lpszProgID); +BOOL AFXAPI AfxOleUnlockControl(LPCTSTR lpszProgID); +void AFXAPI AfxOleUnlockAllControls(); +#endif + +///////////////////////////////////////////////////////////////////////////// +// Use version 1.0 of the RichEdit control + +#define _RICHEDIT_VER 0x0100 + +///////////////////////////////////////////////////////////////////////////// +// Inline function declarations + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#ifdef _AFX_ENABLE_INLINES +#define _AFXWIN_INLINE inline +#include <afxwin1.inl> +#include <afxwin2.inl> +#endif + +#undef AFX_DATA +#define AFX_DATA + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif +#ifndef _AFX_FULLTYPEINFO +#pragma component(mintypeinfo, off) +#endif + +///////////////////////////////////////////////////////////////////////////// + +#else //RC_INVOKED +#include <afxres.h> // standard resource IDs +#endif //RC_INVOKED + +#endif //__AFXWIN_H__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/afxwin1.inl b/public/sdk/inc/mfc42/afxwin1.inl new file mode 100644 index 000000000..f6f3cd87d --- /dev/null +++ b/public/sdk/inc/mfc42/afxwin1.inl @@ -0,0 +1,1091 @@ +// 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. + +// Inlines for AFXWIN.H (part 1) + +#ifdef _AFXWIN_INLINE + +// Global helper functions +_AFXWIN_INLINE CWinApp* AFXAPI AfxGetApp() + { return afxCurrentWinApp; } +_AFXWIN_INLINE HINSTANCE AFXAPI AfxGetInstanceHandle() + { ASSERT(afxCurrentInstanceHandle != NULL); + return afxCurrentInstanceHandle; } +_AFXWIN_INLINE HINSTANCE AFXAPI AfxGetResourceHandle() + { ASSERT(afxCurrentResourceHandle != NULL); + return afxCurrentResourceHandle; } +_AFXWIN_INLINE void AFXAPI AfxSetResourceHandle(HINSTANCE hInstResource) + { ASSERT(hInstResource != NULL); afxCurrentResourceHandle = hInstResource; } +_AFXWIN_INLINE LPCTSTR AFXAPI AfxGetAppName() + { ASSERT(afxCurrentAppName != NULL); return afxCurrentAppName; } +_AFXWIN_INLINE COleMessageFilter* AFXAPI AfxOleGetMessageFilter() + { ASSERT_VALID(AfxGetThread()); return AfxGetThread()->m_pMessageFilter; } +_AFXWIN_INLINE CWnd* AFXAPI AfxGetMainWnd() + { return AfxGetThread() != NULL ? AfxGetThread()->GetMainWnd() : NULL; } + +#ifdef _AFXDLL +// AFX_MAINTAIN_STATE functions +_AFXWIN_INLINE AFX_MAINTAIN_STATE::AFX_MAINTAIN_STATE(AFX_MODULE_STATE* pNewState) + { m_pPrevModuleState = AfxSetModuleState(pNewState); } +#endif + +// CSize +_AFXWIN_INLINE CSize::CSize() + { /* random filled */ } +_AFXWIN_INLINE CSize::CSize(int initCX, int initCY) + { cx = initCX; cy = initCY; } +_AFXWIN_INLINE CSize::CSize(SIZE initSize) + { *(SIZE*)this = initSize; } +_AFXWIN_INLINE CSize::CSize(POINT initPt) + { *(POINT*)this = initPt; } +_AFXWIN_INLINE CSize::CSize(DWORD dwSize) + { + cx = (short)LOWORD(dwSize); + cy = (short)HIWORD(dwSize); + } +_AFXWIN_INLINE BOOL CSize::operator==(SIZE size) const + { return (cx == size.cx && cy == size.cy); } +_AFXWIN_INLINE BOOL CSize::operator!=(SIZE size) const + { return (cx != size.cx || cy != size.cy); } +_AFXWIN_INLINE void CSize::operator+=(SIZE size) + { cx += size.cx; cy += size.cy; } +_AFXWIN_INLINE void CSize::operator-=(SIZE size) + { cx -= size.cx; cy -= size.cy; } +_AFXWIN_INLINE CSize CSize::operator+(SIZE size) const + { return CSize(cx + size.cx, cy + size.cy); } +_AFXWIN_INLINE CSize CSize::operator-(SIZE size) const + { return CSize(cx - size.cx, cy - size.cy); } +_AFXWIN_INLINE CSize CSize::operator-() const + { return CSize(-cx, -cy); } +_AFXWIN_INLINE CPoint CSize::operator+(POINT point) const + { return CPoint(cx + point.x, cy + point.y); } +_AFXWIN_INLINE CPoint CSize::operator-(POINT point) const + { return CPoint(cx - point.x, cy - point.y); } +_AFXWIN_INLINE CRect CSize::operator+(const RECT* lpRect) const + { return CRect(lpRect) + *this; } +_AFXWIN_INLINE CRect CSize::operator-(const RECT* lpRect) const + { return CRect(lpRect) - *this; } + +// CPoint +_AFXWIN_INLINE CPoint::CPoint() + { /* random filled */ } +_AFXWIN_INLINE CPoint::CPoint(int initX, int initY) + { x = initX; y = initY; } +_AFXWIN_INLINE CPoint::CPoint(POINT initPt) + { *(POINT*)this = initPt; } +_AFXWIN_INLINE CPoint::CPoint(SIZE initSize) + { *(SIZE*)this = initSize; } +_AFXWIN_INLINE CPoint::CPoint(DWORD dwPoint) + { + x = (short)LOWORD(dwPoint); + y = (short)HIWORD(dwPoint); + } +_AFXWIN_INLINE void CPoint::Offset(int xOffset, int yOffset) + { x += xOffset; y += yOffset; } +_AFXWIN_INLINE void CPoint::Offset(POINT point) + { x += point.x; y += point.y; } +_AFXWIN_INLINE void CPoint::Offset(SIZE size) + { x += size.cx; y += size.cy; } +_AFXWIN_INLINE BOOL CPoint::operator==(POINT point) const + { return (x == point.x && y == point.y); } +_AFXWIN_INLINE BOOL CPoint::operator!=(POINT point) const + { return (x != point.x || y != point.y); } +_AFXWIN_INLINE void CPoint::operator+=(SIZE size) + { x += size.cx; y += size.cy; } +_AFXWIN_INLINE void CPoint::operator-=(SIZE size) + { x -= size.cx; y -= size.cy; } +_AFXWIN_INLINE void CPoint::operator+=(POINT point) + { x += point.x; y += point.y; } +_AFXWIN_INLINE void CPoint::operator-=(POINT point) + { x -= point.x; y -= point.y; } +_AFXWIN_INLINE CPoint CPoint::operator+(SIZE size) const + { return CPoint(x + size.cx, y + size.cy); } +_AFXWIN_INLINE CPoint CPoint::operator-(SIZE size) const + { return CPoint(x - size.cx, y - size.cy); } +_AFXWIN_INLINE CPoint CPoint::operator-() const + { return CPoint(-x, -y); } +_AFXWIN_INLINE CPoint CPoint::operator+(POINT point) const + { return CPoint(x + point.x, y + point.y); } +_AFXWIN_INLINE CSize CPoint::operator-(POINT point) const + { return CSize(x - point.x, y - point.y); } +_AFXWIN_INLINE CRect CPoint::operator+(const RECT* lpRect) const + { return CRect(lpRect) + *this; } +_AFXWIN_INLINE CRect CPoint::operator-(const RECT* lpRect) const + { return CRect(lpRect) - *this; } + +// CRect +_AFXWIN_INLINE CRect::CRect() + { /* random filled */ } +_AFXWIN_INLINE CRect::CRect(int l, int t, int r, int b) + { left = l; top = t; right = r; bottom = b; } +_AFXWIN_INLINE CRect::CRect(const RECT& srcRect) + { ::CopyRect(this, &srcRect); } +_AFXWIN_INLINE CRect::CRect(LPCRECT lpSrcRect) + { ::CopyRect(this, lpSrcRect); } +_AFXWIN_INLINE CRect::CRect(POINT point, SIZE size) + { right = (left = point.x) + size.cx; bottom = (top = point.y) + size.cy; } +_AFXWIN_INLINE CRect::CRect(POINT topLeft, POINT bottomRight) + { left = topLeft.x; top = topLeft.y; + right = bottomRight.x; bottom = bottomRight.y; } +_AFXWIN_INLINE int CRect::Width() const + { return right - left; } +_AFXWIN_INLINE int CRect::Height() const + { return bottom - top; } +_AFXWIN_INLINE CSize CRect::Size() const + { return CSize(right - left, bottom - top); } +_AFXWIN_INLINE CPoint& CRect::TopLeft() + { return *((CPoint*)this); } +_AFXWIN_INLINE CPoint& CRect::BottomRight() + { return *((CPoint*)this+1); } +_AFXWIN_INLINE const CPoint& CRect::TopLeft() const + { return *((CPoint*)this); } +_AFXWIN_INLINE const CPoint& CRect::BottomRight() const + { return *((CPoint*)this+1); } +_AFXWIN_INLINE CPoint CRect::CenterPoint() const + { return CPoint((left+right)/2, (top+bottom)/2); } +_AFXWIN_INLINE CRect::operator LPRECT() + { return this; } +_AFXWIN_INLINE CRect::operator LPCRECT() const + { return this; } +_AFXWIN_INLINE BOOL CRect::IsRectEmpty() const + { return ::IsRectEmpty(this); } +_AFXWIN_INLINE BOOL CRect::IsRectNull() const + { return (left == 0 && right == 0 && top == 0 && bottom == 0); } +_AFXWIN_INLINE BOOL CRect::PtInRect(POINT point) const + { return ::PtInRect(this, point); } +_AFXWIN_INLINE void CRect::SetRect(int x1, int y1, int x2, int y2) + { ::SetRect(this, x1, y1, x2, y2); } +_AFXWIN_INLINE void CRect::SetRect(POINT topLeft, POINT bottomRight) + { ::SetRect(this, topLeft.x, topLeft.y, bottomRight.x, bottomRight.y); } +_AFXWIN_INLINE void CRect::SetRectEmpty() + { ::SetRectEmpty(this); } +_AFXWIN_INLINE void CRect::CopyRect(LPCRECT lpSrcRect) + { ::CopyRect(this, lpSrcRect); } +_AFXWIN_INLINE BOOL CRect::EqualRect(LPCRECT lpRect) const + { return ::EqualRect(this, lpRect); } +_AFXWIN_INLINE void CRect::InflateRect(int x, int y) + { ::InflateRect(this, x, y); } +_AFXWIN_INLINE void CRect::InflateRect(SIZE size) + { ::InflateRect(this, size.cx, size.cy); } +_AFXWIN_INLINE void CRect::DeflateRect(int x, int y) + { ::InflateRect(this, -x, -y); } +_AFXWIN_INLINE void CRect::DeflateRect(SIZE size) + { ::InflateRect(this, -size.cx, -size.cy); } +_AFXWIN_INLINE void CRect::OffsetRect(int x, int y) + { ::OffsetRect(this, x, y); } +_AFXWIN_INLINE void CRect::OffsetRect(POINT point) + { ::OffsetRect(this, point.x, point.y); } +_AFXWIN_INLINE void CRect::OffsetRect(SIZE size) + { ::OffsetRect(this, size.cx, size.cy); } +_AFXWIN_INLINE BOOL CRect::IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2) + { return ::IntersectRect(this, lpRect1, lpRect2);} +_AFXWIN_INLINE BOOL CRect::UnionRect(LPCRECT lpRect1, LPCRECT lpRect2) + { return ::UnionRect(this, lpRect1, lpRect2); } +_AFXWIN_INLINE void CRect::operator=(const RECT& srcRect) + { ::CopyRect(this, &srcRect); } +_AFXWIN_INLINE BOOL CRect::operator==(const RECT& rect) const + { return ::EqualRect(this, &rect); } +_AFXWIN_INLINE BOOL CRect::operator!=(const RECT& rect) const + { return !::EqualRect(this, &rect); } +_AFXWIN_INLINE void CRect::operator+=(POINT point) + { ::OffsetRect(this, point.x, point.y); } +_AFXWIN_INLINE void CRect::operator+=(SIZE size) + { ::OffsetRect(this, size.cx, size.cy); } +_AFXWIN_INLINE void CRect::operator+=(LPCRECT lpRect) + { InflateRect(lpRect); } +_AFXWIN_INLINE void CRect::operator-=(POINT point) + { ::OffsetRect(this, -point.x, -point.y); } +_AFXWIN_INLINE void CRect::operator-=(SIZE size) + { ::OffsetRect(this, -size.cx, -size.cy); } +_AFXWIN_INLINE void CRect::operator-=(LPCRECT lpRect) + { DeflateRect(lpRect); } +_AFXWIN_INLINE void CRect::operator&=(const RECT& rect) + { ::IntersectRect(this, this, &rect); } +_AFXWIN_INLINE void CRect::operator|=(const RECT& rect) + { ::UnionRect(this, this, &rect); } +_AFXWIN_INLINE CRect CRect::operator+(POINT pt) const + { CRect rect(*this); ::OffsetRect(&rect, pt.x, pt.y); return rect; } +_AFXWIN_INLINE CRect CRect::operator-(POINT pt) const + { CRect rect(*this); ::OffsetRect(&rect, -pt.x, -pt.y); return rect; } +_AFXWIN_INLINE CRect CRect::operator+(SIZE size) const + { CRect rect(*this); ::OffsetRect(&rect, size.cx, size.cy); return rect; } +_AFXWIN_INLINE CRect CRect::operator-(SIZE size) const + { CRect rect(*this); ::OffsetRect(&rect, -size.cx, -size.cy); return rect; } +_AFXWIN_INLINE CRect CRect::operator+(LPCRECT lpRect) const + { CRect rect(this); rect.InflateRect(lpRect); return rect; } +_AFXWIN_INLINE CRect CRect::operator-(LPCRECT lpRect) const + { CRect rect(this); rect.DeflateRect(lpRect); return rect; } +_AFXWIN_INLINE CRect CRect::operator&(const RECT& rect2) const + { CRect rect; ::IntersectRect(&rect, this, &rect2); + return rect; } +_AFXWIN_INLINE CRect CRect::operator|(const RECT& rect2) const + { CRect rect; ::UnionRect(&rect, this, &rect2); + return rect; } +_AFXWIN_INLINE BOOL CRect::SubtractRect(LPCRECT lpRectSrc1, LPCRECT lpRectSrc2) + { return ::SubtractRect(this, lpRectSrc1, lpRectSrc2); } + +// CArchive output helpers +_AFXWIN_INLINE CArchive& AFXAPI operator<<(CArchive& ar, SIZE size) + { ar.Write(&size, sizeof(SIZE)); return ar; } +_AFXWIN_INLINE CArchive& AFXAPI operator<<(CArchive& ar, POINT point) + { ar.Write(&point, sizeof(POINT)); return ar; } +_AFXWIN_INLINE CArchive& AFXAPI operator<<(CArchive& ar, const RECT& rect) + { ar.Write(&rect, sizeof(RECT)); return ar; } +_AFXWIN_INLINE CArchive& AFXAPI operator>>(CArchive& ar, SIZE& size) + { ar.Read(&size, sizeof(SIZE)); return ar; } +_AFXWIN_INLINE CArchive& AFXAPI operator>>(CArchive& ar, POINT& point) + { ar.Read(&point, sizeof(POINT)); return ar; } +_AFXWIN_INLINE CArchive& AFXAPI operator>>(CArchive& ar, RECT& rect) + { ar.Read(&rect, sizeof(RECT)); return ar; } + +// exception support +_AFXWIN_INLINE CResourceException::CResourceException() + : CSimpleException() { } +_AFXWIN_INLINE CResourceException::CResourceException(BOOL bAutoDelete, UINT nResourceID) + : CSimpleException(bAutoDelete) { m_nResourceID = nResourceID; } +_AFXWIN_INLINE CResourceException::~CResourceException() + { } +_AFXWIN_INLINE CUserException::CUserException() + : CSimpleException() { } +_AFXWIN_INLINE CUserException::CUserException(BOOL bAutoDelete, UINT nResourceID) + : CSimpleException(bAutoDelete) { m_nResourceID = nResourceID; } +_AFXWIN_INLINE CUserException::~CUserException() + { } + +// CGdiObject +_AFXWIN_INLINE CGdiObject::operator HGDIOBJ() const + { return this == NULL ? NULL : m_hObject; } +_AFXWIN_INLINE HGDIOBJ CGdiObject::GetSafeHandle() const + { return this == NULL ? NULL : m_hObject; } +_AFXWIN_INLINE CGdiObject::CGdiObject() + { m_hObject = NULL; } +_AFXWIN_INLINE CGdiObject::~CGdiObject() + { DeleteObject(); } +_AFXWIN_INLINE int CGdiObject::GetObject(int nCount, LPVOID lpObject) const + { ASSERT(m_hObject != NULL); return ::GetObject(m_hObject, nCount, lpObject); } +_AFXWIN_INLINE BOOL CGdiObject::CreateStockObject(int nIndex) + { return (m_hObject = ::GetStockObject(nIndex)) != NULL; } +_AFXWIN_INLINE BOOL CGdiObject::UnrealizeObject() + { ASSERT(m_hObject != NULL); return ::UnrealizeObject(m_hObject); } +_AFXWIN_INLINE UINT CGdiObject::GetObjectType() const + { return (UINT)::GetObjectType(m_hObject); } + +// CPen +_AFXWIN_INLINE CPen::operator HPEN() const + { return (HPEN)(this == NULL ? NULL : m_hObject); } +_AFXWIN_INLINE CPen* PASCAL CPen::FromHandle(HPEN hPen) + { return (CPen*) CGdiObject::FromHandle(hPen); } +_AFXWIN_INLINE CPen::CPen() + { } +_AFXWIN_INLINE CPen::~CPen() + { } +_AFXWIN_INLINE BOOL CPen::CreatePen(int nPenStyle, int nWidth, COLORREF crColor) + { return Attach(::CreatePen(nPenStyle, nWidth, crColor)); } +_AFXWIN_INLINE BOOL CPen::CreatePenIndirect(LPLOGPEN lpLogPen) + { return Attach(::CreatePenIndirect(lpLogPen)); } +#ifndef _MAC +_AFXWIN_INLINE BOOL CPen::CreatePen(int nPenStyle, int nWidth, const LOGBRUSH* pLogBrush, + int nStyleCount, const DWORD* lpStyle) + { return Attach(::ExtCreatePen(nPenStyle, nWidth, pLogBrush, nStyleCount, + lpStyle)); } +_AFXWIN_INLINE int CPen::GetExtLogPen(EXTLOGPEN* pLogPen) + { ASSERT(m_hObject != NULL); + return ::GetObject(m_hObject, sizeof(EXTLOGPEN), pLogPen); } +#endif +_AFXWIN_INLINE int CPen::GetLogPen(LOGPEN* pLogPen) + { ASSERT(m_hObject != NULL); + return ::GetObject(m_hObject, sizeof(LOGPEN), pLogPen); } + +// CBrush +_AFXWIN_INLINE CBrush::operator HBRUSH() const + { return (HBRUSH)(this == NULL ? NULL : m_hObject); } +_AFXWIN_INLINE CBrush* PASCAL CBrush::FromHandle(HBRUSH hBrush) + { return (CBrush*) CGdiObject::FromHandle(hBrush); } +_AFXWIN_INLINE CBrush::CBrush() + { } +_AFXWIN_INLINE CBrush::~CBrush() + { } +_AFXWIN_INLINE BOOL CBrush::CreateSolidBrush(COLORREF crColor) + { return Attach(::CreateSolidBrush(crColor)); } +_AFXWIN_INLINE BOOL CBrush::CreateHatchBrush(int nIndex, COLORREF crColor) + { return Attach(::CreateHatchBrush(nIndex, crColor)); } +_AFXWIN_INLINE BOOL CBrush::CreateBrushIndirect(const LOGBRUSH* lpLogBrush) + { return Attach(::CreateBrushIndirect(lpLogBrush)); } +_AFXWIN_INLINE BOOL CBrush::CreatePatternBrush(CBitmap* pBitmap) + { return Attach(::CreatePatternBrush((HBITMAP)pBitmap->GetSafeHandle())); } +_AFXWIN_INLINE BOOL CBrush::CreateDIBPatternBrush(const void* lpPackedDIB, UINT nUsage) + { return Attach(::CreateDIBPatternBrushPt(lpPackedDIB, nUsage)); } +_AFXWIN_INLINE BOOL CBrush::CreateSysColorBrush(int nIndex) + { return Attach(::GetSysColorBrush(nIndex)); } +_AFXWIN_INLINE int CBrush::GetLogBrush(LOGBRUSH* pLogBrush) + { ASSERT(m_hObject != NULL); + return ::GetObject(m_hObject, sizeof(LOGBRUSH), pLogBrush); } + +// CFont +_AFXWIN_INLINE CFont::operator HFONT() const + { return (HFONT)(this == NULL ? NULL : m_hObject); } +_AFXWIN_INLINE CFont* PASCAL CFont::FromHandle(HFONT hFont) + { return (CFont*) CGdiObject::FromHandle(hFont); } +_AFXWIN_INLINE CFont::CFont() + { } +_AFXWIN_INLINE CFont::~CFont() + { } +_AFXWIN_INLINE BOOL CFont::CreateFontIndirect(const LOGFONT* lpLogFont) + { return Attach(::CreateFontIndirect(lpLogFont)); } +_AFXWIN_INLINE BOOL CFont::CreateFont(int nHeight, int nWidth, int nEscapement, + int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, + BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, + BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, + LPCTSTR lpszFacename) + { return Attach(::CreateFont(nHeight, nWidth, nEscapement, + nOrientation, nWeight, bItalic, bUnderline, cStrikeOut, + nCharSet, nOutPrecision, nClipPrecision, nQuality, + nPitchAndFamily, lpszFacename)); } +_AFXWIN_INLINE int CFont::GetLogFont(LOGFONT* pLogFont) + { ASSERT(m_hObject != NULL); + return ::GetObject(m_hObject, sizeof(LOGFONT), pLogFont); } + +// CBitmap +_AFXWIN_INLINE CBitmap::operator HBITMAP() const + { return (HBITMAP)(this == NULL ? NULL : m_hObject); } +_AFXWIN_INLINE CBitmap* PASCAL CBitmap::FromHandle(HBITMAP hBitmap) + { return (CBitmap*) CGdiObject::FromHandle(hBitmap); } +_AFXWIN_INLINE CBitmap::CBitmap() + { } +_AFXWIN_INLINE CBitmap::~CBitmap() + { } +_AFXWIN_INLINE BOOL CBitmap::CreateBitmap(int nWidth, int nHeight, UINT nPlanes, + UINT nBitcount, const void* lpBits) + { return Attach(::CreateBitmap(nWidth, nHeight, nPlanes, nBitcount, lpBits)); } +_AFXWIN_INLINE BOOL CBitmap::CreateBitmapIndirect(LPBITMAP lpBitmap) + { return Attach(::CreateBitmapIndirect(lpBitmap)); } + +_AFXWIN_INLINE DWORD CBitmap::SetBitmapBits(DWORD dwCount, const void* lpBits) + { return ::SetBitmapBits((HBITMAP)m_hObject, dwCount, lpBits); } +_AFXWIN_INLINE DWORD CBitmap::GetBitmapBits(DWORD dwCount, LPVOID lpBits) const + { return ::GetBitmapBits((HBITMAP)m_hObject, dwCount, lpBits); } +_AFXWIN_INLINE BOOL CBitmap::LoadBitmap(LPCTSTR lpszResourceName) + { return Attach(::LoadBitmap(AfxFindResourceHandle( + lpszResourceName, RT_BITMAP), lpszResourceName));} +_AFXWIN_INLINE BOOL CBitmap::LoadMappedBitmap(UINT nIDBitmap, UINT nFlags, + LPCOLORMAP lpColorMap, int nMapSize) + { return Attach(::CreateMappedBitmap(AfxFindResourceHandle( + MAKEINTRESOURCE(nIDBitmap), RT_BITMAP), nIDBitmap, (WORD)nFlags, + lpColorMap, nMapSize)); } +_AFXWIN_INLINE CSize CBitmap::SetBitmapDimension(int nWidth, int nHeight) + { + SIZE size; + VERIFY(::SetBitmapDimensionEx((HBITMAP)m_hObject, nWidth, nHeight, &size)); + return size; + } +_AFXWIN_INLINE CSize CBitmap::GetBitmapDimension() const + { + SIZE size; + VERIFY(::GetBitmapDimensionEx((HBITMAP)m_hObject, &size)); + return size; + } + +_AFXWIN_INLINE BOOL CBitmap::LoadBitmap(UINT nIDResource) + { return Attach(::LoadBitmap(AfxFindResourceHandle( + MAKEINTRESOURCE(nIDResource), RT_BITMAP), MAKEINTRESOURCE(nIDResource))); } +#ifndef _MAC +_AFXWIN_INLINE BOOL CBitmap::LoadOEMBitmap(UINT nIDBitmap) + { return Attach(::LoadBitmap(NULL, MAKEINTRESOURCE(nIDBitmap))); } +#endif +_AFXWIN_INLINE BOOL CBitmap::CreateCompatibleBitmap(CDC* pDC, int nWidth, int nHeight) + { return Attach(::CreateCompatibleBitmap(pDC->m_hDC, nWidth, nHeight)); } +_AFXWIN_INLINE BOOL CBitmap::CreateDiscardableBitmap(CDC* pDC, int nWidth, int nHeight) + { return Attach(::CreateDiscardableBitmap(pDC->m_hDC, nWidth, nHeight)); } +_AFXWIN_INLINE int CBitmap::GetBitmap(BITMAP* pBitMap) + { ASSERT(m_hObject != NULL); + return ::GetObject(m_hObject, sizeof(BITMAP), pBitMap); } + +// CPalette +_AFXWIN_INLINE CPalette::operator HPALETTE() const + { return (HPALETTE)(this == NULL ? NULL : m_hObject); } +_AFXWIN_INLINE CPalette* PASCAL CPalette::FromHandle(HPALETTE hPalette) + { return (CPalette*) CGdiObject::FromHandle(hPalette); } +_AFXWIN_INLINE CPalette::CPalette() + { } +_AFXWIN_INLINE CPalette::~CPalette() + { } +_AFXWIN_INLINE BOOL CPalette::CreatePalette(LPLOGPALETTE lpLogPalette) + { return Attach(::CreatePalette(lpLogPalette)); } +#ifndef _MAC +_AFXWIN_INLINE BOOL CPalette::CreateHalftonePalette(CDC* pDC) + { ASSERT(pDC != NULL && pDC->m_hDC != NULL); return Attach( + ::CreateHalftonePalette(pDC->m_hDC)); } +#endif +_AFXWIN_INLINE UINT CPalette::GetPaletteEntries(UINT nStartIndex, UINT nNumEntries, + LPPALETTEENTRY lpPaletteColors) const + { ASSERT(m_hObject != NULL); return ::GetPaletteEntries((HPALETTE)m_hObject, nStartIndex, + nNumEntries, lpPaletteColors); } +_AFXWIN_INLINE UINT CPalette::SetPaletteEntries(UINT nStartIndex, UINT nNumEntries, + LPPALETTEENTRY lpPaletteColors) + { ASSERT(m_hObject != NULL); return ::SetPaletteEntries((HPALETTE)m_hObject, nStartIndex, + nNumEntries, lpPaletteColors); } +#ifndef _MAC +_AFXWIN_INLINE void CPalette::AnimatePalette(UINT nStartIndex, UINT nNumEntries, + LPPALETTEENTRY lpPaletteColors) + { ASSERT(m_hObject != NULL); ::AnimatePalette((HPALETTE)m_hObject, nStartIndex, nNumEntries, + lpPaletteColors); } +#endif +_AFXWIN_INLINE UINT CPalette::GetNearestPaletteIndex(COLORREF crColor) const + { ASSERT(m_hObject != NULL); return ::GetNearestPaletteIndex((HPALETTE)m_hObject, crColor); } +_AFXWIN_INLINE BOOL CPalette::ResizePalette(UINT nNumEntries) + { ASSERT(m_hObject != NULL); return ::ResizePalette((HPALETTE)m_hObject, nNumEntries); } +_AFXWIN_INLINE int CPalette::GetEntryCount() + { ASSERT(m_hObject != NULL); WORD nEntries; + ::GetObject(m_hObject, sizeof(WORD), &nEntries); return (int)nEntries; } + +// CRgn +_AFXWIN_INLINE CRgn::operator HRGN() const + { return (HRGN)(this == NULL ? NULL : m_hObject); } +_AFXWIN_INLINE CRgn* PASCAL CRgn::FromHandle(HRGN hRgn) + { return (CRgn*) CGdiObject::FromHandle(hRgn); } +_AFXWIN_INLINE CRgn::CRgn() + { } +_AFXWIN_INLINE CRgn::~CRgn() + { } +_AFXWIN_INLINE BOOL CRgn::CreateRectRgn(int x1, int y1, int x2, int y2) + { return Attach(::CreateRectRgn(x1, y1, x2, y2)); } +_AFXWIN_INLINE BOOL CRgn::CreateRectRgnIndirect(LPCRECT lpRect) + { return Attach(::CreateRectRgnIndirect(lpRect)); } +_AFXWIN_INLINE BOOL CRgn::CreateEllipticRgn(int x1, int y1, int x2, int y2) + { return Attach(::CreateEllipticRgn(x1, y1, x2, y2)); } +_AFXWIN_INLINE BOOL CRgn::CreateEllipticRgnIndirect(LPCRECT lpRect) + { return Attach(::CreateEllipticRgnIndirect(lpRect)); } +_AFXWIN_INLINE BOOL CRgn::CreatePolygonRgn(LPPOINT lpPoints, int nCount, int nMode) + { return Attach(::CreatePolygonRgn(lpPoints, nCount, nMode)); } +#ifndef _MAC +_AFXWIN_INLINE BOOL CRgn::CreatePolyPolygonRgn(LPPOINT lpPoints, LPINT lpPolyCounts, int nCount, int nPolyFillMode) + { return Attach(::CreatePolyPolygonRgn(lpPoints, lpPolyCounts, nCount, nPolyFillMode)); } +#endif +_AFXWIN_INLINE BOOL CRgn::CreateRoundRectRgn(int x1, int y1, int x2, int y2, int x3, int y3) + { return Attach(::CreateRoundRectRgn(x1, y1, x2, y2, x3, y3)); } +#ifndef _MAC +_AFXWIN_INLINE BOOL CRgn::CreateFromPath(CDC* pDC) + { ASSERT(pDC != NULL); return Attach(::PathToRegion(pDC->m_hDC)); } +_AFXWIN_INLINE BOOL CRgn::CreateFromData(const XFORM* lpXForm, int nCount, const RGNDATA* pRgnData) + { return Attach(::ExtCreateRegion(lpXForm, nCount, pRgnData)); } +_AFXWIN_INLINE int CRgn::GetRegionData(LPRGNDATA lpRgnData, int nDataSize) const + { ASSERT(m_hObject != NULL); return (int)::GetRegionData((HRGN)m_hObject, nDataSize, lpRgnData); } +#endif +_AFXWIN_INLINE void CRgn::SetRectRgn(int x1, int y1, int x2, int y2) + { ASSERT(m_hObject != NULL); ::SetRectRgn((HRGN)m_hObject, x1, y1, x2, y2); } +_AFXWIN_INLINE void CRgn::SetRectRgn(LPCRECT lpRect) + { ASSERT(m_hObject != NULL); ::SetRectRgn((HRGN)m_hObject, lpRect->left, lpRect->top, + lpRect->right, lpRect->bottom); } +_AFXWIN_INLINE int CRgn::CombineRgn(CRgn* pRgn1, CRgn* pRgn2, int nCombineMode) + { ASSERT(m_hObject != NULL); return ::CombineRgn((HRGN)m_hObject, (HRGN)pRgn1->GetSafeHandle(), + (HRGN)pRgn2->GetSafeHandle(), nCombineMode); } +_AFXWIN_INLINE int CRgn::CopyRgn(CRgn* pRgnSrc) + { ASSERT(m_hObject != NULL); return ::CombineRgn((HRGN)m_hObject, (HRGN)pRgnSrc->GetSafeHandle(), NULL, RGN_COPY); } +_AFXWIN_INLINE BOOL CRgn::EqualRgn(CRgn* pRgn) const + { ASSERT(m_hObject != NULL); return ::EqualRgn((HRGN)m_hObject, (HRGN)pRgn->GetSafeHandle()); } +_AFXWIN_INLINE int CRgn::OffsetRgn(int x, int y) + { ASSERT(m_hObject != NULL); return ::OffsetRgn((HRGN)m_hObject, x, y); } +_AFXWIN_INLINE int CRgn::OffsetRgn(POINT point) + { ASSERT(m_hObject != NULL); return ::OffsetRgn((HRGN)m_hObject, point.x, point.y); } +_AFXWIN_INLINE int CRgn::GetRgnBox(LPRECT lpRect) const + { ASSERT(m_hObject != NULL); return ::GetRgnBox((HRGN)m_hObject, lpRect); } +_AFXWIN_INLINE BOOL CRgn::PtInRegion(int x, int y) const + { ASSERT(m_hObject != NULL); return ::PtInRegion((HRGN)m_hObject, x, y); } +_AFXWIN_INLINE BOOL CRgn::PtInRegion(POINT point) const + { ASSERT(m_hObject != NULL); return ::PtInRegion((HRGN)m_hObject, point.x, point.y); } +_AFXWIN_INLINE BOOL CRgn::RectInRegion(LPCRECT lpRect) const + { ASSERT(m_hObject != NULL); return ::RectInRegion((HRGN)m_hObject, lpRect); } + +// CDC +_AFXWIN_INLINE CDC::operator HDC() const + { return this == NULL ? NULL : m_hDC; } +_AFXWIN_INLINE HDC CDC::GetSafeHdc() const + { return this == NULL ? NULL : m_hDC; } +#ifndef _MAC +_AFXWIN_INLINE CWnd* CDC::GetWindow() const + { ASSERT(m_hDC != NULL); return CWnd::FromHandle(::WindowFromDC(m_hDC)); } +#endif +_AFXWIN_INLINE BOOL CDC::IsPrinting() const + { return m_bPrinting; } +_AFXWIN_INLINE BOOL CDC::CreateDC(LPCTSTR lpszDriverName, + LPCTSTR lpszDeviceName, LPCTSTR lpszOutput, const void* lpInitData) + { return Attach(::CreateDC(lpszDriverName, + lpszDeviceName, lpszOutput, (const DEVMODE*)lpInitData)); } +_AFXWIN_INLINE BOOL CDC::CreateIC(LPCTSTR lpszDriverName, + LPCTSTR lpszDeviceName, LPCTSTR lpszOutput, const void* lpInitData) + { return Attach(::CreateIC(lpszDriverName, + lpszDeviceName, lpszOutput, (const DEVMODE*) lpInitData)); } +_AFXWIN_INLINE BOOL CDC::CreateCompatibleDC(CDC* pDC) + { return Attach(::CreateCompatibleDC(pDC->GetSafeHdc())); } +_AFXWIN_INLINE int CDC::ExcludeUpdateRgn(CWnd* pWnd) + { ASSERT(m_hDC != NULL); return ::ExcludeUpdateRgn(m_hDC, pWnd->m_hWnd); } +_AFXWIN_INLINE int CDC::GetDeviceCaps(int nIndex) const + { ASSERT(m_hAttribDC != NULL); return ::GetDeviceCaps(m_hAttribDC, nIndex); } +_AFXWIN_INLINE CPoint CDC::GetBrushOrg() const + { + ASSERT(m_hDC != NULL); + POINT point; + VERIFY(::GetBrushOrgEx(m_hDC, &point)); + return point; + } +_AFXWIN_INLINE CPoint CDC::SetBrushOrg(int x, int y) + { + ASSERT(m_hDC != NULL); + POINT point; + VERIFY(::SetBrushOrgEx(m_hDC, x, y, &point)); + return point; + } +_AFXWIN_INLINE CPoint CDC::SetBrushOrg(POINT point) + { + ASSERT(m_hDC != NULL); + VERIFY(::SetBrushOrgEx(m_hDC, point.x, point.y, &point)); + return point; + } + +_AFXWIN_INLINE int CDC::EnumObjects(int nObjectType, + int (CALLBACK* lpfn)(LPVOID, LPARAM), LPARAM lpData) + { ASSERT(m_hAttribDC != NULL); return ::EnumObjects(m_hAttribDC, nObjectType, (GOBJENUMPROC)lpfn, lpData); } + +_AFXWIN_INLINE CBitmap* CDC::SelectObject(CBitmap* pBitmap) + { ASSERT(m_hDC != NULL); return (CBitmap*) SelectGdiObject(m_hDC, pBitmap->GetSafeHandle()); } +_AFXWIN_INLINE CGdiObject* CDC::SelectObject(CGdiObject* pObject) + { ASSERT(m_hDC != NULL); return SelectGdiObject(m_hDC, pObject->GetSafeHandle()); } +_AFXWIN_INLINE HGDIOBJ CDC::SelectObject(HGDIOBJ hObject) // Safe for NULL handles + { ASSERT(m_hDC == m_hAttribDC); // ASSERT a simple CDC object + return (hObject != NULL) ? ::SelectObject(m_hDC, hObject) : NULL; } +_AFXWIN_INLINE COLORREF CDC::GetNearestColor(COLORREF crColor) const + { ASSERT(m_hAttribDC != NULL); return ::GetNearestColor(m_hAttribDC, crColor); } +_AFXWIN_INLINE UINT CDC::RealizePalette() + { ASSERT(m_hDC != NULL); return ::RealizePalette(m_hDC); } +_AFXWIN_INLINE void CDC::UpdateColors() + { ASSERT(m_hDC != NULL); ::UpdateColors(m_hDC); } +_AFXWIN_INLINE COLORREF CDC::GetBkColor() const + { ASSERT(m_hAttribDC != NULL); return ::GetBkColor(m_hAttribDC); } +_AFXWIN_INLINE int CDC::GetBkMode() const + { ASSERT(m_hAttribDC != NULL); return ::GetBkMode(m_hAttribDC); } +_AFXWIN_INLINE int CDC::GetPolyFillMode() const + { ASSERT(m_hAttribDC != NULL); return ::GetPolyFillMode(m_hAttribDC); } +_AFXWIN_INLINE int CDC::GetROP2() const + { ASSERT(m_hAttribDC != NULL); return ::GetROP2(m_hAttribDC); } +_AFXWIN_INLINE int CDC::GetStretchBltMode() const + { ASSERT(m_hAttribDC != NULL); return ::GetStretchBltMode(m_hAttribDC); } +_AFXWIN_INLINE COLORREF CDC::GetTextColor() const + { ASSERT(m_hAttribDC != NULL); return ::GetTextColor(m_hAttribDC); } +_AFXWIN_INLINE int CDC::GetMapMode() const + { ASSERT(m_hAttribDC != NULL); return ::GetMapMode(m_hAttribDC); } + +_AFXWIN_INLINE CPoint CDC::GetViewportOrg() const + { + ASSERT(m_hAttribDC != NULL); + POINT point; + VERIFY(::GetViewportOrgEx(m_hAttribDC, &point)); + return point; + } +_AFXWIN_INLINE CSize CDC::GetViewportExt() const + { + ASSERT(m_hAttribDC != NULL); + SIZE size; + VERIFY(::GetViewportExtEx(m_hAttribDC, &size)); + return size; + } +_AFXWIN_INLINE CPoint CDC::GetWindowOrg() const + { + ASSERT(m_hAttribDC != NULL); + POINT point; + VERIFY(::GetWindowOrgEx(m_hAttribDC, &point)); + return point; + } +_AFXWIN_INLINE CSize CDC::GetWindowExt() const + { + ASSERT(m_hAttribDC != NULL); + SIZE size; + VERIFY(::GetWindowExtEx(m_hAttribDC, &size)); + return size; + } + +// non-virtual helpers calling virtual mapping functions +_AFXWIN_INLINE CPoint CDC::SetViewportOrg(POINT point) + { ASSERT(m_hDC != NULL); return SetViewportOrg(point.x, point.y); } +_AFXWIN_INLINE CSize CDC::SetViewportExt(SIZE size) + { ASSERT(m_hDC != NULL); return SetViewportExt(size.cx, size.cy); } +_AFXWIN_INLINE CPoint CDC::SetWindowOrg(POINT point) + { ASSERT(m_hDC != NULL); return SetWindowOrg(point.x, point.y); } +_AFXWIN_INLINE CSize CDC::SetWindowExt(SIZE size) + { ASSERT(m_hDC != NULL); return SetWindowExt(size.cx, size.cy); } + +_AFXWIN_INLINE void CDC::DPtoLP(LPPOINT lpPoints, int nCount) const + { ASSERT(m_hAttribDC != NULL); VERIFY(::DPtoLP(m_hAttribDC, lpPoints, nCount)); } +_AFXWIN_INLINE void CDC::DPtoLP(LPRECT lpRect) const + { ASSERT(m_hAttribDC != NULL); VERIFY(::DPtoLP(m_hAttribDC, (LPPOINT)lpRect, 2)); } +_AFXWIN_INLINE void CDC::LPtoDP(LPPOINT lpPoints, int nCount) const + { ASSERT(m_hAttribDC != NULL); VERIFY(::LPtoDP(m_hAttribDC, lpPoints, nCount)); } +_AFXWIN_INLINE void CDC::LPtoDP(LPRECT lpRect) const + { ASSERT(m_hAttribDC != NULL); VERIFY(::LPtoDP(m_hAttribDC, (LPPOINT)lpRect, 2)); } + +_AFXWIN_INLINE BOOL CDC::FillRgn(CRgn* pRgn, CBrush* pBrush) + { ASSERT(m_hDC != NULL); return ::FillRgn(m_hDC, (HRGN)pRgn->GetSafeHandle(), (HBRUSH)pBrush->GetSafeHandle()); } +_AFXWIN_INLINE BOOL CDC::FrameRgn(CRgn* pRgn, CBrush* pBrush, int nWidth, int nHeight) + { ASSERT(m_hDC != NULL); return ::FrameRgn(m_hDC, (HRGN)pRgn->GetSafeHandle(), (HBRUSH)pBrush->GetSafeHandle(), + nWidth, nHeight); } +_AFXWIN_INLINE BOOL CDC::InvertRgn(CRgn* pRgn) + { ASSERT(m_hDC != NULL); return ::InvertRgn(m_hDC, (HRGN)pRgn->GetSafeHandle()); } +_AFXWIN_INLINE BOOL CDC::PaintRgn(CRgn* pRgn) + { ASSERT(m_hDC != NULL); return ::PaintRgn(m_hDC, (HRGN)pRgn->GetSafeHandle()); } +_AFXWIN_INLINE BOOL CDC::PtVisible(int x, int y) const + { ASSERT(m_hDC != NULL); return ::PtVisible(m_hDC, x, y); } +_AFXWIN_INLINE BOOL CDC::PtVisible(POINT point) const + { ASSERT(m_hDC != NULL); return PtVisible(point.x, point.y); } // call virtual +_AFXWIN_INLINE BOOL CDC::RectVisible(LPCRECT lpRect) const + { ASSERT(m_hDC != NULL); return ::RectVisible(m_hDC, lpRect); } +_AFXWIN_INLINE CPoint CDC::GetCurrentPosition() const + { + ASSERT(m_hAttribDC != NULL); + POINT point; + VERIFY(::GetCurrentPositionEx(m_hAttribDC, &point)); + return point; + } + +_AFXWIN_INLINE CPoint CDC::MoveTo(POINT point) + { ASSERT(m_hDC != NULL); return MoveTo(point.x, point.y); } +_AFXWIN_INLINE BOOL CDC::LineTo(POINT point) + { ASSERT(m_hDC != NULL); return LineTo(point.x, point.y); } +_AFXWIN_INLINE BOOL CDC::Arc(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) + { ASSERT(m_hDC != NULL); return ::Arc(m_hDC, x1, y1, x2, y2, x3, y3, x4, y4); } +_AFXWIN_INLINE BOOL CDC::Arc(LPCRECT lpRect, POINT ptStart, POINT ptEnd) + { ASSERT(m_hDC != NULL); return ::Arc(m_hDC, lpRect->left, lpRect->top, + lpRect->right, lpRect->bottom, ptStart.x, ptStart.y, + ptEnd.x, ptEnd.y); } +_AFXWIN_INLINE BOOL CDC::Polyline(LPPOINT lpPoints, int nCount) + { ASSERT(m_hDC != NULL); return ::Polyline(m_hDC, lpPoints, nCount); } +_AFXWIN_INLINE void CDC::FillRect(LPCRECT lpRect, CBrush* pBrush) + { ASSERT(m_hDC != NULL); ::FillRect(m_hDC, lpRect, (HBRUSH)pBrush->GetSafeHandle()); } +_AFXWIN_INLINE void CDC::FrameRect(LPCRECT lpRect, CBrush* pBrush) + { ASSERT(m_hDC != NULL); ::FrameRect(m_hDC, lpRect, (HBRUSH)pBrush->GetSafeHandle()); } +_AFXWIN_INLINE void CDC::InvertRect(LPCRECT lpRect) + { ASSERT(m_hDC != NULL); ::InvertRect(m_hDC, lpRect); } +_AFXWIN_INLINE BOOL CDC::DrawIcon(int x, int y, HICON hIcon) + { ASSERT(m_hDC != NULL); return ::DrawIcon(m_hDC, x, y, hIcon); } +_AFXWIN_INLINE BOOL CDC::DrawIcon(POINT point, HICON hIcon) + { ASSERT(m_hDC != NULL); return ::DrawIcon(m_hDC, point.x, point.y, hIcon); } +#ifndef _MAC +#if (WINVER >= 0x400) +_AFXWIN_INLINE BOOL CDC::DrawState(CPoint pt, CSize size, HBITMAP hBitmap, UINT nFlags, HBRUSH hBrush) + { ASSERT(m_hDC != NULL); return ::DrawState(m_hDC, hBrush, + NULL, (LPARAM)hBitmap, 0, pt.x, pt.y, size.cx, size.cy, nFlags|DST_BITMAP); } +_AFXWIN_INLINE BOOL CDC::DrawState(CPoint pt, CSize size, CBitmap* pBitmap, UINT nFlags, CBrush* pBrush) + { ASSERT(m_hDC != NULL); return ::DrawState(m_hDC, (HBRUSH)pBrush->GetSafeHandle(), + NULL, (LPARAM)pBitmap->GetSafeHandle(), 0, pt.x, pt.y, size.cx, size.cy, nFlags|DST_BITMAP); } +_AFXWIN_INLINE BOOL CDC::DrawState(CPoint pt, CSize size, HICON hIcon, UINT nFlags, HBRUSH hBrush) + { ASSERT(m_hDC != NULL); return ::DrawState(m_hDC, hBrush, NULL, + (LPARAM)hIcon, 0, pt.x, pt.y, size.cx, size.cy, nFlags|DST_ICON); } +_AFXWIN_INLINE BOOL CDC::DrawState(CPoint pt, CSize size, HICON hIcon, UINT nFlags, CBrush* pBrush) + { ASSERT(m_hDC != NULL); return ::DrawState(m_hDC, (HBRUSH)pBrush->GetSafeHandle(), NULL, + (LPARAM)hIcon, 0, pt.x, pt.y, size.cx, size.cy, nFlags|DST_ICON); } +_AFXWIN_INLINE BOOL CDC::DrawState(CPoint pt, CSize size, LPCTSTR lpszText, UINT nFlags, BOOL bPrefixText, int nTextLen, HBRUSH hBrush) + { ASSERT(m_hDC != NULL); return ::DrawState(m_hDC, hBrush, + NULL, (LPARAM)lpszText, (WPARAM)nTextLen, pt.x, pt.y, size.cx, size.cy, nFlags|(bPrefixText ? DST_PREFIXTEXT : DST_TEXT)); } +_AFXWIN_INLINE BOOL CDC::DrawState(CPoint pt, CSize size, LPCTSTR lpszText, UINT nFlags, BOOL bPrefixText, int nTextLen, CBrush* pBrush) + { ASSERT(m_hDC != NULL); return ::DrawState(m_hDC, (HBRUSH)pBrush->GetSafeHandle(), + NULL, (LPARAM)lpszText, (WPARAM)nTextLen, pt.x, pt.y, size.cx, size.cy, nFlags|(bPrefixText ? DST_PREFIXTEXT : DST_TEXT)); } +_AFXWIN_INLINE BOOL CDC::DrawState(CPoint pt, CSize size, DRAWSTATEPROC lpDrawProc, LPARAM lData, UINT nFlags, HBRUSH hBrush) + { ASSERT(m_hDC != NULL); return ::DrawState(m_hDC, hBrush, + lpDrawProc, lData, 0, pt.x, pt.y, size.cx, size.cy, nFlags|DST_COMPLEX); } +_AFXWIN_INLINE BOOL CDC::DrawState(CPoint pt, CSize size, DRAWSTATEPROC lpDrawProc, LPARAM lData, UINT nFlags, CBrush* pBrush) + { ASSERT(m_hDC != NULL); return ::DrawState(m_hDC, (HBRUSH)pBrush->GetSafeHandle(), + lpDrawProc, lData, 0, pt.x, pt.y, size.cx, size.cy, nFlags|DST_COMPLEX); } +_AFXWIN_INLINE BOOL CDC::DrawEdge(LPRECT lpRect, UINT nEdge, UINT nFlags) + { ASSERT(m_hDC != NULL); return ::DrawEdge(m_hDC, lpRect, nEdge, nFlags); } +_AFXWIN_INLINE BOOL CDC::DrawFrameControl(LPRECT lpRect, UINT nType, UINT nState) + { ASSERT(m_hDC != NULL); return ::DrawFrameControl(m_hDC, lpRect, nType, nState); } +#endif + +_AFXWIN_INLINE BOOL CDC::Chord(int x1, int y1, int x2, int y2, int x3, int y3, + int x4, int y4) + { ASSERT(m_hDC != NULL); return ::Chord(m_hDC, x1, y1, x2, y2, x3, y3, x4, y4); } +_AFXWIN_INLINE BOOL CDC::Chord(LPCRECT lpRect, POINT ptStart, POINT ptEnd) + { ASSERT(m_hDC != NULL); return ::Chord(m_hDC, lpRect->left, lpRect->top, + lpRect->right, lpRect->bottom, ptStart.x, ptStart.y, + ptEnd.x, ptEnd.y); } +#endif +_AFXWIN_INLINE void CDC::DrawFocusRect(LPCRECT lpRect) + { ASSERT(m_hDC != NULL); ::DrawFocusRect(m_hDC, lpRect); } +_AFXWIN_INLINE BOOL CDC::Ellipse(int x1, int y1, int x2, int y2) + { ASSERT(m_hDC != NULL); return ::Ellipse(m_hDC, x1, y1, x2, y2); } +_AFXWIN_INLINE BOOL CDC::Ellipse(LPCRECT lpRect) + { ASSERT(m_hDC != NULL); return ::Ellipse(m_hDC, lpRect->left, lpRect->top, + lpRect->right, lpRect->bottom); } +_AFXWIN_INLINE BOOL CDC::Pie(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) + { ASSERT(m_hDC != NULL); return ::Pie(m_hDC, x1, y1, x2, y2, x3, y3, x4, y4); } +_AFXWIN_INLINE BOOL CDC::Pie(LPCRECT lpRect, POINT ptStart, POINT ptEnd) + { ASSERT(m_hDC != NULL); return ::Pie(m_hDC, lpRect->left, lpRect->top, + lpRect->right, lpRect->bottom, ptStart.x, ptStart.y, + ptEnd.x, ptEnd.y); } +_AFXWIN_INLINE BOOL CDC::Polygon(LPPOINT lpPoints, int nCount) + { ASSERT(m_hDC != NULL); return ::Polygon(m_hDC, lpPoints, nCount); } +#ifndef _MAC +_AFXWIN_INLINE BOOL CDC::PolyPolygon(LPPOINT lpPoints, LPINT lpPolyCounts, int nCount) + { ASSERT(m_hDC != NULL); return ::PolyPolygon(m_hDC, lpPoints, lpPolyCounts, nCount); } +#endif +_AFXWIN_INLINE BOOL CDC::Rectangle(int x1, int y1, int x2, int y2) + { ASSERT(m_hDC != NULL); return ::Rectangle(m_hDC, x1, y1, x2, y2); } +_AFXWIN_INLINE BOOL CDC::Rectangle(LPCRECT lpRect) + { ASSERT(m_hDC != NULL); return ::Rectangle(m_hDC, lpRect->left, lpRect->top, + lpRect->right, lpRect->bottom); } +_AFXWIN_INLINE BOOL CDC::RoundRect(int x1, int y1, int x2, int y2, int x3, int y3) + { ASSERT(m_hDC != NULL); return ::RoundRect(m_hDC, x1, y1, x2, y2, x3, y3); } +_AFXWIN_INLINE BOOL CDC::RoundRect(LPCRECT lpRect, POINT point) + { ASSERT(m_hDC != NULL); return ::RoundRect(m_hDC, lpRect->left, lpRect->top, + lpRect->right, lpRect->bottom, point.x, point.y); } +_AFXWIN_INLINE BOOL CDC::PatBlt(int x, int y, int nWidth, int nHeight, DWORD dwRop) + { ASSERT(m_hDC != NULL); return ::PatBlt(m_hDC, x, y, nWidth, nHeight, dwRop); } +_AFXWIN_INLINE BOOL CDC::BitBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC, + int xSrc, int ySrc, DWORD dwRop) + { ASSERT(m_hDC != NULL); return ::BitBlt(m_hDC, x, y, nWidth, nHeight, + pSrcDC->GetSafeHdc(), xSrc, ySrc, dwRop); } +_AFXWIN_INLINE BOOL CDC::StretchBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC, + int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop) + { ASSERT(m_hDC != NULL); return ::StretchBlt(m_hDC, x, y, nWidth, nHeight, + pSrcDC->GetSafeHdc(), xSrc, ySrc, nSrcWidth, nSrcHeight, + dwRop); } +_AFXWIN_INLINE COLORREF CDC::GetPixel(int x, int y) const + { ASSERT(m_hDC != NULL); return ::GetPixel(m_hDC, x, y); } +_AFXWIN_INLINE COLORREF CDC::GetPixel(POINT point) const + { ASSERT(m_hDC != NULL); return ::GetPixel(m_hDC, point.x, point.y); } +_AFXWIN_INLINE COLORREF CDC::SetPixel(int x, int y, COLORREF crColor) + { ASSERT(m_hDC != NULL); return ::SetPixel(m_hDC, x, y, crColor); } +_AFXWIN_INLINE COLORREF CDC::SetPixel(POINT point, COLORREF crColor) + { ASSERT(m_hDC != NULL); return ::SetPixel(m_hDC, point.x, point.y, crColor); } +#ifndef _MAC +_AFXWIN_INLINE BOOL CDC::FloodFill(int x, int y, COLORREF crColor) + { ASSERT(m_hDC != NULL); return ::FloodFill(m_hDC, x, y, crColor); } +_AFXWIN_INLINE BOOL CDC::ExtFloodFill(int x, int y, COLORREF crColor, UINT nFillType) + { ASSERT(m_hDC != NULL); return ::ExtFloodFill(m_hDC, x, y, crColor, nFillType); } +#endif +_AFXWIN_INLINE BOOL CDC::TextOut(int x, int y, LPCTSTR lpszString, int nCount) + { ASSERT(m_hDC != NULL); return ::TextOut(m_hDC, x, y, lpszString, nCount); } +_AFXWIN_INLINE BOOL CDC::TextOut(int x, int y, const CString& str) + { ASSERT(m_hDC != NULL); return TextOut(x, y, (LPCTSTR)str, str.GetLength()); } // call virtual +_AFXWIN_INLINE BOOL CDC::ExtTextOut(int x, int y, UINT nOptions, LPCRECT lpRect, + LPCTSTR lpszString, UINT nCount, LPINT lpDxWidths) + { ASSERT(m_hDC != NULL); return ::ExtTextOut(m_hDC, x, y, nOptions, lpRect, + lpszString, nCount, lpDxWidths); } +_AFXWIN_INLINE BOOL CDC::ExtTextOut(int x, int y, UINT nOptions, LPCRECT lpRect, + const CString& str, LPINT lpDxWidths) + { ASSERT(m_hDC != NULL); return ::ExtTextOut(m_hDC, x, y, nOptions, lpRect, + str, str.GetLength(), lpDxWidths); } +_AFXWIN_INLINE CSize CDC::TabbedTextOut(int x, int y, LPCTSTR lpszString, int nCount, + int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin) + { ASSERT(m_hDC != NULL); return ::TabbedTextOut(m_hDC, x, y, lpszString, nCount, + nTabPositions, lpnTabStopPositions, nTabOrigin); } +_AFXWIN_INLINE CSize CDC::TabbedTextOut(int x, int y, const CString& str, + int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin) + { ASSERT(m_hDC != NULL); return ::TabbedTextOut(m_hDC, x, y, str, str.GetLength(), + nTabPositions, lpnTabStopPositions, nTabOrigin); } +_AFXWIN_INLINE int CDC::DrawText(LPCTSTR lpszString, int nCount, LPRECT lpRect, + UINT nFormat) + { ASSERT(m_hDC != NULL); + return ::DrawText(m_hDC, lpszString, nCount, lpRect, nFormat); } +_AFXWIN_INLINE int CDC::DrawText(const CString& str, LPRECT lpRect, UINT nFormat) + { ASSERT(m_hDC != NULL); + return DrawText((LPCTSTR)str, str.GetLength(), lpRect, nFormat); } +_AFXWIN_INLINE CSize CDC::GetTextExtent(LPCTSTR lpszString, int nCount) const + { + ASSERT(m_hAttribDC != NULL); + SIZE size; + VERIFY(::GetTextExtentPoint(m_hAttribDC, lpszString, nCount, &size)); + return size; + } +_AFXWIN_INLINE CSize CDC::GetTextExtent(const CString& str) const + { + ASSERT(m_hAttribDC != NULL); + SIZE size; + VERIFY(::GetTextExtentPoint(m_hAttribDC, str, str.GetLength(), &size)); + return size; + } + +_AFXWIN_INLINE CSize CDC::GetOutputTextExtent(LPCTSTR lpszString, int nCount) const + { + ASSERT(m_hDC != NULL); + SIZE size; + VERIFY(::GetTextExtentPoint(m_hDC, lpszString, nCount, &size)); + return size; + } +_AFXWIN_INLINE CSize CDC::GetOutputTextExtent(const CString& str) const + { + ASSERT(m_hDC != NULL); + SIZE size; + VERIFY(::GetTextExtentPoint(m_hDC, str, str.GetLength(), &size)); + return size; + } + +_AFXWIN_INLINE CSize CDC::GetTabbedTextExtent(LPCTSTR lpszString, int nCount, + int nTabPositions, LPINT lpnTabStopPositions) const + { ASSERT(m_hAttribDC != NULL); return ::GetTabbedTextExtent(m_hAttribDC, lpszString, nCount, + nTabPositions, lpnTabStopPositions); } +_AFXWIN_INLINE CSize CDC::GetTabbedTextExtent(const CString& str, + int nTabPositions, LPINT lpnTabStopPositions) const + { ASSERT(m_hAttribDC != NULL); return ::GetTabbedTextExtent(m_hAttribDC, + str, str.GetLength(), nTabPositions, lpnTabStopPositions); } +_AFXWIN_INLINE CSize CDC::GetOutputTabbedTextExtent(LPCTSTR lpszString, int nCount, + int nTabPositions, LPINT lpnTabStopPositions) const + { ASSERT(m_hDC != NULL); return ::GetTabbedTextExtent(m_hDC, lpszString, nCount, + nTabPositions, lpnTabStopPositions); } +_AFXWIN_INLINE CSize CDC::GetOutputTabbedTextExtent(const CString& str, + int nTabPositions, LPINT lpnTabStopPositions) const + { ASSERT(m_hDC != NULL); return ::GetTabbedTextExtent(m_hDC, + str, str.GetLength(), nTabPositions, lpnTabStopPositions); } +_AFXWIN_INLINE BOOL CDC::GrayString(CBrush* pBrush, + BOOL (CALLBACK* lpfnOutput)(HDC, LPARAM, int), + LPARAM lpData, int nCount, + int x, int y, int nWidth, int nHeight) + { ASSERT(m_hDC != NULL); return ::GrayString(m_hDC, (HBRUSH)pBrush->GetSafeHandle(), + (GRAYSTRINGPROC)lpfnOutput, lpData, nCount, x, y, nWidth, nHeight); } +_AFXWIN_INLINE UINT CDC::GetTextAlign() const + { ASSERT(m_hAttribDC != NULL); return ::GetTextAlign(m_hAttribDC); } +_AFXWIN_INLINE int CDC::GetTextFace(int nCount, LPTSTR lpszFacename) const + { ASSERT(m_hAttribDC != NULL); return ::GetTextFace(m_hAttribDC, nCount, lpszFacename); } +_AFXWIN_INLINE int CDC::GetTextFace(CString& rString) const + { ASSERT(m_hAttribDC != NULL); int nResult = ::GetTextFace(m_hAttribDC, + 256, rString.GetBuffer(256)); rString.ReleaseBuffer(); + return nResult; } +_AFXWIN_INLINE BOOL CDC::GetTextMetrics(LPTEXTMETRIC lpMetrics) const + { ASSERT(m_hAttribDC != NULL); return ::GetTextMetrics(m_hAttribDC, lpMetrics); } +_AFXWIN_INLINE BOOL CDC::GetOutputTextMetrics(LPTEXTMETRIC lpMetrics) const + { ASSERT(m_hDC != NULL); return ::GetTextMetrics(m_hDC, lpMetrics); } +_AFXWIN_INLINE int CDC::GetTextCharacterExtra() const + { ASSERT(m_hAttribDC != NULL); return ::GetTextCharacterExtra(m_hAttribDC); } +_AFXWIN_INLINE BOOL CDC::GetCharWidth(UINT nFirstChar, UINT nLastChar, LPINT lpBuffer) const + { ASSERT(m_hAttribDC != NULL); return ::GetCharWidth(m_hAttribDC, nFirstChar, nLastChar, lpBuffer); } +_AFXWIN_INLINE BOOL CDC::GetOutputCharWidth(UINT nFirstChar, UINT nLastChar, LPINT lpBuffer) const + { ASSERT(m_hDC != NULL); return ::GetCharWidth(m_hDC, nFirstChar, nLastChar, lpBuffer); } +_AFXWIN_INLINE CSize CDC::GetAspectRatioFilter() const + { + ASSERT(m_hAttribDC != NULL); + SIZE size; + VERIFY(::GetAspectRatioFilterEx(m_hAttribDC, &size)); + return size; + } +_AFXWIN_INLINE BOOL CDC::ScrollDC(int dx, int dy, + LPCRECT lpRectScroll, LPCRECT lpRectClip, + CRgn* pRgnUpdate, LPRECT lpRectUpdate) + { ASSERT(m_hDC != NULL); return ::ScrollDC(m_hDC, dx, dy, lpRectScroll, + lpRectClip, (HRGN)pRgnUpdate->GetSafeHandle(), lpRectUpdate); } + +// Printer Escape Functions +_AFXWIN_INLINE int CDC::Escape(int nEscape, int nCount, LPCSTR lpszInData, LPVOID lpOutData) + { ASSERT(m_hDC != NULL); return ::Escape(m_hDC, nEscape, nCount, lpszInData, lpOutData);} + +// CDC 3.1 Specific functions +#ifndef _MAC +_AFXWIN_INLINE UINT CDC::SetBoundsRect(LPCRECT lpRectBounds, UINT flags) + { ASSERT(m_hDC != NULL); return ::SetBoundsRect(m_hDC, lpRectBounds, flags); } +_AFXWIN_INLINE UINT CDC::GetBoundsRect(LPRECT lpRectBounds, UINT flags) + { ASSERT(m_hAttribDC != NULL); return ::GetBoundsRect(m_hAttribDC, lpRectBounds, flags); } +#endif +_AFXWIN_INLINE BOOL CDC::ResetDC(const DEVMODE* lpDevMode) + { ASSERT(m_hAttribDC != NULL); return ::ResetDC(m_hAttribDC, lpDevMode) != NULL; } +_AFXWIN_INLINE UINT CDC::GetOutlineTextMetrics(UINT cbData, LPOUTLINETEXTMETRIC lpotm) const + { ASSERT(m_hAttribDC != NULL); return ::GetOutlineTextMetrics(m_hAttribDC, cbData, lpotm); } +_AFXWIN_INLINE BOOL CDC::GetCharABCWidths(UINT nFirstChar, UINT nLastChar, LPABC lpabc) const + { ASSERT(m_hAttribDC != NULL); return ::GetCharABCWidths(m_hAttribDC, nFirstChar, nLastChar, lpabc); } +_AFXWIN_INLINE DWORD CDC::GetFontData(DWORD dwTable, DWORD dwOffset, LPVOID lpData, + DWORD cbData) const + { ASSERT(m_hAttribDC != NULL); return ::GetFontData(m_hAttribDC, dwTable, dwOffset, lpData, cbData); } +#ifndef _MAC +_AFXWIN_INLINE int CDC::GetKerningPairs(int nPairs, LPKERNINGPAIR lpkrnpair) const + { ASSERT(m_hAttribDC != NULL); return ::GetKerningPairs(m_hAttribDC, nPairs, lpkrnpair); } +_AFXWIN_INLINE DWORD CDC::GetGlyphOutline(UINT nChar, UINT nFormat, LPGLYPHMETRICS lpgm, + DWORD cbBuffer, LPVOID lpBuffer, const MAT2* lpmat2) const + { ASSERT(m_hAttribDC != NULL); return ::GetGlyphOutline(m_hAttribDC, nChar, nFormat, + lpgm, cbBuffer, lpBuffer, lpmat2); } +#endif + +// Document handling functions +_AFXWIN_INLINE int CDC::StartDoc(LPDOCINFO lpDocInfo) + { ASSERT(m_hDC != NULL); return ::StartDoc(m_hDC, lpDocInfo); } +_AFXWIN_INLINE int CDC::StartPage() + { ASSERT(m_hDC != NULL); return ::StartPage(m_hDC); } +_AFXWIN_INLINE int CDC::EndPage() + { ASSERT(m_hDC != NULL); return ::EndPage(m_hDC); } +_AFXWIN_INLINE int CDC::SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int)) + { ASSERT(m_hDC != NULL); return ::SetAbortProc(m_hDC, (ABORTPROC)lpfn); } +_AFXWIN_INLINE int CDC::AbortDoc() + { ASSERT(m_hDC != NULL); return ::AbortDoc(m_hDC); } +_AFXWIN_INLINE int CDC::EndDoc() + { ASSERT(m_hDC != NULL); return ::EndDoc(m_hDC); } + +#ifndef _MAC +_AFXWIN_INLINE BOOL CDC::MaskBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC, + int xSrc, int ySrc, CBitmap& maskBitmap, int xMask, int yMask, DWORD dwRop) + { ASSERT(m_hDC != NULL); return ::MaskBlt(m_hDC, x, y, nWidth, nHeight, pSrcDC->GetSafeHdc(), + xSrc, ySrc, (HBITMAP)maskBitmap.m_hObject, xMask, yMask, dwRop); } +_AFXWIN_INLINE BOOL CDC::PlgBlt(LPPOINT lpPoint, CDC* pSrcDC, int xSrc, int ySrc, + int nWidth, int nHeight, CBitmap& maskBitmap, int xMask, int yMask) + { ASSERT(m_hDC != NULL); return ::PlgBlt(m_hDC, lpPoint, pSrcDC->GetSafeHdc(), xSrc, ySrc, nWidth, + nHeight, (HBITMAP)maskBitmap.m_hObject, xMask, yMask); } +_AFXWIN_INLINE BOOL CDC::SetPixelV(int x, int y, COLORREF crColor) + { ASSERT(m_hDC != NULL); return ::SetPixelV(m_hDC, x, y, crColor); } +_AFXWIN_INLINE BOOL CDC::SetPixelV(POINT point, COLORREF crColor) + { ASSERT(m_hDC != NULL); return ::SetPixelV(m_hDC, point.x, point.y, crColor); } +_AFXWIN_INLINE BOOL CDC::AngleArc(int x, int y, int nRadius, + float fStartAngle, float fSweepAngle) + { ASSERT(m_hDC != NULL); return ::AngleArc(m_hDC, x, y, nRadius, fStartAngle, fSweepAngle); } +_AFXWIN_INLINE BOOL CDC::ArcTo(LPCRECT lpRect, POINT ptStart, POINT ptEnd) + { ASSERT(m_hDC != NULL); return ArcTo(lpRect->left, lpRect->top, lpRect->right, + lpRect->bottom, ptStart.x, ptStart.y, ptEnd.x, ptEnd.y); } +_AFXWIN_INLINE int CDC::GetArcDirection() const + { ASSERT(m_hAttribDC != NULL); return ::GetArcDirection(m_hAttribDC); } +_AFXWIN_INLINE BOOL CDC::PolyPolyline(const POINT* lpPoints, const DWORD* lpPolyPoints, + int nCount) + { ASSERT(m_hDC != NULL); return ::PolyPolyline(m_hDC, lpPoints, lpPolyPoints, nCount); } +_AFXWIN_INLINE BOOL CDC::GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const + { ASSERT(m_hAttribDC != NULL); return ::GetColorAdjustment(m_hAttribDC, lpColorAdjust); } +_AFXWIN_INLINE CPen* CDC::GetCurrentPen() const + { ASSERT(m_hAttribDC != NULL); return CPen::FromHandle((HPEN)::GetCurrentObject(m_hAttribDC, OBJ_PEN)); } +_AFXWIN_INLINE CBrush* CDC::GetCurrentBrush() const + { ASSERT(m_hAttribDC != NULL); return CBrush::FromHandle((HBRUSH)::GetCurrentObject(m_hAttribDC, OBJ_BRUSH)); } +_AFXWIN_INLINE CPalette* CDC::GetCurrentPalette() const + { ASSERT(m_hAttribDC != NULL); return CPalette::FromHandle((HPALETTE)::GetCurrentObject(m_hAttribDC, OBJ_PAL)); } +_AFXWIN_INLINE CFont* CDC::GetCurrentFont() const + { ASSERT(m_hAttribDC != NULL); return CFont::FromHandle((HFONT)::GetCurrentObject(m_hAttribDC, OBJ_FONT)); } +_AFXWIN_INLINE CBitmap* CDC::GetCurrentBitmap() const + { ASSERT(m_hAttribDC != NULL); return CBitmap::FromHandle((HBITMAP)::GetCurrentObject(m_hAttribDC, OBJ_BITMAP)); } +_AFXWIN_INLINE BOOL CDC::PolyBezier(const POINT* lpPoints, int nCount) + { ASSERT(m_hDC != NULL); return ::PolyBezier(m_hDC, lpPoints, nCount); } + +_AFXWIN_INLINE int CDC::DrawEscape(int nEscape, int nInputSize, LPCSTR lpszInputData) + { ASSERT(m_hDC != NULL); return ::DrawEscape(m_hDC, nEscape, nInputSize, lpszInputData); } +_AFXWIN_INLINE int CDC::Escape(int nEscape, int nInputSize, LPCSTR lpszInputData, + int nOutputSize, LPSTR lpszOutputData) + { ASSERT(m_hDC != NULL); return ::ExtEscape(m_hDC, nEscape, nInputSize, lpszInputData, + nOutputSize, lpszOutputData); } + +_AFXWIN_INLINE BOOL CDC::GetCharABCWidths(UINT nFirstChar, UINT nLastChar, + LPABCFLOAT lpABCF) const + { ASSERT(m_hAttribDC != NULL); return ::GetCharABCWidthsFloat(m_hAttribDC, nFirstChar, nLastChar, lpABCF); } +_AFXWIN_INLINE BOOL CDC::GetCharWidth(UINT nFirstChar, UINT nLastChar, + float* lpFloatBuffer) const + { ASSERT(m_hAttribDC != NULL); return ::GetCharWidthFloat(m_hAttribDC, nFirstChar, nLastChar, lpFloatBuffer); } + +_AFXWIN_INLINE BOOL CDC::AbortPath() + { ASSERT(m_hDC != NULL); return ::AbortPath(m_hDC); } +_AFXWIN_INLINE BOOL CDC::BeginPath() + { ASSERT(m_hDC != NULL); return ::BeginPath(m_hDC); } +_AFXWIN_INLINE BOOL CDC::CloseFigure() + { ASSERT(m_hDC != NULL); return ::CloseFigure(m_hDC); } +_AFXWIN_INLINE BOOL CDC::EndPath() + { ASSERT(m_hDC != NULL); return ::EndPath(m_hDC); } +_AFXWIN_INLINE BOOL CDC::FillPath() + { ASSERT(m_hDC != NULL); return ::FillPath(m_hDC); } +_AFXWIN_INLINE BOOL CDC::FlattenPath() + { ASSERT(m_hDC != NULL); return ::FlattenPath(m_hDC); } +_AFXWIN_INLINE float CDC::GetMiterLimit() const + { ASSERT(m_hDC != NULL); float fMiterLimit; + VERIFY(::GetMiterLimit(m_hDC, &fMiterLimit)); return fMiterLimit; } +_AFXWIN_INLINE int CDC::GetPath(LPPOINT lpPoints, LPBYTE lpTypes, int nCount) const + { ASSERT(m_hDC != NULL); return ::GetPath(m_hDC, lpPoints, lpTypes, nCount); } +_AFXWIN_INLINE BOOL CDC::SetMiterLimit(float fMiterLimit) + { ASSERT(m_hDC != NULL); return ::SetMiterLimit(m_hDC, fMiterLimit, NULL); } +_AFXWIN_INLINE BOOL CDC::StrokeAndFillPath() + { ASSERT(m_hDC != NULL); return ::StrokeAndFillPath(m_hDC); } +_AFXWIN_INLINE BOOL CDC::StrokePath() + { ASSERT(m_hDC != NULL); return ::StrokePath(m_hDC); } +_AFXWIN_INLINE BOOL CDC::WidenPath() + { ASSERT(m_hDC != NULL); return ::WidenPath(m_hDC); } + +_AFXWIN_INLINE BOOL CDC::AddMetaFileComment(UINT nDataSize, const BYTE* pCommentData) + { ASSERT(m_hDC != NULL); return ::GdiComment(m_hDC, nDataSize, pCommentData); } +_AFXWIN_INLINE BOOL CDC::PlayMetaFile(HENHMETAFILE hEnhMF, LPCRECT lpBounds) + { ASSERT(m_hDC != NULL); return ::PlayEnhMetaFile(m_hDC, hEnhMF, lpBounds); } +#endif + +// CMenu +_AFXWIN_INLINE CMenu::CMenu() + { m_hMenu = NULL; } +_AFXWIN_INLINE CMenu::~CMenu() + { DestroyMenu(); } +_AFXWIN_INLINE BOOL CMenu::CreateMenu() + { return Attach(::CreateMenu()); } +_AFXWIN_INLINE BOOL CMenu::CreatePopupMenu() + { return Attach(::CreatePopupMenu()); } +_AFXWIN_INLINE CMenu::operator HMENU() const + { ASSERT(this == NULL || m_hMenu == NULL || ::IsMenu(m_hMenu)); + return this == NULL ? NULL : m_hMenu; } +_AFXWIN_INLINE HMENU CMenu::GetSafeHmenu() const + { ASSERT(this == NULL || m_hMenu == NULL || ::IsMenu(m_hMenu)); + return this == NULL ? NULL : m_hMenu; } +_AFXWIN_INLINE BOOL CMenu::DeleteMenu(UINT nPosition, UINT nFlags) + { ASSERT(::IsMenu(m_hMenu)); return ::DeleteMenu(m_hMenu, nPosition, nFlags); } +_AFXWIN_INLINE BOOL CMenu::AppendMenu(UINT nFlags, UINT nIDNewItem, LPCTSTR lpszNewItem) + { ASSERT(::IsMenu(m_hMenu)); return ::AppendMenu(m_hMenu, nFlags, nIDNewItem, lpszNewItem); } +_AFXWIN_INLINE BOOL CMenu::AppendMenu(UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp) + { ASSERT(::IsMenu(m_hMenu)); return ::AppendMenu(m_hMenu, nFlags | MF_BITMAP, nIDNewItem, + (LPCTSTR)pBmp->GetSafeHandle()); } +_AFXWIN_INLINE UINT CMenu::CheckMenuItem(UINT nIDCheckItem, UINT nCheck) + { ASSERT(::IsMenu(m_hMenu)); return (UINT)::CheckMenuItem(m_hMenu, nIDCheckItem, nCheck); } +_AFXWIN_INLINE UINT CMenu::EnableMenuItem(UINT nIDEnableItem, UINT nEnable) + { ASSERT(::IsMenu(m_hMenu)); return ::EnableMenuItem(m_hMenu, nIDEnableItem, nEnable); } +_AFXWIN_INLINE UINT CMenu::GetMenuItemCount() const + { ASSERT(::IsMenu(m_hMenu)); return ::GetMenuItemCount(m_hMenu); } +_AFXWIN_INLINE UINT CMenu::GetMenuItemID(int nPos) const + { ASSERT(::IsMenu(m_hMenu)); return ::GetMenuItemID(m_hMenu, nPos); } +_AFXWIN_INLINE UINT CMenu::GetMenuState(UINT nID, UINT nFlags) const + { ASSERT(::IsMenu(m_hMenu)); return ::GetMenuState(m_hMenu, nID, nFlags); } +_AFXWIN_INLINE int CMenu::GetMenuString(UINT nIDItem, LPTSTR lpString, int nMaxCount, UINT nFlags) const + { ASSERT(::IsMenu(m_hMenu)); return ::GetMenuString(m_hMenu, nIDItem, lpString, nMaxCount, nFlags); } +_AFXWIN_INLINE int CMenu::GetMenuString(UINT nIDItem, CString& rString, UINT nFlags) const + { ASSERT(::IsMenu(m_hMenu)); int nResult = ::GetMenuString(m_hMenu, nIDItem, + rString.GetBuffer(256), 256, nFlags); rString.ReleaseBuffer(); + return nResult; } +_AFXWIN_INLINE CMenu* CMenu::GetSubMenu(int nPos) const + { ASSERT(::IsMenu(m_hMenu)); return CMenu::FromHandle(::GetSubMenu(m_hMenu, nPos)); } +_AFXWIN_INLINE BOOL CMenu::InsertMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem, + LPCTSTR lpszNewItem) + { ASSERT(::IsMenu(m_hMenu)); return ::InsertMenu(m_hMenu, nPosition, nFlags, nIDNewItem, lpszNewItem); } +_AFXWIN_INLINE BOOL CMenu::InsertMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp) + { ASSERT(::IsMenu(m_hMenu)); return ::InsertMenu(m_hMenu, nPosition, nFlags | MF_BITMAP, nIDNewItem, + (LPCTSTR)pBmp->GetSafeHandle()); } +_AFXWIN_INLINE BOOL CMenu::ModifyMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem, LPCTSTR lpszNewItem) + { ASSERT(::IsMenu(m_hMenu)); return ::ModifyMenu(m_hMenu, nPosition, nFlags, nIDNewItem, lpszNewItem); } +_AFXWIN_INLINE BOOL CMenu::ModifyMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp) + { ASSERT(::IsMenu(m_hMenu)); return ::ModifyMenu(m_hMenu, nPosition, nFlags | MF_BITMAP, nIDNewItem, + (LPCTSTR)pBmp->GetSafeHandle()); } +_AFXWIN_INLINE BOOL CMenu::RemoveMenu(UINT nPosition, UINT nFlags) + { ASSERT(::IsMenu(m_hMenu)); return ::RemoveMenu(m_hMenu, nPosition, nFlags); } +_AFXWIN_INLINE BOOL CMenu::SetMenuItemBitmaps(UINT nPosition, UINT nFlags, + const CBitmap* pBmpUnchecked, const CBitmap* pBmpChecked) + { ASSERT(::IsMenu(m_hMenu)); return ::SetMenuItemBitmaps(m_hMenu, nPosition, nFlags, + (HBITMAP)pBmpUnchecked->GetSafeHandle(), + (HBITMAP)pBmpChecked->GetSafeHandle()); } +_AFXWIN_INLINE BOOL CMenu::LoadMenu(LPCTSTR lpszResourceName) + { return Attach(::LoadMenu(AfxFindResourceHandle(lpszResourceName, + RT_MENU), lpszResourceName)); } +_AFXWIN_INLINE BOOL CMenu::LoadMenu(UINT nIDResource) + { return Attach(::LoadMenu(AfxFindResourceHandle( + MAKEINTRESOURCE(nIDResource), RT_MENU), MAKEINTRESOURCE(nIDResource))); } +_AFXWIN_INLINE BOOL CMenu::LoadMenuIndirect(const void* lpMenuTemplate) + { return Attach(::LoadMenuIndirect(lpMenuTemplate)); } +// Win4 +#ifndef _MAC +_AFXWIN_INLINE BOOL CMenu::SetMenuContextHelpId(DWORD dwContextHelpId) + { return ::SetMenuContextHelpId(m_hMenu, dwContextHelpId); } +_AFXWIN_INLINE DWORD CMenu::GetMenuContextHelpId() const + { return ::GetMenuContextHelpId(m_hMenu); } +_AFXWIN_INLINE BOOL CMenu::CheckMenuRadioItem(UINT nIDFirst, UINT nIDLast, UINT nIDItem, UINT nFlags) + { return ::CheckMenuRadioItem(m_hMenu, nIDFirst, nIDLast, nIDItem, nFlags); } +#endif + +// CCmdUI +_AFXWIN_INLINE void CCmdUI::ContinueRouting() + { m_bContinueRouting = TRUE; } + +///////////////////////////////////////////////////////////////////////////// + +#endif //_AFXWIN_INLINE diff --git a/public/sdk/inc/mfc42/afxwin2.inl b/public/sdk/inc/mfc42/afxwin2.inl new file mode 100644 index 000000000..c84797b7b --- /dev/null +++ b/public/sdk/inc/mfc42/afxwin2.inl @@ -0,0 +1,1043 @@ +// 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. + +// Inlines for AFXWIN.H (part 2) + +#ifdef _AFXWIN_INLINE + +// CWnd +_AFXWIN_INLINE CWnd::operator HWND() const + { return this == NULL ? NULL : m_hWnd; } +_AFXWIN_INLINE HWND CWnd::GetSafeHwnd() const + { return this == NULL ? NULL : m_hWnd; } +#ifdef _AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE DWORD CWnd::GetStyle() const + { ASSERT(::IsWindow(m_hWnd)); return (DWORD)GetWindowLong(m_hWnd, GWL_STYLE); } +_AFXWIN_INLINE DWORD CWnd::GetExStyle() const + { ASSERT(::IsWindow(m_hWnd)); return (DWORD)GetWindowLong(m_hWnd, GWL_EXSTYLE); } +_AFXWIN_INLINE BOOL CWnd::ModifyStyle(DWORD dwRemove, DWORD dwAdd, UINT nFlags) + { ASSERT(::IsWindow(m_hWnd)); return ModifyStyle(m_hWnd, dwRemove, dwAdd, nFlags); } +_AFXWIN_INLINE BOOL CWnd::ModifyStyleEx(DWORD dwRemove, DWORD dwAdd, UINT nFlags) + { ASSERT(::IsWindow(m_hWnd)); return ModifyStyleEx(m_hWnd, dwRemove, dwAdd, nFlags); } +#endif //_AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE CWnd* CWnd::GetOwner() const + { return m_hWndOwner != NULL ? CWnd::FromHandle(m_hWndOwner) : GetParent(); } +_AFXWIN_INLINE void CWnd::SetOwner(CWnd* pOwnerWnd) + { m_hWndOwner = pOwnerWnd != NULL ? pOwnerWnd->m_hWnd : NULL; } +_AFXWIN_INLINE LRESULT CWnd::SendMessage(UINT message, WPARAM wParam, LPARAM lParam) + { ASSERT(::IsWindow(m_hWnd)); return ::SendMessage(m_hWnd, message, wParam, lParam); } +_AFXWIN_INLINE BOOL CWnd::PostMessage(UINT message, WPARAM wParam, LPARAM lParam) + { ASSERT(::IsWindow(m_hWnd)); return ::PostMessage(m_hWnd, message, wParam, lParam); } +#ifdef _AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE void CWnd::SetWindowText(LPCTSTR lpszString) + { ASSERT(::IsWindow(m_hWnd)); ::SetWindowText(m_hWnd, lpszString); } +_AFXWIN_INLINE int CWnd::GetWindowText(LPTSTR lpszString, int nMaxCount) const + { ASSERT(::IsWindow(m_hWnd)); return ::GetWindowText(m_hWnd, lpszString, nMaxCount); } +_AFXWIN_INLINE int CWnd::GetWindowTextLength() const + { ASSERT(::IsWindow(m_hWnd)); return ::GetWindowTextLength(m_hWnd); } +#endif //_AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE void CWnd::SetFont(CFont* pFont, BOOL bRedraw) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_SETFONT, (WPARAM)pFont->GetSafeHandle(), bRedraw); } +_AFXWIN_INLINE CFont* CWnd::GetFont() const + { ASSERT(::IsWindow(m_hWnd)); return CFont::FromHandle( + (HFONT)::SendMessage(m_hWnd, WM_GETFONT, 0, 0)); } +_AFXWIN_INLINE CMenu* CWnd::GetMenu() const + { ASSERT(::IsWindow(m_hWnd)); return CMenu::FromHandle(::GetMenu(m_hWnd)); } +_AFXWIN_INLINE BOOL CWnd::SetMenu(CMenu* pMenu) + { ASSERT(::IsWindow(m_hWnd)); return ::SetMenu(m_hWnd, pMenu->GetSafeHmenu()); } +_AFXWIN_INLINE void CWnd::DrawMenuBar() + { ASSERT(::IsWindow(m_hWnd)); ::DrawMenuBar(m_hWnd); } +_AFXWIN_INLINE CMenu* CWnd::GetSystemMenu(BOOL bRevert) const + { ASSERT(::IsWindow(m_hWnd)); return CMenu::FromHandle(::GetSystemMenu(m_hWnd, bRevert)); } +_AFXWIN_INLINE BOOL CWnd::HiliteMenuItem(CMenu* pMenu, UINT nIDHiliteItem, UINT nHilite) + { ASSERT(::IsWindow(m_hWnd)); return ::HiliteMenuItem(m_hWnd, pMenu->m_hMenu, nIDHiliteItem, nHilite); } +#ifdef _AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE int CWnd::GetDlgCtrlID() const + { ASSERT(::IsWindow(m_hWnd)); return ::GetDlgCtrlID(m_hWnd); } +_AFXWIN_INLINE int CWnd::SetDlgCtrlID(int nID) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SetWindowLong(m_hWnd, GWL_ID, nID); } +#endif //_AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE BOOL CWnd::IsIconic() const + { ASSERT(::IsWindow(m_hWnd)); return ::IsIconic(m_hWnd); } +_AFXWIN_INLINE BOOL CWnd::IsZoomed() const + { ASSERT(::IsWindow(m_hWnd)); return ::IsZoomed(m_hWnd); } +#ifdef _AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE void CWnd::MoveWindow(int x, int y, int nWidth, int nHeight, BOOL bRepaint) + { ASSERT(::IsWindow(m_hWnd)); ::MoveWindow(m_hWnd, x, y, nWidth, nHeight, bRepaint); } +#endif //_AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE void CWnd::MoveWindow(LPCRECT lpRect, BOOL bRepaint) + { MoveWindow(lpRect->left, lpRect->top, lpRect->right - lpRect->left, + lpRect->bottom - lpRect->top, bRepaint); } +#ifdef _AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE BOOL CWnd::SetWindowPos(const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags) + { ASSERT(::IsWindow(m_hWnd)); return ::SetWindowPos(m_hWnd, pWndInsertAfter->GetSafeHwnd(), + x, y, cx, cy, nFlags); } +#endif //_AFX_NO_OCC_SUPPORT +#ifndef _MAC +_AFXWIN_INLINE UINT CWnd::ArrangeIconicWindows() + { ASSERT(::IsWindow(m_hWnd)); return ::ArrangeIconicWindows(m_hWnd); } +#endif +_AFXWIN_INLINE void CWnd::BringWindowToTop() + { ASSERT(::IsWindow(m_hWnd)); ::BringWindowToTop(m_hWnd); } +_AFXWIN_INLINE void CWnd::GetWindowRect(LPRECT lpRect) const + { ASSERT(::IsWindow(m_hWnd)); ::GetWindowRect(m_hWnd, lpRect); } +_AFXWIN_INLINE void CWnd::GetClientRect(LPRECT lpRect) const + { ASSERT(::IsWindow(m_hWnd)); ::GetClientRect(m_hWnd, lpRect); } +_AFXWIN_INLINE void CWnd::MapWindowPoints(CWnd* pwndTo, LPPOINT lpPoint, UINT nCount) const + { ASSERT(::IsWindow(m_hWnd)); ::MapWindowPoints(m_hWnd, pwndTo->GetSafeHwnd(), lpPoint, nCount); } +_AFXWIN_INLINE void CWnd::MapWindowPoints(CWnd* pwndTo, LPRECT lpRect) const + { ASSERT(::IsWindow(m_hWnd)); ::MapWindowPoints(m_hWnd, pwndTo->GetSafeHwnd(), (LPPOINT)lpRect, 2); } +_AFXWIN_INLINE void CWnd::ClientToScreen(LPPOINT lpPoint) const + { ASSERT(::IsWindow(m_hWnd)); ::ClientToScreen(m_hWnd, lpPoint); } +_AFXWIN_INLINE void CWnd::ClientToScreen(LPRECT lpRect) const + { ASSERT(::IsWindow(m_hWnd)); ::ClientToScreen(m_hWnd, (LPPOINT)lpRect); + ::ClientToScreen(m_hWnd, ((LPPOINT)lpRect)+1); } +_AFXWIN_INLINE void CWnd::ScreenToClient(LPPOINT lpPoint) const + { ASSERT(::IsWindow(m_hWnd)); ::ScreenToClient(m_hWnd, lpPoint); } +_AFXWIN_INLINE void CWnd::ScreenToClient(LPRECT lpRect) const + { ASSERT(::IsWindow(m_hWnd)); ::ScreenToClient(m_hWnd, (LPPOINT)lpRect); + ::ScreenToClient(m_hWnd, ((LPPOINT)lpRect)+1); } +_AFXWIN_INLINE CDC* CWnd::BeginPaint(LPPAINTSTRUCT lpPaint) + { ASSERT(::IsWindow(m_hWnd)); return CDC::FromHandle(::BeginPaint(m_hWnd, lpPaint)); } +_AFXWIN_INLINE void CWnd::EndPaint(LPPAINTSTRUCT lpPaint) + { ASSERT(::IsWindow(m_hWnd)); ::EndPaint(m_hWnd, lpPaint); } +_AFXWIN_INLINE CDC* CWnd::GetDC() + { ASSERT(::IsWindow(m_hWnd)); return CDC::FromHandle(::GetDC(m_hWnd)); } +_AFXWIN_INLINE CDC* CWnd::GetWindowDC() + { ASSERT(::IsWindow(m_hWnd)); return CDC::FromHandle(::GetWindowDC(m_hWnd)); } +_AFXWIN_INLINE int CWnd::ReleaseDC(CDC* pDC) + { ASSERT(::IsWindow(m_hWnd)); return ::ReleaseDC(m_hWnd, pDC->m_hDC); } +_AFXWIN_INLINE void CWnd::UpdateWindow() + { ASSERT(::IsWindow(m_hWnd)); ::UpdateWindow(m_hWnd); } +_AFXWIN_INLINE void CWnd::SetRedraw(BOOL bRedraw) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_SETREDRAW, bRedraw, 0); } +_AFXWIN_INLINE BOOL CWnd::GetUpdateRect(LPRECT lpRect, BOOL bErase) + { ASSERT(::IsWindow(m_hWnd)); return ::GetUpdateRect(m_hWnd, lpRect, bErase); } +_AFXWIN_INLINE int CWnd::GetUpdateRgn(CRgn* pRgn, BOOL bErase) + { ASSERT(::IsWindow(m_hWnd)); return ::GetUpdateRgn(m_hWnd, (HRGN)pRgn->GetSafeHandle(), bErase); } +_AFXWIN_INLINE void CWnd::Invalidate(BOOL bErase) + { ASSERT(::IsWindow(m_hWnd)); ::InvalidateRect(m_hWnd, NULL, bErase); } +_AFXWIN_INLINE void CWnd::InvalidateRect(LPCRECT lpRect, BOOL bErase) + { ASSERT(::IsWindow(m_hWnd)); ::InvalidateRect(m_hWnd, lpRect, bErase); } +_AFXWIN_INLINE void CWnd::InvalidateRgn(CRgn* pRgn, BOOL bErase) + { ASSERT(::IsWindow(m_hWnd)); ::InvalidateRgn(m_hWnd, (HRGN)pRgn->GetSafeHandle(), bErase); } +_AFXWIN_INLINE void CWnd::ValidateRect(LPCRECT lpRect) + { ASSERT(::IsWindow(m_hWnd)); ::ValidateRect(m_hWnd, lpRect); } +_AFXWIN_INLINE void CWnd::ValidateRgn(CRgn* pRgn) + { ASSERT(::IsWindow(m_hWnd)); ::ValidateRgn(m_hWnd, (HRGN)pRgn->GetSafeHandle()); } +#ifdef _AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE BOOL CWnd::ShowWindow(int nCmdShow) + { ASSERT(::IsWindow(m_hWnd)); return ::ShowWindow(m_hWnd, nCmdShow); } +#endif //_AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE BOOL CWnd::IsWindowVisible() const + { ASSERT(::IsWindow(m_hWnd)); return ::IsWindowVisible(m_hWnd); } +_AFXWIN_INLINE void CWnd::ShowOwnedPopups(BOOL bShow) + { ASSERT(::IsWindow(m_hWnd)); ::ShowOwnedPopups(m_hWnd, bShow); } +_AFXWIN_INLINE void CWnd::SendMessageToDescendants( + UINT message, WPARAM wParam, LPARAM lParam, BOOL bDeep, BOOL bOnlyPerm) + { ASSERT(::IsWindow(m_hWnd)); CWnd::SendMessageToDescendants(m_hWnd, message, wParam, lParam, bDeep, + bOnlyPerm); } +_AFXWIN_INLINE CWnd* CWnd::GetDescendantWindow(int nID, BOOL bOnlyPerm) const + { ASSERT(::IsWindow(m_hWnd)); return CWnd::GetDescendantWindow(m_hWnd, nID, bOnlyPerm); } +#ifdef _AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE BOOL CWnd::IsDialogMessage(LPMSG lpMsg) + { ASSERT(::IsWindow(m_hWnd)); return ::IsDialogMessage(m_hWnd, lpMsg); } +#endif + +_AFXWIN_INLINE CDC* CWnd::GetDCEx(CRgn* prgnClip, DWORD flags) + { ASSERT(::IsWindow(m_hWnd)); return CDC::FromHandle(::GetDCEx(m_hWnd, (HRGN)prgnClip->GetSafeHandle(), flags)); } +#ifndef _MAC +_AFXWIN_INLINE BOOL CWnd::LockWindowUpdate() + { ASSERT(::IsWindow(m_hWnd)); return ::LockWindowUpdate(m_hWnd); } +_AFXWIN_INLINE void CWnd::UnlockWindowUpdate() + { ASSERT(::IsWindow(m_hWnd)); ::LockWindowUpdate(NULL); } +#endif +_AFXWIN_INLINE BOOL CWnd::RedrawWindow(LPCRECT lpRectUpdate, CRgn* prgnUpdate, + UINT flags) + { ASSERT(::IsWindow(m_hWnd)); return ::RedrawWindow(m_hWnd, lpRectUpdate, (HRGN)prgnUpdate->GetSafeHandle(), flags); } +_AFXWIN_INLINE BOOL CWnd::EnableScrollBar(int nSBFlags, UINT nArrowFlags) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::EnableScrollBar(m_hWnd, nSBFlags, nArrowFlags); } + +_AFXWIN_INLINE UINT CWnd::SetTimer(UINT nIDEvent, UINT nElapse, + void (CALLBACK* lpfnTimer)(HWND, UINT, UINT, DWORD)) + { ASSERT(::IsWindow(m_hWnd)); return ::SetTimer(m_hWnd, nIDEvent, nElapse, + (TIMERPROC)lpfnTimer); } +_AFXWIN_INLINE BOOL CWnd::KillTimer(int nIDEvent) + { ASSERT(::IsWindow(m_hWnd)); return ::KillTimer(m_hWnd, nIDEvent); } +#ifdef _AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE BOOL CWnd::IsWindowEnabled() const + { ASSERT(::IsWindow(m_hWnd)); return ::IsWindowEnabled(m_hWnd); } +_AFXWIN_INLINE BOOL CWnd::EnableWindow(BOOL bEnable) + { ASSERT(::IsWindow(m_hWnd)); return ::EnableWindow(m_hWnd, bEnable); } +#endif //_AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE CWnd* PASCAL CWnd::GetActiveWindow() + { return CWnd::FromHandle(::GetActiveWindow()); } +_AFXWIN_INLINE CWnd* CWnd::SetActiveWindow() + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::SetActiveWindow(m_hWnd)); } +_AFXWIN_INLINE CWnd* PASCAL CWnd::GetCapture() + { return CWnd::FromHandle(::GetCapture()); } +_AFXWIN_INLINE CWnd* CWnd::SetCapture() + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::SetCapture(m_hWnd)); } +_AFXWIN_INLINE CWnd* PASCAL CWnd::GetFocus() + { return CWnd::FromHandle(::GetFocus()); } +#ifdef _AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE CWnd* CWnd::SetFocus() + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::SetFocus(m_hWnd)); } +#endif //_AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE CWnd* PASCAL CWnd::GetDesktopWindow() + { return CWnd::FromHandle(::GetDesktopWindow()); } +#ifdef _AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE void CWnd::CheckDlgButton(int nIDButton, UINT nCheck) + { ASSERT(::IsWindow(m_hWnd)); ::CheckDlgButton(m_hWnd, nIDButton, nCheck); } +_AFXWIN_INLINE void CWnd::CheckRadioButton(int nIDFirstButton, int nIDLastButton, + int nIDCheckButton) + { ASSERT(::IsWindow(m_hWnd)); ::CheckRadioButton(m_hWnd, nIDFirstButton, nIDLastButton, nIDCheckButton); } +#endif //_AFX_NO_OCC_SUPPORT +#ifndef _MAC +_AFXWIN_INLINE int CWnd::DlgDirList(LPTSTR lpPathSpec, int nIDListBox, + int nIDStaticPath, UINT nFileType) + { ASSERT(::IsWindow(m_hWnd)); return ::DlgDirList(m_hWnd, lpPathSpec, nIDListBox, + nIDStaticPath, nFileType); } +_AFXWIN_INLINE int CWnd::DlgDirListComboBox(LPTSTR lpPathSpec, int nIDComboBox, + int nIDStaticPath, UINT nFileType) + { ASSERT(::IsWindow(m_hWnd)); return ::DlgDirListComboBox(m_hWnd, lpPathSpec, + nIDComboBox, nIDStaticPath, nFileType); } +_AFXWIN_INLINE BOOL CWnd::DlgDirSelect(LPTSTR lpString, int nIDListBox) + { ASSERT(::IsWindow(m_hWnd)); return ::DlgDirSelectEx(m_hWnd, lpString, _MAX_PATH, nIDListBox); } +_AFXWIN_INLINE BOOL CWnd::DlgDirSelectComboBox(LPTSTR lpString, int nIDComboBox) + { ASSERT(::IsWindow(m_hWnd)); return ::DlgDirSelectComboBoxEx(m_hWnd, lpString, _MAX_PATH, nIDComboBox);} +#endif +#ifdef _AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE CWnd* CWnd::GetDlgItem(int nID) const + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::GetDlgItem(m_hWnd, nID)); } +_AFXWIN_INLINE void CWnd::GetDlgItem(int nID, HWND* phWnd) const + { ASSERT(::IsWindow(m_hWnd)); ASSERT(phWnd != NULL); *phWnd = ::GetDlgItem(m_hWnd, nID); } +_AFXWIN_INLINE UINT CWnd::GetDlgItemInt(int nID, BOOL* lpTrans, + BOOL bSigned) const + { ASSERT(::IsWindow(m_hWnd)); return ::GetDlgItemInt(m_hWnd, nID, lpTrans, bSigned);} +_AFXWIN_INLINE int CWnd::GetDlgItemText(int nID, LPTSTR lpStr, int nMaxCount) const + { ASSERT(::IsWindow(m_hWnd)); return ::GetDlgItemText(m_hWnd, nID, lpStr, nMaxCount);} +#endif //_AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE CWnd* CWnd::GetNextDlgGroupItem(CWnd* pWndCtl, BOOL bPrevious) const + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::GetNextDlgGroupItem(m_hWnd, + pWndCtl->GetSafeHwnd(), bPrevious)); } +_AFXWIN_INLINE CWnd* CWnd::GetNextDlgTabItem(CWnd* pWndCtl, BOOL bPrevious) const + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::GetNextDlgTabItem(m_hWnd, + pWndCtl->GetSafeHwnd(), bPrevious)); } +#ifdef _AFX_NO_OCC_SUPPORT +_AFXWIN_INLINE UINT CWnd::IsDlgButtonChecked(int nIDButton) const + { ASSERT(::IsWindow(m_hWnd)); return ::IsDlgButtonChecked(m_hWnd, nIDButton); } +_AFXWIN_INLINE LPARAM CWnd::SendDlgItemMessage(int nID, UINT message, WPARAM wParam, LPARAM lParam) + { ASSERT(::IsWindow(m_hWnd)); return ::SendDlgItemMessage(m_hWnd, nID, message, wParam, lParam); } +_AFXWIN_INLINE void CWnd::SetDlgItemInt(int nID, UINT nValue, BOOL bSigned) + { ASSERT(::IsWindow(m_hWnd)); ::SetDlgItemInt(m_hWnd, nID, nValue, bSigned); } +_AFXWIN_INLINE void CWnd::SetDlgItemText(int nID, LPCTSTR lpszString) + { ASSERT(::IsWindow(m_hWnd)); ::SetDlgItemText(m_hWnd, nID, lpszString); } +_AFXWIN_INLINE int CWnd::ScrollWindowEx(int dx, int dy, + LPCRECT lpRectScroll, LPCRECT lpRectClip, + CRgn* prgnUpdate, LPRECT lpRectUpdate, UINT flags) + { ASSERT(::IsWindow(m_hWnd)); return ::ScrollWindowEx(m_hWnd, dx, dy, lpRectScroll, lpRectClip, + (HRGN)prgnUpdate->GetSafeHandle(), lpRectUpdate, flags); } +#endif //_AFX_NO_OCC_SUPPORT + +_AFXWIN_INLINE void CWnd::ShowScrollBar(UINT nBar, BOOL bShow) + { ASSERT(::IsWindow(m_hWnd)); ::ShowScrollBar(m_hWnd, nBar, bShow); } +_AFXWIN_INLINE CWnd* CWnd::ChildWindowFromPoint(POINT point) const + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::ChildWindowFromPoint(m_hWnd, point)); } +#ifndef _MAC +_AFXWIN_INLINE CWnd* CWnd::ChildWindowFromPoint(POINT point, UINT nFlags) const + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::ChildWindowFromPointEx(m_hWnd, point, nFlags)); } +#endif +_AFXWIN_INLINE CWnd* PASCAL CWnd::FindWindow(LPCTSTR lpszClassName, LPCTSTR lpszWindowName) + { return CWnd::FromHandle(::FindWindow(lpszClassName, lpszWindowName)); } +_AFXWIN_INLINE CWnd* CWnd::GetNextWindow(UINT nFlag) const + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::GetNextWindow(m_hWnd, nFlag)); } +_AFXWIN_INLINE CWnd* CWnd::GetTopWindow() const + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::GetTopWindow(m_hWnd)); } +_AFXWIN_INLINE CWnd* CWnd::GetWindow(UINT nCmd) const + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::GetWindow(m_hWnd, nCmd)); } +_AFXWIN_INLINE CWnd* CWnd::GetLastActivePopup() const + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::GetLastActivePopup(m_hWnd)); } +_AFXWIN_INLINE BOOL CWnd::IsChild(const CWnd* pWnd) const + { ASSERT(::IsWindow(m_hWnd)); return ::IsChild(m_hWnd, pWnd->GetSafeHwnd()); } +_AFXWIN_INLINE CWnd* CWnd::GetParent() const + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::GetParent(m_hWnd)); } +_AFXWIN_INLINE CWnd* CWnd::SetParent(CWnd* pWndNewParent) + { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::SetParent(m_hWnd, + pWndNewParent->GetSafeHwnd())); } +_AFXWIN_INLINE CWnd* PASCAL CWnd::WindowFromPoint(POINT point) + { return CWnd::FromHandle(::WindowFromPoint(point)); } +_AFXWIN_INLINE BOOL CWnd::FlashWindow(BOOL bInvert) + { ASSERT(::IsWindow(m_hWnd)); return ::FlashWindow(m_hWnd, bInvert); } +_AFXWIN_INLINE BOOL CWnd::ChangeClipboardChain(HWND hWndNext) + { ASSERT(::IsWindow(m_hWnd)); return ::ChangeClipboardChain(m_hWnd, hWndNext); } +_AFXWIN_INLINE HWND CWnd::SetClipboardViewer() + { ASSERT(::IsWindow(m_hWnd)); return ::SetClipboardViewer(m_hWnd); } +_AFXWIN_INLINE BOOL CWnd::OpenClipboard() + { ASSERT(::IsWindow(m_hWnd)); return ::OpenClipboard(m_hWnd); } +_AFXWIN_INLINE CWnd* PASCAL CWnd::GetOpenClipboardWindow() + { return CWnd::FromHandle(::GetOpenClipboardWindow()); } +_AFXWIN_INLINE CWnd* PASCAL CWnd::GetClipboardOwner() + { return CWnd::FromHandle(::GetClipboardOwner()); } +_AFXWIN_INLINE CWnd* PASCAL CWnd::GetClipboardViewer() + { return CWnd::FromHandle(::GetClipboardViewer()); } +_AFXWIN_INLINE void CWnd::CreateCaret(CBitmap* pBitmap) + { ASSERT(::IsWindow(m_hWnd)); ::CreateCaret(m_hWnd, (HBITMAP)pBitmap->GetSafeHandle(), 0, 0); } +_AFXWIN_INLINE void CWnd::CreateSolidCaret(int nWidth, int nHeight) + { ASSERT(::IsWindow(m_hWnd)); ::CreateCaret(m_hWnd, (HBITMAP)0, nWidth, nHeight); } +_AFXWIN_INLINE void CWnd::CreateGrayCaret(int nWidth, int nHeight) + { ASSERT(::IsWindow(m_hWnd)); ::CreateCaret(m_hWnd, (HBITMAP)1, nWidth, nHeight); } +_AFXWIN_INLINE CPoint PASCAL CWnd::GetCaretPos() + { CPoint point; ::GetCaretPos((LPPOINT)&point); return point; } +_AFXWIN_INLINE void PASCAL CWnd::SetCaretPos(POINT point) + { ::SetCaretPos(point.x, point.y); } +_AFXWIN_INLINE void CWnd::HideCaret() + { ASSERT(::IsWindow(m_hWnd)); ::HideCaret(m_hWnd); } +_AFXWIN_INLINE void CWnd::ShowCaret() + { ASSERT(::IsWindow(m_hWnd)); ::ShowCaret(m_hWnd); } +_AFXWIN_INLINE BOOL CWnd::SetForegroundWindow() + { ASSERT(::IsWindow(m_hWnd)); return ::SetForegroundWindow(m_hWnd); } +_AFXWIN_INLINE CWnd* PASCAL CWnd::GetForegroundWindow() + { return CWnd::FromHandle(::GetForegroundWindow()); } + +#ifndef _MAC +_AFXWIN_INLINE BOOL CWnd::SendNotifyMessage(UINT message, WPARAM wParam, LPARAM lParam) + { ASSERT(::IsWindow(m_hWnd)); return ::SendNotifyMessage(m_hWnd, message, wParam, lParam); } +#endif + +// Win4 +_AFXWIN_INLINE HICON CWnd::SetIcon(HICON hIcon, BOOL bBigIcon) + { ASSERT(::IsWindow(m_hWnd)); return (HICON)::SendMessage(m_hWnd, WM_SETICON, bBigIcon, (LPARAM)hIcon); } +_AFXWIN_INLINE HICON CWnd::GetIcon(BOOL bBigIcon) const + { ASSERT(::IsWindow(m_hWnd)); return (HICON)::SendMessage(m_hWnd, WM_GETICON, bBigIcon, 0); } +_AFXWIN_INLINE void CWnd::Print(CDC* pDC, DWORD dwFlags) const + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_PRINT, (WPARAM)pDC->GetSafeHdc(), dwFlags); } +_AFXWIN_INLINE void CWnd::PrintClient(CDC* pDC, DWORD dwFlags) const + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_PRINTCLIENT, (WPARAM)pDC->GetSafeHdc(), dwFlags); } +#ifndef _MAC +_AFXWIN_INLINE BOOL CWnd::SetWindowContextHelpId(DWORD dwContextHelpId) + { ASSERT(::IsWindow(m_hWnd)); return ::SetWindowContextHelpId(m_hWnd, dwContextHelpId); } +_AFXWIN_INLINE DWORD CWnd::GetWindowContextHelpId() const + { ASSERT(::IsWindow(m_hWnd)); return ::GetWindowContextHelpId(m_hWnd); } +#endif + + +// Default message map implementations +_AFXWIN_INLINE void CWnd::OnActivateApp(BOOL, HTASK) + { Default(); } +_AFXWIN_INLINE void CWnd::OnActivate(UINT, CWnd*, BOOL) + { Default(); } +_AFXWIN_INLINE void CWnd::OnCancelMode() + { Default(); } +_AFXWIN_INLINE void CWnd::OnChildActivate() + { Default(); } +_AFXWIN_INLINE void CWnd::OnClose() + { Default(); } +_AFXWIN_INLINE void CWnd::OnContextMenu(CWnd*, CPoint) + { Default(); } +_AFXWIN_INLINE int CWnd::OnCreate(LPCREATESTRUCT) + { return (int)Default(); } +_AFXWIN_INLINE void CWnd::OnDestroy() + { Default(); } +_AFXWIN_INLINE void CWnd::OnEnable(BOOL) + { Default(); } +_AFXWIN_INLINE void CWnd::OnEndSession(BOOL) + { Default(); } +_AFXWIN_INLINE BOOL CWnd::OnEraseBkgnd(CDC*) + { return (BOOL)Default(); } +_AFXWIN_INLINE void CWnd::OnGetMinMaxInfo(MINMAXINFO*) + { Default(); } +_AFXWIN_INLINE void CWnd::OnIconEraseBkgnd(CDC*) + { Default(); } +_AFXWIN_INLINE void CWnd::OnKillFocus(CWnd*) + { Default(); } +_AFXWIN_INLINE LRESULT CWnd::OnMenuChar(UINT, UINT, CMenu*) + { return Default(); } +_AFXWIN_INLINE void CWnd::OnMenuSelect(UINT, UINT, HMENU) + { Default(); } +_AFXWIN_INLINE void CWnd::OnMove(int, int) + { Default(); } +_AFXWIN_INLINE void CWnd::OnPaint() + { Default(); } +_AFXWIN_INLINE HCURSOR CWnd::OnQueryDragIcon() + { return (HCURSOR)Default(); } +_AFXWIN_INLINE BOOL CWnd::OnQueryEndSession() + { return (BOOL)Default(); } +_AFXWIN_INLINE BOOL CWnd::OnQueryNewPalette() + { return (BOOL)Default(); } +_AFXWIN_INLINE BOOL CWnd::OnQueryOpen() + { return (BOOL)Default(); } +_AFXWIN_INLINE BOOL CWnd::OnSetCursor(CWnd*, UINT, UINT) + { return (BOOL)Default(); } +_AFXWIN_INLINE void CWnd::OnSetFocus(CWnd*) + { Default(); } +_AFXWIN_INLINE void CWnd::OnShowWindow(BOOL, UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnSize(UINT, int, int) + { Default(); } +_AFXWIN_INLINE void CWnd::OnTCard(UINT, DWORD) + { Default(); } +_AFXWIN_INLINE void CWnd::OnWindowPosChanging(WINDOWPOS*) + { Default(); } +_AFXWIN_INLINE void CWnd::OnWindowPosChanged(WINDOWPOS*) + { Default(); } +_AFXWIN_INLINE void CWnd::OnDropFiles(HDROP) + { Default(); } +_AFXWIN_INLINE void CWnd::OnPaletteIsChanging(CWnd*) + { Default(); } +_AFXWIN_INLINE BOOL CWnd::OnNcActivate(BOOL) + { return (BOOL)Default(); } +_AFXWIN_INLINE void CWnd::OnNcCalcSize(BOOL, NCCALCSIZE_PARAMS*) + { Default(); } +_AFXWIN_INLINE BOOL CWnd::OnNcCreate(LPCREATESTRUCT) + { return (BOOL)Default(); } +_AFXWIN_INLINE UINT CWnd::OnNcHitTest(CPoint) + { return (UINT)Default(); } +_AFXWIN_INLINE void CWnd::OnNcLButtonDblClk(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnNcLButtonDown(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnNcLButtonUp(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnNcMButtonDblClk(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnNcMButtonDown(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnNcMButtonUp(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnNcMouseMove(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnNcPaint() + { Default(); } +_AFXWIN_INLINE void CWnd::OnNcRButtonDblClk(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnNcRButtonDown(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnNcRButtonUp(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnSysChar(UINT, UINT, UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnSysCommand(UINT, LPARAM) + { Default(); } +_AFXWIN_INLINE void CWnd::OnSysDeadChar(UINT, UINT, UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnSysKeyDown(UINT, UINT, UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnSysKeyUp(UINT, UINT, UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnCompacting(UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnFontChange() + { Default(); } +_AFXWIN_INLINE void CWnd::OnPaletteChanged(CWnd*) + { Default(); } +_AFXWIN_INLINE void CWnd::OnSpoolerStatus(UINT, UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnTimeChange() + { Default(); } +_AFXWIN_INLINE void CWnd::OnChar(UINT, UINT, UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnDeadChar(UINT, UINT, UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnKeyDown(UINT, UINT, UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnKeyUp(UINT, UINT, UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnLButtonDblClk(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnLButtonDown(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnLButtonUp(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnMButtonDblClk(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnMButtonDown(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnMButtonUp(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE int CWnd::OnMouseActivate(CWnd*, UINT, UINT) + { return (int)Default(); } +_AFXWIN_INLINE void CWnd::OnMouseMove(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnRButtonDblClk(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnRButtonDown(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnRButtonUp(UINT, CPoint) + { Default(); } +_AFXWIN_INLINE void CWnd::OnTimer(UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnInitMenu(CMenu*) + { Default(); } +_AFXWIN_INLINE void CWnd::OnInitMenuPopup(CMenu*, UINT, BOOL) + { Default(); } +_AFXWIN_INLINE void CWnd::OnAskCbFormatName(UINT, LPTSTR) + { Default(); } +_AFXWIN_INLINE void CWnd::OnChangeCbChain(HWND, HWND) + { Default(); } +_AFXWIN_INLINE void CWnd::OnDestroyClipboard() + { Default(); } +_AFXWIN_INLINE void CWnd::OnDrawClipboard() + { Default(); } +_AFXWIN_INLINE void CWnd::OnHScrollClipboard(CWnd*, UINT, UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnPaintClipboard(CWnd*, HGLOBAL) + { Default(); } +_AFXWIN_INLINE void CWnd::OnRenderAllFormats() + { Default(); } +_AFXWIN_INLINE void CWnd::OnRenderFormat(UINT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnSizeClipboard(CWnd*, HGLOBAL) + { Default(); } +_AFXWIN_INLINE void CWnd::OnVScrollClipboard(CWnd*, UINT, UINT) + { Default(); } +_AFXWIN_INLINE UINT CWnd::OnGetDlgCode() + { return (UINT)Default(); } +_AFXWIN_INLINE void CWnd::OnMDIActivate(BOOL, CWnd*, CWnd*) + { Default(); } +_AFXWIN_INLINE void CWnd::OnEnterMenuLoop(BOOL) + { Default(); } +_AFXWIN_INLINE void CWnd::OnExitMenuLoop(BOOL) + { Default(); } +// Win4 support +_AFXWIN_INLINE void CWnd::OnStyleChanged(int, LPSTYLESTRUCT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnStyleChanging(int, LPSTYLESTRUCT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnSizing(UINT, LPRECT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnMoving(UINT, LPRECT) + { Default(); } +_AFXWIN_INLINE void CWnd::OnCaptureChanged(CWnd*) + { Default(); } +_AFXWIN_INLINE BOOL CWnd::OnDeviceChange(UINT, DWORD) + { return (BOOL)Default(); } + +// CWnd dialog data support +_AFXWIN_INLINE void CWnd::DoDataExchange(CDataExchange*) + { } // default does nothing + +// CWnd modality support +_AFXWIN_INLINE void CWnd::BeginModalState() + { ::EnableWindow(m_hWnd, FALSE); } +_AFXWIN_INLINE void CWnd::EndModalState() + { ::EnableWindow(m_hWnd, TRUE); } + +// CFrameWnd +_AFXWIN_INLINE void CFrameWnd::DelayUpdateFrameTitle() + { m_nIdleFlags |= idleTitle; } +_AFXWIN_INLINE void CFrameWnd::DelayRecalcLayout(BOOL bNotify) + { m_nIdleFlags |= (idleLayout | (bNotify ? idleNotify : 0)); }; +_AFXWIN_INLINE BOOL CFrameWnd::InModalState() const + { return m_cModalStack != 0; } +_AFXWIN_INLINE void CFrameWnd::AddControlBar(CControlBar *pBar) + { m_listControlBars.AddTail(pBar); } + +// CDialog +_AFXWIN_INLINE BOOL CDialog::Create(UINT nIDTemplate, CWnd* pParentWnd) + { return Create(MAKEINTRESOURCE(nIDTemplate), pParentWnd); } +_AFXWIN_INLINE void CDialog::MapDialogRect(LPRECT lpRect) const + { ASSERT(::IsWindow(m_hWnd)); ::MapDialogRect(m_hWnd, lpRect); } +_AFXWIN_INLINE void CDialog::SetHelpID(UINT nIDR) + { m_nIDHelp = nIDR; } +_AFXWIN_INLINE void CDialog::NextDlgCtrl() const + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_NEXTDLGCTL, 0, 0); } +_AFXWIN_INLINE void CDialog::PrevDlgCtrl() const + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_NEXTDLGCTL, 1, 0); } +_AFXWIN_INLINE void CDialog::GotoDlgCtrl(CWnd* pWndCtrl) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_NEXTDLGCTL, (WPARAM)pWndCtrl->m_hWnd, 1L); } +_AFXWIN_INLINE void CDialog::SetDefID(UINT nID) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, DM_SETDEFID, nID, 0); } +_AFXWIN_INLINE DWORD CDialog::GetDefID() const + { ASSERT(::IsWindow(m_hWnd)); return ::SendMessage(m_hWnd, DM_GETDEFID, 0, 0); } + +// Window control functions +_AFXWIN_INLINE CStatic::CStatic() + { } +_AFXWIN_INLINE HICON CStatic::SetIcon(HICON hIcon) + { ASSERT(::IsWindow(m_hWnd)); return (HICON)::SendMessage(m_hWnd, STM_SETICON, (WPARAM)hIcon, 0L); } +_AFXWIN_INLINE HICON CStatic::GetIcon() const + { ASSERT(::IsWindow(m_hWnd)); return (HICON)::SendMessage(m_hWnd, STM_GETICON, 0, 0L); } +#if (WINVER >= 0x400) +_AFXWIN_INLINE HENHMETAFILE CStatic::SetEnhMetaFile(HENHMETAFILE hMetaFile) + { ASSERT(::IsWindow(m_hWnd)); return (HENHMETAFILE)::SendMessage(m_hWnd, STM_SETIMAGE, IMAGE_ENHMETAFILE, (LPARAM)hMetaFile); } +_AFXWIN_INLINE HENHMETAFILE CStatic::GetEnhMetaFile() const + { ASSERT(::IsWindow(m_hWnd)); return (HENHMETAFILE)::SendMessage(m_hWnd, STM_GETIMAGE, IMAGE_ENHMETAFILE, 0L); } +_AFXWIN_INLINE HBITMAP CStatic::SetBitmap(HBITMAP hBitmap) + { ASSERT(::IsWindow(m_hWnd)); return (HBITMAP)::SendMessage(m_hWnd, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap); } +_AFXWIN_INLINE HBITMAP CStatic::GetBitmap() const + { ASSERT(::IsWindow(m_hWnd)); return (HBITMAP)::SendMessage(m_hWnd, STM_GETIMAGE, IMAGE_BITMAP, 0L); } +_AFXWIN_INLINE HCURSOR CStatic::SetCursor(HCURSOR hCursor) + { ASSERT(::IsWindow(m_hWnd)); return (HCURSOR)::SendMessage(m_hWnd, STM_SETIMAGE, IMAGE_CURSOR, (LPARAM)hCursor); } +_AFXWIN_INLINE HCURSOR CStatic::GetCursor() + { ASSERT(::IsWindow(m_hWnd)); return (HCURSOR)::SendMessage(m_hWnd, STM_GETIMAGE, IMAGE_CURSOR, 0L); } +#endif + +_AFXWIN_INLINE CButton::CButton() + { } +_AFXWIN_INLINE UINT CButton::GetState() const + { ASSERT(::IsWindow(m_hWnd)); return (UINT)::SendMessage(m_hWnd, BM_GETSTATE, 0, 0); } +_AFXWIN_INLINE void CButton::SetState(BOOL bHighlight) + { ::SendMessage(m_hWnd, BM_SETSTATE, bHighlight, 0); } +_AFXWIN_INLINE int CButton::GetCheck() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, BM_GETCHECK, 0, 0); } +_AFXWIN_INLINE void CButton::SetCheck(int nCheck) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, BM_SETCHECK, nCheck, 0); } +_AFXWIN_INLINE UINT CButton::GetButtonStyle() const + { ASSERT(::IsWindow(m_hWnd)); return (UINT)GetWindowLong(m_hWnd, GWL_STYLE) & 0xff; } +_AFXWIN_INLINE void CButton::SetButtonStyle(UINT nStyle, BOOL bRedraw) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, BM_SETSTYLE, nStyle, (LPARAM)bRedraw); } +// Win4 +#if (WINVER >= 0x400) +_AFXWIN_INLINE HICON CButton::SetIcon(HICON hIcon) + { ASSERT(::IsWindow(m_hWnd)); return (HICON)::SendMessage(m_hWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)hIcon); } +_AFXWIN_INLINE HICON CButton::GetIcon() const + { ASSERT(::IsWindow(m_hWnd)); return (HICON)::SendMessage(m_hWnd, BM_GETIMAGE, IMAGE_ICON, 0L); } +_AFXWIN_INLINE HBITMAP CButton::SetBitmap(HBITMAP hBitmap) + { ASSERT(::IsWindow(m_hWnd)); return (HBITMAP)::SendMessage(m_hWnd, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap); } +_AFXWIN_INLINE HBITMAP CButton::GetBitmap() const + { ASSERT(::IsWindow(m_hWnd)); return (HBITMAP)::SendMessage(m_hWnd, BM_GETIMAGE, IMAGE_BITMAP, 0L); } +_AFXWIN_INLINE HCURSOR CButton::SetCursor(HCURSOR hCursor) + { ASSERT(::IsWindow(m_hWnd)); return (HCURSOR)::SendMessage(m_hWnd, BM_SETIMAGE, IMAGE_CURSOR, (LPARAM)hCursor); } +_AFXWIN_INLINE HCURSOR CButton::GetCursor() + { ASSERT(::IsWindow(m_hWnd)); return (HCURSOR)::SendMessage(m_hWnd, BM_GETIMAGE, IMAGE_CURSOR, 0L); } +#endif + +_AFXWIN_INLINE CListBox::CListBox() + { } +_AFXWIN_INLINE int CListBox::GetCount() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETCOUNT, 0, 0); } +_AFXWIN_INLINE int CListBox::GetCurSel() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETCURSEL, 0, 0); } +_AFXWIN_INLINE int CListBox::SetCurSel(int nSelect) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_SETCURSEL, nSelect, 0); } +_AFXWIN_INLINE int CListBox::GetHorizontalExtent() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETHORIZONTALEXTENT, + 0, 0); } +_AFXWIN_INLINE void CListBox::SetHorizontalExtent(int cxExtent) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, LB_SETHORIZONTALEXTENT, cxExtent, 0); } +_AFXWIN_INLINE int CListBox::GetSelCount() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETSELCOUNT, 0, 0); } +_AFXWIN_INLINE int CListBox::GetSelItems(int nMaxItems, LPINT rgIndex) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETSELITEMS, nMaxItems, (LPARAM)rgIndex); } +_AFXWIN_INLINE int CListBox::GetTopIndex() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETTOPINDEX, 0, 0); } +_AFXWIN_INLINE int CListBox::SetTopIndex(int nIndex) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_SETTOPINDEX, nIndex, 0);} +_AFXWIN_INLINE DWORD CListBox::GetItemData(int nIndex) const + { ASSERT(::IsWindow(m_hWnd)); return ::SendMessage(m_hWnd, LB_GETITEMDATA, nIndex, 0); } +_AFXWIN_INLINE int CListBox::SetItemData(int nIndex, DWORD dwItemData) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_SETITEMDATA, nIndex, (LPARAM)dwItemData); } +_AFXWIN_INLINE void* CListBox::GetItemDataPtr(int nIndex) const + { ASSERT(::IsWindow(m_hWnd)); return (LPVOID)::SendMessage(m_hWnd, LB_GETITEMDATA, nIndex, 0); } +_AFXWIN_INLINE int CListBox::SetItemDataPtr(int nIndex, void* pData) + { ASSERT(::IsWindow(m_hWnd)); return SetItemData(nIndex, (DWORD)(LPVOID)pData); } +_AFXWIN_INLINE int CListBox::GetItemRect(int nIndex, LPRECT lpRect) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETITEMRECT, nIndex, (LPARAM)lpRect); } +_AFXWIN_INLINE int CListBox::GetSel(int nIndex) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETSEL, nIndex, 0); } +_AFXWIN_INLINE int CListBox::SetSel(int nIndex, BOOL bSelect) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_SETSEL, bSelect, nIndex); } +_AFXWIN_INLINE int CListBox::GetText(int nIndex, LPTSTR lpszBuffer) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETTEXT, nIndex, (LPARAM)lpszBuffer); } +_AFXWIN_INLINE int CListBox::GetTextLen(int nIndex) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETTEXTLEN, nIndex, 0); } +_AFXWIN_INLINE void CListBox::SetColumnWidth(int cxWidth) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, LB_SETCOLUMNWIDTH, cxWidth, 0); } +_AFXWIN_INLINE BOOL CListBox::SetTabStops(int nTabStops, LPINT rgTabStops) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, LB_SETTABSTOPS, nTabStops, (LPARAM)rgTabStops); } +_AFXWIN_INLINE void CListBox::SetTabStops() + { ASSERT(::IsWindow(m_hWnd)); VERIFY(::SendMessage(m_hWnd, LB_SETTABSTOPS, 0, 0)); } +_AFXWIN_INLINE BOOL CListBox::SetTabStops(const int& cxEachStop) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, LB_SETTABSTOPS, 1, (LPARAM)(LPINT)&cxEachStop); } +_AFXWIN_INLINE int CListBox::SetItemHeight(int nIndex, UINT cyItemHeight) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_SETITEMHEIGHT, nIndex, MAKELONG(cyItemHeight, 0)); } +_AFXWIN_INLINE int CListBox::GetItemHeight(int nIndex) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETITEMHEIGHT, nIndex, 0L); } +_AFXWIN_INLINE int CListBox::FindStringExact(int nIndexStart, LPCTSTR lpszFind) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_FINDSTRINGEXACT, nIndexStart, (LPARAM)lpszFind); } +_AFXWIN_INLINE int CListBox::GetCaretIndex() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETCARETINDEX, 0, 0L); } +_AFXWIN_INLINE int CListBox::SetCaretIndex(int nIndex, BOOL bScroll) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_SETCARETINDEX, nIndex, MAKELONG(bScroll, 0)); } +_AFXWIN_INLINE int CListBox::AddString(LPCTSTR lpszItem) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_ADDSTRING, 0, (LPARAM)lpszItem); } +_AFXWIN_INLINE int CListBox::DeleteString(UINT nIndex) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_DELETESTRING, nIndex, 0); } +_AFXWIN_INLINE int CListBox::InsertString(int nIndex, LPCTSTR lpszItem) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_INSERTSTRING, nIndex, (LPARAM)lpszItem); } +_AFXWIN_INLINE void CListBox::ResetContent() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, LB_RESETCONTENT, 0, 0); } +_AFXWIN_INLINE int CListBox::Dir(UINT attr, LPCTSTR lpszWildCard) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_DIR, attr, (LPARAM)lpszWildCard); } +_AFXWIN_INLINE int CListBox::FindString(int nStartAfter, LPCTSTR lpszItem) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_FINDSTRING, + nStartAfter, (LPARAM)lpszItem); } +_AFXWIN_INLINE int CListBox::SelectString(int nStartAfter, LPCTSTR lpszItem) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_SELECTSTRING, + nStartAfter, (LPARAM)lpszItem); } +_AFXWIN_INLINE int CListBox::SelItemRange(BOOL bSelect, int nFirstItem, int nLastItem) + { ASSERT(::IsWindow(m_hWnd)); return bSelect ? + (int)::SendMessage(m_hWnd, LB_SELITEMRANGEEX, nFirstItem, nLastItem) : + (int)::SendMessage(m_hWnd, LB_SELITEMRANGEEX, nLastItem, nFirstItem); } +_AFXWIN_INLINE void CListBox::SetAnchorIndex(int nIndex) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, LB_SETANCHORINDEX, nIndex, 0); } +_AFXWIN_INLINE int CListBox::GetAnchorIndex() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_GETANCHORINDEX, 0, 0); } +_AFXWIN_INLINE LCID CListBox::GetLocale() const + { ASSERT(::IsWindow(m_hWnd)); return (LCID)::SendMessage(m_hWnd, LB_GETLOCALE, 0, 0); } +_AFXWIN_INLINE LCID CListBox::SetLocale(LCID nNewLocale) + { ASSERT(::IsWindow(m_hWnd)); return (LCID)::SendMessage(m_hWnd, LB_SETLOCALE, (WPARAM)nNewLocale, 0); } +#if (WINVER >= 0x400) +_AFXWIN_INLINE int CListBox::InitStorage(int nItems, UINT nBytes) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_INITSTORAGE, (WPARAM)nItems, nBytes); } +#endif + +_AFXWIN_INLINE CCheckListBox::CCheckListBox() + { m_cyText = 0; m_nStyle = 0; } +_AFXWIN_INLINE UINT CCheckListBox::GetCheckStyle() + { return m_nStyle; } + +_AFXWIN_INLINE CComboBox::CComboBox() + { } +_AFXWIN_INLINE int CComboBox::GetCount() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_GETCOUNT, 0, 0); } +_AFXWIN_INLINE int CComboBox::GetCurSel() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_GETCURSEL, 0, 0); } +_AFXWIN_INLINE int CComboBox::SetCurSel(int nSelect) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_SETCURSEL, nSelect, 0); } +_AFXWIN_INLINE DWORD CComboBox::GetEditSel() const + { ASSERT(::IsWindow(m_hWnd)); return ::SendMessage(m_hWnd, CB_GETEDITSEL, 0, 0); } +_AFXWIN_INLINE BOOL CComboBox::LimitText(int nMaxChars) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, CB_LIMITTEXT, nMaxChars, 0); } +_AFXWIN_INLINE BOOL CComboBox::SetEditSel(int nStartChar, int nEndChar) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, CB_SETEDITSEL, 0, MAKELONG(nStartChar, nEndChar)); } +_AFXWIN_INLINE DWORD CComboBox::GetItemData(int nIndex) const + { ASSERT(::IsWindow(m_hWnd)); return ::SendMessage(m_hWnd, CB_GETITEMDATA, nIndex, 0); } +_AFXWIN_INLINE int CComboBox::SetItemData(int nIndex, DWORD dwItemData) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_SETITEMDATA, nIndex, (LPARAM)dwItemData); } +_AFXWIN_INLINE void* CComboBox::GetItemDataPtr(int nIndex) const + { ASSERT(::IsWindow(m_hWnd)); return (LPVOID)GetItemData(nIndex); } +_AFXWIN_INLINE int CComboBox::SetItemDataPtr(int nIndex, void* pData) + { ASSERT(::IsWindow(m_hWnd)); return SetItemData(nIndex, (DWORD)(LPVOID)pData); } +_AFXWIN_INLINE int CComboBox::GetLBText(int nIndex, LPTSTR lpszText) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_GETLBTEXT, nIndex, (LPARAM)lpszText); } +_AFXWIN_INLINE int CComboBox::GetLBTextLen(int nIndex) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_GETLBTEXTLEN, nIndex, 0); } +_AFXWIN_INLINE void CComboBox::ShowDropDown(BOOL bShowIt) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, CB_SHOWDROPDOWN, bShowIt, 0); } +_AFXWIN_INLINE int CComboBox::AddString(LPCTSTR lpszString) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_ADDSTRING, 0, (LPARAM)lpszString); } +_AFXWIN_INLINE int CComboBox::DeleteString(UINT nIndex) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_DELETESTRING, nIndex, 0);} +_AFXWIN_INLINE int CComboBox::InsertString(int nIndex, LPCTSTR lpszString) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_INSERTSTRING, nIndex, (LPARAM)lpszString); } +_AFXWIN_INLINE void CComboBox::ResetContent() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, CB_RESETCONTENT, 0, 0); } +_AFXWIN_INLINE int CComboBox::Dir(UINT attr, LPCTSTR lpszWildCard) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_DIR, attr, (LPARAM)lpszWildCard); } +_AFXWIN_INLINE int CComboBox::FindString(int nStartAfter, LPCTSTR lpszString) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_FINDSTRING, nStartAfter, + (LPARAM)lpszString); } +_AFXWIN_INLINE int CComboBox::SelectString(int nStartAfter, LPCTSTR lpszString) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_SELECTSTRING, + nStartAfter, (LPARAM)lpszString); } +_AFXWIN_INLINE void CComboBox::Clear() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_CLEAR, 0, 0); } +_AFXWIN_INLINE void CComboBox::Copy() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_COPY, 0, 0); } +_AFXWIN_INLINE void CComboBox::Cut() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_CUT, 0, 0); } +_AFXWIN_INLINE void CComboBox::Paste() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_PASTE, 0, 0); } +_AFXWIN_INLINE int CComboBox::SetItemHeight(int nIndex, UINT cyItemHeight) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_SETITEMHEIGHT, nIndex, MAKELONG(cyItemHeight, 0)); } +_AFXWIN_INLINE int CComboBox::GetItemHeight(int nIndex) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_GETITEMHEIGHT, nIndex, 0L); } +_AFXWIN_INLINE int CComboBox::FindStringExact(int nIndexStart, LPCTSTR lpszFind) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_FINDSTRINGEXACT, nIndexStart, (LPARAM)lpszFind); } +_AFXWIN_INLINE int CComboBox::SetExtendedUI(BOOL bExtended ) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_SETEXTENDEDUI, bExtended, 0L); } +_AFXWIN_INLINE BOOL CComboBox::GetExtendedUI() const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, CB_GETEXTENDEDUI, 0, 0L); } +_AFXWIN_INLINE void CComboBox::GetDroppedControlRect(LPRECT lprect) const + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, CB_GETDROPPEDCONTROLRECT, 0, (DWORD)lprect); } +_AFXWIN_INLINE BOOL CComboBox::GetDroppedState() const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, CB_GETDROPPEDSTATE, 0, 0L); } +_AFXWIN_INLINE LCID CComboBox::GetLocale() const + { ASSERT(::IsWindow(m_hWnd)); return (LCID)::SendMessage(m_hWnd, CB_GETLOCALE, 0, 0); } +_AFXWIN_INLINE LCID CComboBox::SetLocale(LCID nNewLocale) + { ASSERT(::IsWindow(m_hWnd)); return (LCID)::SendMessage(m_hWnd, CB_SETLOCALE, (WPARAM)nNewLocale, 0); } +#if (WINVER >= 0x400) +_AFXWIN_INLINE int CComboBox::GetTopIndex() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_GETTOPINDEX, 0, 0); } +_AFXWIN_INLINE int CComboBox::SetTopIndex(int nIndex) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_SETTOPINDEX, nIndex, 0); } +_AFXWIN_INLINE int CComboBox::InitStorage(int nItems, UINT nBytes) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_INITSTORAGE, (WPARAM)nItems, nBytes); } +_AFXWIN_INLINE void CComboBox::SetHorizontalExtent(UINT nExtent) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, CB_SETHORIZONTALEXTENT, nExtent, 0); } +_AFXWIN_INLINE UINT CComboBox::GetHorizontalExtent() const + { ASSERT(::IsWindow(m_hWnd)); return (UINT)::SendMessage(m_hWnd, CB_GETHORIZONTALEXTENT, 0, 0); } +_AFXWIN_INLINE int CComboBox::SetDroppedWidth(UINT nWidth) + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_SETDROPPEDWIDTH, nWidth, 0); } +_AFXWIN_INLINE int CComboBox::GetDroppedWidth() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_GETDROPPEDWIDTH, 0, 0); } +#endif +_AFXWIN_INLINE CEdit::CEdit() + { } +_AFXWIN_INLINE BOOL CEdit::CanUndo() const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_CANUNDO, 0, 0); } +_AFXWIN_INLINE int CEdit::GetLineCount() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, EM_GETLINECOUNT, 0, 0); } +_AFXWIN_INLINE BOOL CEdit::GetModify() const + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_GETMODIFY, 0, 0); } +_AFXWIN_INLINE void CEdit::SetModify(BOOL bModified) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_SETMODIFY, bModified, 0); } +_AFXWIN_INLINE void CEdit::GetRect(LPRECT lpRect) const + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_GETRECT, 0, (LPARAM)lpRect); } +_AFXWIN_INLINE void CEdit::GetSel(int& nStartChar, int& nEndChar) const + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_GETSEL, (WPARAM)&nStartChar,(LPARAM)&nEndChar); } +_AFXWIN_INLINE DWORD CEdit::GetSel() const + { ASSERT(::IsWindow(m_hWnd)); return ::SendMessage(m_hWnd, EM_GETSEL, 0, 0); } +_AFXWIN_INLINE HLOCAL CEdit::GetHandle() const + { ASSERT(::IsWindow(m_hWnd)); return (HLOCAL)::SendMessage(m_hWnd, EM_GETHANDLE, 0, 0); } +_AFXWIN_INLINE void CEdit::SetHandle(HLOCAL hBuffer) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_SETHANDLE, (WPARAM)hBuffer, 0); } +_AFXWIN_INLINE int CEdit::GetLine(int nIndex, LPTSTR lpszBuffer) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, EM_GETLINE, nIndex, (LPARAM)lpszBuffer); } +_AFXWIN_INLINE int CEdit::GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const + { + ASSERT(::IsWindow(m_hWnd)); + *(LPWORD)lpszBuffer = (WORD)nMaxLength; + return (int)::SendMessage(m_hWnd, EM_GETLINE, nIndex, (LPARAM)lpszBuffer); + } +_AFXWIN_INLINE void CEdit::EmptyUndoBuffer() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_EMPTYUNDOBUFFER, 0, 0); } +_AFXWIN_INLINE BOOL CEdit::FmtLines(BOOL bAddEOL) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_FMTLINES, bAddEOL, 0); } +_AFXWIN_INLINE void CEdit::LimitText(int nChars) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_LIMITTEXT, nChars, 0); } +_AFXWIN_INLINE int CEdit::LineFromChar(int nIndex) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, EM_LINEFROMCHAR, nIndex, 0); } +_AFXWIN_INLINE int CEdit::LineIndex(int nLine) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, EM_LINEINDEX, nLine, 0); } +_AFXWIN_INLINE int CEdit::LineLength(int nLine) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, EM_LINELENGTH, nLine, 0); } +_AFXWIN_INLINE void CEdit::LineScroll(int nLines, int nChars) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_LINESCROLL, nChars, nLines); } +_AFXWIN_INLINE void CEdit::ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_REPLACESEL, (WPARAM) bCanUndo, (LPARAM)lpszNewText); } +_AFXWIN_INLINE void CEdit::SetPasswordChar(TCHAR ch) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_SETPASSWORDCHAR, ch, 0); } +_AFXWIN_INLINE void CEdit::SetRect(LPCRECT lpRect) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_SETRECT, 0, (LPARAM)lpRect); } +_AFXWIN_INLINE void CEdit::SetRectNP(LPCRECT lpRect) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_SETRECTNP, 0, (LPARAM)lpRect); } +_AFXWIN_INLINE void CEdit::SetSel(DWORD dwSelection, BOOL bNoScroll) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_SETSEL, + LOWORD(dwSelection), HIWORD(dwSelection)); + if (!bNoScroll) + ::SendMessage(m_hWnd, EM_SCROLLCARET, 0, 0); } +_AFXWIN_INLINE void CEdit::SetSel(int nStartChar, int nEndChar, BOOL bNoScroll) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_SETSEL, nStartChar, nEndChar); + if (!bNoScroll) + ::SendMessage(m_hWnd, EM_SCROLLCARET, 0, 0); } +#ifndef _MAC +_AFXWIN_INLINE BOOL CEdit::SetTabStops(int nTabStops, LPINT rgTabStops) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_SETTABSTOPS, nTabStops, + (LPARAM)rgTabStops); } +_AFXWIN_INLINE void CEdit::SetTabStops() + { ASSERT(::IsWindow(m_hWnd)); VERIFY(::SendMessage(m_hWnd, EM_SETTABSTOPS, 0, 0)); } +_AFXWIN_INLINE BOOL CEdit::SetTabStops(const int& cxEachStop) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_SETTABSTOPS, + 1, (LPARAM)(LPINT)&cxEachStop); } +#endif +_AFXWIN_INLINE BOOL CEdit::Undo() + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_UNDO, 0, 0); } +_AFXWIN_INLINE void CEdit::Clear() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_CLEAR, 0, 0); } +_AFXWIN_INLINE void CEdit::Copy() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_COPY, 0, 0); } +_AFXWIN_INLINE void CEdit::Cut() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_CUT, 0, 0); } +_AFXWIN_INLINE void CEdit::Paste() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_PASTE, 0, 0); } +_AFXWIN_INLINE BOOL CEdit::SetReadOnly(BOOL bReadOnly ) + { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, EM_SETREADONLY, bReadOnly, 0L); } +_AFXWIN_INLINE int CEdit::GetFirstVisibleLine() const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, EM_GETFIRSTVISIBLELINE, 0, 0L); } +_AFXWIN_INLINE TCHAR CEdit::GetPasswordChar() const + { ASSERT(::IsWindow(m_hWnd)); return (TCHAR)::SendMessage(m_hWnd, EM_GETPASSWORDCHAR, 0, 0L); } +#if (WINVER >= 0x400) +_AFXWIN_INLINE void CEdit::SetMargins(UINT nLeft, UINT nRight) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_SETMARGINS, EC_LEFTMARGIN|EC_RIGHTMARGIN, MAKELONG(nLeft, nRight)); } +_AFXWIN_INLINE DWORD CEdit::GetMargins() const + { ASSERT(::IsWindow(m_hWnd)); return (DWORD)::SendMessage(m_hWnd, EM_GETMARGINS, 0, 0); } +_AFXWIN_INLINE void CEdit::SetLimitText(UINT nMax) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, EM_SETLIMITTEXT, nMax, 0); } +_AFXWIN_INLINE UINT CEdit::GetLimitText() const + { ASSERT(::IsWindow(m_hWnd)); return (UINT)::SendMessage(m_hWnd, EM_GETLIMITTEXT, 0, 0); } +_AFXWIN_INLINE CPoint CEdit::PosFromChar(UINT nChar) const + { ASSERT(::IsWindow(m_hWnd)); return CPoint( (DWORD)::SendMessage(m_hWnd, EM_POSFROMCHAR, nChar, 0)); } +_AFXWIN_INLINE int CEdit::CharFromPos(CPoint pt) const + { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, EM_CHARFROMPOS, 0, MAKELPARAM(pt.x, pt.y)); } +#endif + +_AFXWIN_INLINE CScrollBar::CScrollBar() + { } +_AFXWIN_INLINE int CScrollBar::GetScrollPos() const + { ASSERT(::IsWindow(m_hWnd)); return ::GetScrollPos(m_hWnd, SB_CTL); } +_AFXWIN_INLINE int CScrollBar::SetScrollPos(int nPos, BOOL bRedraw) + { ASSERT(::IsWindow(m_hWnd)); return ::SetScrollPos(m_hWnd, SB_CTL, nPos, bRedraw); } +_AFXWIN_INLINE void CScrollBar::GetScrollRange(LPINT lpMinPos, LPINT lpMaxPos) const + { ASSERT(::IsWindow(m_hWnd)); ::GetScrollRange(m_hWnd, SB_CTL, lpMinPos, lpMaxPos); } +_AFXWIN_INLINE void CScrollBar::SetScrollRange(int nMinPos, int nMaxPos, BOOL bRedraw) + { ASSERT(::IsWindow(m_hWnd)); ::SetScrollRange(m_hWnd, SB_CTL, nMinPos, nMaxPos, bRedraw); } +_AFXWIN_INLINE void CScrollBar::ShowScrollBar(BOOL bShow) + { ASSERT(::IsWindow(m_hWnd)); ::ShowScrollBar(m_hWnd, SB_CTL, bShow); } +_AFXWIN_INLINE BOOL CScrollBar::EnableScrollBar(UINT nArrowFlags) + { ASSERT(::IsWindow(m_hWnd)); return ::EnableScrollBar(m_hWnd, SB_CTL, nArrowFlags); } +_AFXWIN_INLINE BOOL CScrollBar::SetScrollInfo(LPSCROLLINFO lpScrollInfo, BOOL bRedraw) + { return CWnd::SetScrollInfo(SB_CTL, lpScrollInfo, bRedraw); } +_AFXWIN_INLINE BOOL CScrollBar::GetScrollInfo(LPSCROLLINFO lpScrollInfo, UINT nMask) + { return CWnd::GetScrollInfo(SB_CTL, lpScrollInfo, nMask); } +_AFXWIN_INLINE int CScrollBar::GetScrollLimit() + { return CWnd::GetScrollLimit(SB_CTL); } + + +// MDI functions +_AFXWIN_INLINE void CMDIFrameWnd::MDIActivate(CWnd* pWndActivate) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWndMDIClient, WM_MDIACTIVATE, + (WPARAM)pWndActivate->m_hWnd, 0); } +_AFXWIN_INLINE void CMDIFrameWnd::MDIIconArrange() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWndMDIClient, WM_MDIICONARRANGE, 0, 0); } +_AFXWIN_INLINE void CMDIFrameWnd::MDIMaximize(CWnd* pWnd) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWndMDIClient, WM_MDIMAXIMIZE, (WPARAM)pWnd->m_hWnd, 0); } +_AFXWIN_INLINE void CMDIFrameWnd::MDINext() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWndMDIClient, WM_MDINEXT, 0, 0); } +_AFXWIN_INLINE void CMDIFrameWnd::MDIRestore(CWnd* pWnd) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWndMDIClient, WM_MDIRESTORE, (WPARAM)pWnd->m_hWnd, 0); } +_AFXWIN_INLINE CMenu* CMDIFrameWnd::MDISetMenu(CMenu* pFrameMenu, CMenu* pWindowMenu) + { ASSERT(::IsWindow(m_hWnd)); return CMenu::FromHandle((HMENU)::SendMessage( + m_hWndMDIClient, WM_MDISETMENU, (WPARAM)pFrameMenu->GetSafeHmenu(), + (LPARAM)pWindowMenu->GetSafeHmenu())); } +_AFXWIN_INLINE void CMDIFrameWnd::MDITile() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWndMDIClient, WM_MDITILE, 0, 0); } +_AFXWIN_INLINE void CMDIFrameWnd::MDICascade() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWndMDIClient, WM_MDICASCADE, 0, 0); } + +_AFXWIN_INLINE void CMDIFrameWnd::MDICascade(int nType) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWndMDIClient, WM_MDICASCADE, nType, 0); } +_AFXWIN_INLINE void CMDIFrameWnd::MDITile(int nType) + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWndMDIClient, WM_MDITILE, nType, 0); } +_AFXWIN_INLINE void CMDIChildWnd::MDIDestroy() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(GetParent()->m_hWnd, WM_MDIDESTROY, (WPARAM)m_hWnd, 0L); } +_AFXWIN_INLINE void CMDIChildWnd::MDIActivate() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(GetParent()->m_hWnd, WM_MDIACTIVATE, (WPARAM)m_hWnd, 0L); } +_AFXWIN_INLINE void CMDIChildWnd::MDIMaximize() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(GetParent()->m_hWnd, WM_MDIMAXIMIZE, (WPARAM)m_hWnd, 0L); } +_AFXWIN_INLINE void CMDIChildWnd::MDIRestore() + { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(GetParent()->m_hWnd, WM_MDIRESTORE, (WPARAM)m_hWnd, 0L); } + +// CView +_AFXWIN_INLINE CDocument* CView::GetDocument() const + { ASSERT(this != NULL); return m_pDocument; } +_AFXWIN_INLINE CSize CScrollView::GetTotalSize() const + { ASSERT(this != NULL); return m_totalLog; } + +// CDocument +_AFXWIN_INLINE const CString& CDocument::GetTitle() const + { ASSERT(this != NULL); return m_strTitle; } +_AFXWIN_INLINE const CString& CDocument::GetPathName() const + { ASSERT(this != NULL); return m_strPathName; } +_AFXWIN_INLINE CDocTemplate* CDocument::GetDocTemplate() const + { ASSERT(this != NULL); return m_pDocTemplate; } +_AFXWIN_INLINE BOOL CDocument::IsModified() + { ASSERT(this != NULL); return m_bModified; } +_AFXWIN_INLINE void CDocument::SetModifiedFlag(BOOL bModified) + { ASSERT(this != NULL); m_bModified = bModified; } + +// CWinThread +_AFXWIN_INLINE CWinThread::operator HANDLE() const + { return this == NULL ? NULL : m_hThread; } +_AFXWIN_INLINE BOOL CWinThread::SetThreadPriority(int nPriority) + { ASSERT(m_hThread != NULL); return ::SetThreadPriority(m_hThread, nPriority); } +_AFXWIN_INLINE int CWinThread::GetThreadPriority() + { ASSERT(m_hThread != NULL); return ::GetThreadPriority(m_hThread); } +_AFXWIN_INLINE DWORD CWinThread::ResumeThread() + { ASSERT(m_hThread != NULL); return ::ResumeThread(m_hThread); } +_AFXWIN_INLINE DWORD CWinThread::SuspendThread() + { ASSERT(m_hThread != NULL); return ::SuspendThread(m_hThread); } +_AFXWIN_INLINE BOOL CWinThread::PostThreadMessage(UINT message, WPARAM wParam, LPARAM lParam) + { ASSERT(m_hThread != NULL); return ::PostThreadMessage(m_nThreadID, message, wParam, lParam); } + +// CWinApp +#ifdef _MAC +#if !defined(_USRDLL) +_AFXWIN_INLINE BOOL CWinApp::Enable3dControls() + { return FALSE; } +#ifndef _AFXDLL +_AFXWIN_INLINE BOOL CWinApp::Enable3dControlsStatic() + { return FALSE; } +#endif +#endif +#endif +_AFXWIN_INLINE HCURSOR CWinApp::LoadCursor(LPCTSTR lpszResourceName) const + { return ::LoadCursor(AfxFindResourceHandle(lpszResourceName, + RT_GROUP_CURSOR), lpszResourceName); } +_AFXWIN_INLINE HCURSOR CWinApp::LoadCursor(UINT nIDResource) const + { return ::LoadCursor(AfxFindResourceHandle(MAKEINTRESOURCE(nIDResource), + RT_GROUP_CURSOR), MAKEINTRESOURCE(nIDResource)); } +_AFXWIN_INLINE HCURSOR CWinApp::LoadStandardCursor(LPCTSTR lpszCursorName) const + { return ::LoadCursor(NULL, lpszCursorName); } +_AFXWIN_INLINE HCURSOR CWinApp::LoadOEMCursor(UINT nIDCursor) const + { return ::LoadCursor(NULL, MAKEINTRESOURCE(nIDCursor)); } +_AFXWIN_INLINE HICON CWinApp::LoadIcon(LPCTSTR lpszResourceName) const + { return ::LoadIcon(AfxFindResourceHandle(lpszResourceName, + RT_GROUP_ICON), lpszResourceName); } +_AFXWIN_INLINE HICON CWinApp::LoadIcon(UINT nIDResource) const + { return ::LoadIcon(AfxFindResourceHandle(MAKEINTRESOURCE(nIDResource), + RT_GROUP_ICON), MAKEINTRESOURCE(nIDResource)); } +_AFXWIN_INLINE HICON CWinApp::LoadStandardIcon(LPCTSTR lpszIconName) const + { return ::LoadIcon(NULL, lpszIconName); } +_AFXWIN_INLINE HICON CWinApp::LoadOEMIcon(UINT nIDIcon) const + { return ::LoadIcon(NULL, MAKEINTRESOURCE(nIDIcon)); } +#ifdef _MAC +_AFXWIN_INLINE void CWinApp::EnableShellOpen() + { } +_AFXWIN_INLINE void CWinApp::RegisterShellFileTypes(BOOL) + { } +_AFXWIN_INLINE void CWinApp::RegisterShellFileTypesCompat() + { } +_AFXWIN_INLINE void CDocManager::RegisterShellFileTypes(BOOL) + { } +#endif + +_AFXWIN_INLINE CWaitCursor::CWaitCursor() + { AfxGetApp()->BeginWaitCursor(); } +_AFXWIN_INLINE CWaitCursor::~CWaitCursor() + { AfxGetApp()->EndWaitCursor(); } +_AFXWIN_INLINE void CWaitCursor::Restore() + { AfxGetApp()->RestoreWaitCursor(); } + +///////////////////////////////////////////////////////////////////////////// +// Obsolete and non-portable + +#ifndef _MAC +_AFXWIN_INLINE void CWnd::CloseWindow() + { ASSERT(::IsWindow(m_hWnd)); ::CloseWindow(m_hWnd); } +_AFXWIN_INLINE BOOL CWnd::OpenIcon() + { ASSERT(::IsWindow(m_hWnd)); return ::OpenIcon(m_hWnd); } +#endif + +///////////////////////////////////////////////////////////////////////////// + +#endif //_AFXWIN_INLINE diff --git a/public/sdk/inc/mfc42/daogetrw.h b/public/sdk/inc/mfc42/daogetrw.h new file mode 100644 index 000000000..50f0ed369 --- /dev/null +++ b/public/sdk/inc/mfc42/daogetrw.h @@ -0,0 +1,143 @@ +/************************************************************************ +** D A O G E T R W . H * +** * +** GetRows interface * +** * +** Warning: The interface defined in this file is for internal use by * +** the Microsoft Foundation Classes and the dbdao C++ classes. * +** Future releases of DAO may not be completely compatible with this * +** implementation. However, if you write to the MFC or dbdao * +** classes that use this interface, those classes will continue to * +** be compatible even if this underlying interface changes. * +** * +************************************************************************* +** Copyright (C) 1995 by Microsoft Corporation * +** All Rights Reserved * +************************************************************************/ + +#if !defined (_DAOGETRW_H_) +#define _DAOGETRW_H_ + + +/* + Enumerations +*/ +typedef enum + { + DAOCOLKIND_IND = 0, + DAOCOLKIND_STR, + DAOCOLKIND_WSTR + } DAOCOLKIND; + +typedef enum + { + DAO_I2 = 0, + DAO_I4, + DAO_R4, + DAO_R8, + DAO_CURRENCY, + DAO_DATE, + DAO_BOOL, + DAO_BSTR, + DAO_LPSTR, + DAO_LPWSTR, + DAO_BLOB, + DAO_BYTES, + DAO_CHAR, + DAO_WCHAR, + DAO_ANYVARIANT, + DAO_BOOKMARK, + DAO_BYTE, + DAO_GUID, + DAO_DATATYPEMAX + } DAODATATYPE; + +/* + Macros +*/ +#define DAO_NOINDICATOR 0xffffffff +#define DAO_NULL 0xffffffff +#define DAO_CANTCOERCE 0xfffffffc +#define DAO_NOMAXLENGTH 0x00000000 + +#define DAOROWFETCH_CALLEEALLOCATES 0x00000001 +#define DAOROWFETCH_DONTADVANCE 0x00000002 +#define DAOROWFETCH_FORCEREFRESH 0x00000004 +#define DAOROWFETCH_BINDABSOLUTE 0x00000008 + +#define DAOBINDING_DIRECT 0x00000001 +#define DAOBINDING_VARIANT 0x00000002 +#define DAOBINDING_CALLBACK 0x00000004 + +/* + Structures +*/ +typedef struct + { + DWORD dwKind; + union + { + LONG ind; + LPCSTR lpstr; + LPCWSTR lpwstr; + }; + } DAOCOLUMNID; +typedef DAOCOLUMNID *LPDAOCOLUMNID; + +// Callback for binding +EXTERN_C typedef HRESULT (STDAPICALLTYPE *LPDAOBINDFUNC)(ULONG cb, DWORD dwUser, LPVOID *ppData); +#define DAOBINDINGFUNC(f) STDAPI f (ULONG cb, DWORD dwUser, LPVOID *ppData) + +typedef struct + { + DAOCOLUMNID columnID; + ULONG cbDataOffset; + ULONG cbMaxLen; + ULONG cbInfoOffset; + DWORD dwBinding; + DWORD dwDataType; + DWORD dwUser; + } DAOCOLUMNBINDING; +typedef DAOCOLUMNBINDING *LPDAOCOLUMNBINDING; + +typedef struct + { + ULONG cRowsRequested; + DWORD dwFlags; + LPVOID pData; + LPVOID pVarData; + ULONG cbVarData; + ULONG cRowsReturned; + } DAOFETCHROWS; +typedef DAOFETCHROWS *LPDAOFETCHROWS; + +/* + New Errors + + **NOTE: OLE standard ids to be determined. +*/ + +#define GETROWSUCCESS(x) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, x) +#define GETROWERR(x) MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, x) + +#define S_BUFFERTOOSMALL GETROWSUCCESS(0x1000) +#define S_ENDOFCURSOR GETROWSUCCESS(0x1001) +#define S_SILENTCANCEL GETROWSUCCESS(0x1002) +#define S_RECORDDELETED GETROWSUCCESS(0x1003) + +#define E_ROWTOOSHORT GETROWERR(0x1000) +#define E_BADBINDINFO GETROWERR(0x1001) +#define E_COLUMNUNAVAILABLE GETROWERR(0x1002) + + +/* + Interfaces +*/ +#undef INTERFACE +#define INTERFACE ICDAORecordset +DECLARE_INTERFACE_(ICDAORecordset, IDispatch) + { + STDMETHOD(GetRows) (THIS_ LONG cRowsToSkip, LONG cCol, LPDAOCOLUMNBINDING prgBndCol, ULONG cbRowLen, LPDAOFETCHROWS pFetchRows) PURE; + }; + +#endif // _DAOGETRW_H_ diff --git a/public/sdk/inc/mfc42/datapath.h b/public/sdk/inc/mfc42/datapath.h new file mode 100644 index 000000000..40c60737c --- /dev/null +++ b/public/sdk/inc/mfc42/datapath.h @@ -0,0 +1,601 @@ +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + +/* File created by MIDL compiler version 3.00.15 */ +/* at Thu Jun 13 20:25:13 1996 + */ +/* Compiler settings for datapath.idl: + Oi, W1, Zp8, env=Win32, ms_ext, c_ext + error checks: none +*/ +//@@MIDL_FILE_HEADING( ) +#include "rpc.h" +#include "rpcndr.h" +#ifndef COM_NO_WINDOWS_H +#include "windows.h" +#include "ole2.h" +#endif /*COM_NO_WINDOWS_H*/ + +#ifndef __datapath_h__ +#define __datapath_h__ + +#ifdef __cplusplus +extern "C"{ +#endif + +/* Forward Declarations */ + +#ifndef __IObjectWithSite_FWD_DEFINED__ +#define __IObjectWithSite_FWD_DEFINED__ +typedef interface IObjectWithSite IObjectWithSite; +#endif /* __IObjectWithSite_FWD_DEFINED__ */ + + +#ifndef __IDataPathBrowser_FWD_DEFINED__ +#define __IDataPathBrowser_FWD_DEFINED__ +typedef interface IDataPathBrowser IDataPathBrowser; +#endif /* __IDataPathBrowser_FWD_DEFINED__ */ + + +#ifndef __IProvideClassInfo3_FWD_DEFINED__ +#define __IProvideClassInfo3_FWD_DEFINED__ +typedef interface IProvideClassInfo3 IProvideClassInfo3; +#endif /* __IProvideClassInfo3_FWD_DEFINED__ */ + + +/* header files for imported files */ +#include "objidl.h" +#include "oleidl.h" +#include "oaidl.h" +#include "olectl.h" +#include "urlmon.h" + +void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t); +void __RPC_USER MIDL_user_free( void __RPC_FAR * ); + +/**************************************** + * Generated header for interface: __MIDL__intf_0000 + * at Thu Jun 13 20:25:13 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright 1995 - 1996 Microsoft Corporation. All Rights Reserved. +// +// File: datapath.h + +#pragma comment(lib,"uuid3.lib") +// +//-------------------------------------------------------------------------- + + +#include "idispids.h" +typedef BSTR OLE_DATAPATH; +#define SID_SDataPathBrowser IID_IDataPathBrowser + +//////////////////////////////////////////////////////////////////////////// +// State values for the DISPID_READYSTATE property + +enum __MIDL___MIDL__intf_0000_0001 + { READYSTATE_UNINITIALIZED = 1, + READYSTATE_LOADING = 0, + READYSTATE_LOADED = 2, + READYSTATE_INTERACTIVE = 3, + READYSTATE_COMPLETE = 4 + }; + +//////////////////////////////////////////////////////////////////////////// +// DataPath GUIDs (link to uuid3.lib) +EXTERN_C const GUID OLE_DATAPATH_BMP; +EXTERN_C const GUID OLE_DATAPATH_DIB; +EXTERN_C const GUID OLE_DATAPATH_WMF; +EXTERN_C const GUID OLE_DATAPATH_ENHMF; +EXTERN_C const GUID OLE_DATAPATH_GIF; +EXTERN_C const GUID OLE_DATAPATH_JPEG; +EXTERN_C const GUID OLE_DATAPATH_TIFF; +EXTERN_C const GUID OLE_DATAPATH_XBM; +EXTERN_C const GUID OLE_DATAPATH_PCX; +EXTERN_C const GUID OLE_DATAPATH_PICT; +EXTERN_C const GUID OLE_DATAPATH_CGM; +EXTERN_C const GUID OLE_DATAPATH_EPS; +EXTERN_C const GUID OLE_DATAPATH_COMMONIMAGE; +EXTERN_C const GUID OLE_DATAPATH_ALLIMAGE; +EXTERN_C const GUID OLE_DATAPATH_AVI; +EXTERN_C const GUID OLE_DATAPATH_MPEG; +EXTERN_C const GUID OLE_DATAPATH_QUICKTIME; +EXTERN_C const GUID OLE_DATAPATH_BASICAUDIO; +EXTERN_C const GUID OLE_DATAPATH_MIDI; +EXTERN_C const GUID OLE_DATAPATH_WAV; +EXTERN_C const GUID OLE_DATAPATH_RIFF; +EXTERN_C const GUID OLE_DATAPATH_SOUND; +EXTERN_C const GUID OLE_DATAPATH_VIDEO; +EXTERN_C const GUID OLE_DATAPATH_ALLMM; +EXTERN_C const GUID OLE_DATAPATH_ANSITEXT; +EXTERN_C const GUID OLE_DATAPATH_UNICODE; +EXTERN_C const GUID OLE_DATAPATH_RTF; +EXTERN_C const GUID OLE_DATAPATH_HTML; +EXTERN_C const GUID OLE_DATAPATH_POSTSCRIPT; +EXTERN_C const GUID OLE_DATAPATH_ALLTEXT; +EXTERN_C const GUID OLE_DATAPATH_DIF; +EXTERN_C const GUID OLE_DATAPATH_SYLK; +EXTERN_C const GUID OLE_DATAPATH_BIFF; +EXTERN_C const GUID OLE_DATAPATH_PALETTE; +EXTERN_C const GUID OLE_DATAPATH_PENDATA; +//////////////////////////////////////////////////////////////////////////// + +EXTERN_C const GUID FLAGID_Internet; +EXTERN_C const GUID GUID_PathProperty; +EXTERN_C const GUID GUID_HasPathProperties; + +//////////////////////////////////////////////////////////////////////////// +// ARRAYID GUIDs (link to uuid3.lib) +EXTERN_C const GUID ARRAYID_PathProperties; + +//////////////////////////////////////////////////////////////////////////// +// Interface Definitions +#ifndef _LPOBJECTWITHSITE_DEFINED +#define _LPOBJECTWITHSITE_DEFINED + + +extern RPC_IF_HANDLE __MIDL__intf_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0000_v0_0_s_ifspec; + +#ifndef __IObjectWithSite_INTERFACE_DEFINED__ +#define __IObjectWithSite_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: IObjectWithSite + * at Thu Jun 13 20:25:13 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [unique][object][uuid] */ + + +typedef /* [unique] */ IObjectWithSite __RPC_FAR *LPOBJECTWITHSITE; + + +EXTERN_C const IID IID_IObjectWithSite; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + interface IObjectWithSite : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE SetSite( + /* [in] */ IUnknown __RPC_FAR *pUnkSite) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSite( + /* [in] */ REFIID riid, + /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvSite) = 0; + + }; + +#else /* C style interface */ + + typedef struct IObjectWithSiteVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( + IObjectWithSite __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( + IObjectWithSite __RPC_FAR * This); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( + IObjectWithSite __RPC_FAR * This); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetSite )( + IObjectWithSite __RPC_FAR * This, + /* [in] */ IUnknown __RPC_FAR *pUnkSite); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSite )( + IObjectWithSite __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvSite); + + END_INTERFACE + } IObjectWithSiteVtbl; + + interface IObjectWithSite + { + CONST_VTBL struct IObjectWithSiteVtbl __RPC_FAR *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IObjectWithSite_QueryInterface(This,riid,ppvObject) \ + (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) + +#define IObjectWithSite_AddRef(This) \ + (This)->lpVtbl -> AddRef(This) + +#define IObjectWithSite_Release(This) \ + (This)->lpVtbl -> Release(This) + + +#define IObjectWithSite_SetSite(This,pUnkSite) \ + (This)->lpVtbl -> SetSite(This,pUnkSite) + +#define IObjectWithSite_GetSite(This,riid,ppvSite) \ + (This)->lpVtbl -> GetSite(This,riid,ppvSite) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +HRESULT STDMETHODCALLTYPE IObjectWithSite_SetSite_Proxy( + IObjectWithSite __RPC_FAR * This, + /* [in] */ IUnknown __RPC_FAR *pUnkSite); + + +void __RPC_STUB IObjectWithSite_SetSite_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IObjectWithSite_GetSite_Proxy( + IObjectWithSite __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvSite); + + +void __RPC_STUB IObjectWithSite_GetSite_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IObjectWithSite_INTERFACE_DEFINED__ */ + + +/**************************************** + * Generated header for interface: __MIDL__intf_0119 + * at Thu Jun 13 20:25:13 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +#endif +#ifndef _LPDATAPATHBROWSER_DEFINED +#define _LPDATAPATHBROWSER_DEFINED + + +extern RPC_IF_HANDLE __MIDL__intf_0119_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0119_v0_0_s_ifspec; + +#ifndef __IDataPathBrowser_INTERFACE_DEFINED__ +#define __IDataPathBrowser_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: IDataPathBrowser + * at Thu Jun 13 20:25:13 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [unique][object][local][uuid] */ + + + +EXTERN_C const IID IID_IDataPathBrowser; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + interface IDataPathBrowser : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE BrowseType( + /* [in] */ REFGUID rguidPathType, + /* [in] */ LPOLESTR pszDefaultPath, + /* [in] */ ULONG cchPath, + /* [size_is][out] */ LPOLESTR pszPath, + /* [in] */ HWND hWnd) = 0; + + }; + +#else /* C style interface */ + + typedef struct IDataPathBrowserVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( + IDataPathBrowser __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( + IDataPathBrowser __RPC_FAR * This); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( + IDataPathBrowser __RPC_FAR * This); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *BrowseType )( + IDataPathBrowser __RPC_FAR * This, + /* [in] */ REFGUID rguidPathType, + /* [in] */ LPOLESTR pszDefaultPath, + /* [in] */ ULONG cchPath, + /* [size_is][out] */ LPOLESTR pszPath, + /* [in] */ HWND hWnd); + + END_INTERFACE + } IDataPathBrowserVtbl; + + interface IDataPathBrowser + { + CONST_VTBL struct IDataPathBrowserVtbl __RPC_FAR *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDataPathBrowser_QueryInterface(This,riid,ppvObject) \ + (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) + +#define IDataPathBrowser_AddRef(This) \ + (This)->lpVtbl -> AddRef(This) + +#define IDataPathBrowser_Release(This) \ + (This)->lpVtbl -> Release(This) + + +#define IDataPathBrowser_BrowseType(This,rguidPathType,pszDefaultPath,cchPath,pszPath,hWnd) \ + (This)->lpVtbl -> BrowseType(This,rguidPathType,pszDefaultPath,cchPath,pszPath,hWnd) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +HRESULT STDMETHODCALLTYPE IDataPathBrowser_BrowseType_Proxy( + IDataPathBrowser __RPC_FAR * This, + /* [in] */ REFGUID rguidPathType, + /* [in] */ LPOLESTR pszDefaultPath, + /* [in] */ ULONG cchPath, + /* [size_is][out] */ LPOLESTR pszPath, + /* [in] */ HWND hWnd); + + +void __RPC_STUB IDataPathBrowser_BrowseType_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IDataPathBrowser_INTERFACE_DEFINED__ */ + + +/**************************************** + * Generated header for interface: __MIDL__intf_0120 + * at Thu Jun 13 20:25:13 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +#endif +#ifndef _LPPROVIDECLASSINFO3_DEFINED +#define _LPPROVIDECLASSINFO3_DEFINED + + +extern RPC_IF_HANDLE __MIDL__intf_0120_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0120_v0_0_s_ifspec; + +#ifndef __IProvideClassInfo3_INTERFACE_DEFINED__ +#define __IProvideClassInfo3_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: IProvideClassInfo3 + * at Thu Jun 13 20:25:13 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [unique][uuid][object] */ + + +typedef /* [unique] */ IProvideClassInfo3 __RPC_FAR *LPPROVIDECLASSINFO3; + + +enum __MIDL_IProvideClassInfo3_0001 + { INTERNETFLAG_USESDATAPATHS = 0x1 + }; + +EXTERN_C const IID IID_IProvideClassInfo3; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + interface IProvideClassInfo3 : public IProvideClassInfo2 + { + public: + virtual HRESULT STDMETHODCALLTYPE GetGUIDDwordArrays( + /* [in] */ REFGUID rguidArray, + /* [out][in] */ CAUUID __RPC_FAR *pcaUUID, + /* [out][in] */ CADWORD __RPC_FAR *pcadw) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetClassInfoLocale( + /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppITypeInfo, + /* [in] */ LCID lcid) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlags( + /* [in] */ REFGUID guidGroup, + /* [out] */ DWORD __RPC_FAR *pdwFlags) = 0; + + }; + +#else /* C style interface */ + + typedef struct IProvideClassInfo3Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( + IProvideClassInfo3 __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( + IProvideClassInfo3 __RPC_FAR * This); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( + IProvideClassInfo3 __RPC_FAR * This); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassInfo )( + IProvideClassInfo3 __RPC_FAR * This, + /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTI); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetGUID )( + IProvideClassInfo3 __RPC_FAR * This, + /* [in] */ DWORD dwGuidKind, + /* [out] */ GUID __RPC_FAR *pGUID); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetGUIDDwordArrays )( + IProvideClassInfo3 __RPC_FAR * This, + /* [in] */ REFGUID rguidArray, + /* [out][in] */ CAUUID __RPC_FAR *pcaUUID, + /* [out][in] */ CADWORD __RPC_FAR *pcadw); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassInfoLocale )( + IProvideClassInfo3 __RPC_FAR * This, + /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppITypeInfo, + /* [in] */ LCID lcid); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetFlags )( + IProvideClassInfo3 __RPC_FAR * This, + /* [in] */ REFGUID guidGroup, + /* [out] */ DWORD __RPC_FAR *pdwFlags); + + END_INTERFACE + } IProvideClassInfo3Vtbl; + + interface IProvideClassInfo3 + { + CONST_VTBL struct IProvideClassInfo3Vtbl __RPC_FAR *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IProvideClassInfo3_QueryInterface(This,riid,ppvObject) \ + (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) + +#define IProvideClassInfo3_AddRef(This) \ + (This)->lpVtbl -> AddRef(This) + +#define IProvideClassInfo3_Release(This) \ + (This)->lpVtbl -> Release(This) + + +#define IProvideClassInfo3_GetClassInfo(This,ppTI) \ + (This)->lpVtbl -> GetClassInfo(This,ppTI) + + +#define IProvideClassInfo3_GetGUID(This,dwGuidKind,pGUID) \ + (This)->lpVtbl -> GetGUID(This,dwGuidKind,pGUID) + + +#define IProvideClassInfo3_GetGUIDDwordArrays(This,rguidArray,pcaUUID,pcadw) \ + (This)->lpVtbl -> GetGUIDDwordArrays(This,rguidArray,pcaUUID,pcadw) + +#define IProvideClassInfo3_GetClassInfoLocale(This,ppITypeInfo,lcid) \ + (This)->lpVtbl -> GetClassInfoLocale(This,ppITypeInfo,lcid) + +#define IProvideClassInfo3_GetFlags(This,guidGroup,pdwFlags) \ + (This)->lpVtbl -> GetFlags(This,guidGroup,pdwFlags) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +HRESULT STDMETHODCALLTYPE IProvideClassInfo3_GetGUIDDwordArrays_Proxy( + IProvideClassInfo3 __RPC_FAR * This, + /* [in] */ REFGUID rguidArray, + /* [out][in] */ CAUUID __RPC_FAR *pcaUUID, + /* [out][in] */ CADWORD __RPC_FAR *pcadw); + + +void __RPC_STUB IProvideClassInfo3_GetGUIDDwordArrays_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IProvideClassInfo3_GetClassInfoLocale_Proxy( + IProvideClassInfo3 __RPC_FAR * This, + /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppITypeInfo, + /* [in] */ LCID lcid); + + +void __RPC_STUB IProvideClassInfo3_GetClassInfoLocale_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IProvideClassInfo3_GetFlags_Proxy( + IProvideClassInfo3 __RPC_FAR * This, + /* [in] */ REFGUID guidGroup, + /* [out] */ DWORD __RPC_FAR *pdwFlags); + + +void __RPC_STUB IProvideClassInfo3_GetFlags_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IProvideClassInfo3_INTERFACE_DEFINED__ */ + + +/**************************************** + * Generated header for interface: __MIDL__intf_0121 + * at Thu Jun 13 20:25:13 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +#endif + + +extern RPC_IF_HANDLE __MIDL__intf_0121_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0121_v0_0_s_ifspec; + +/* Additional Prototypes for ALL interfaces */ + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/public/sdk/inc/mfc42/dbdaoerr.h b/public/sdk/inc/mfc42/dbdaoerr.h new file mode 100644 index 000000000..d5f4e738d --- /dev/null +++ b/public/sdk/inc/mfc42/dbdaoerr.h @@ -0,0 +1,448 @@ + +/************************************************************************ +** D B D A O E R R . H * * +** * +** History * +** ------- * +** 5-17-95 Added to DAO SDK * +** 7-17-95 Added DBDAOERR macro, removed internal only codes * +** * +** The following #defines map the integer to a descriptive name +** i.e. 3270 -> E_DAO_VtoPropNotFound * +** * +** * +************************************************************************* +** Copyright (C) 1995 by Microsoft Corporation * +** All Rights Reserved * +************************************************************************/ + +#ifndef _DBDAOERR_H_ +#define _DBDAOERR_H_ + +#define DBDAOERR(x) MAKE_SCODE(SEVERITY_ERROR, FACILITY_CONTROL, x) + +#define E_DAO_InternalError DBDAOERR(3000) //Reserved error (|); there is no message for this error. +#define E_DAO_InvalidParameter DBDAOERR(3001) //Invalid argument. +#define E_DAO_CantBegin DBDAOERR(3002) //Couldn't start session. +#define E_DAO_TransTooDeep DBDAOERR(3003) //Couldn't start transaction; too many transactions already nested. +#define E_DAO_DatabaseNotFound DBDAOERR(3004) //Couldn't find database '|'. +#define E_DAO_DatabaseInvalidName DBDAOERR(3005) //'|' isn't a valid database name. +#define E_DAO_DatabaseLocked DBDAOERR(3006) //Database '|' is exclusively locked. +#define E_DAO_DatabaseOpenError DBDAOERR(3007) //Can't open library database '|'. +#define E_DAO_TableLocked DBDAOERR(3008) //Table '|' is exclusively locked. +#define E_DAO_TableInUse DBDAOERR(3009) //Couldn't lock table '|'; currently in use. +#define E_DAO_TableDuplicate DBDAOERR(3010) //Table '|' already exists. +#define E_DAO_ObjectNotFound DBDAOERR(3011) //Couldn't find object '|'. +#define E_DAO_ObjectDuplicate DBDAOERR(3012) //Object '|' already exists. +#define E_DAO_CannotRename DBDAOERR(3013) //Couldn't rename installable ISAM file. +#define E_DAO_TooManyOpenTables DBDAOERR(3014) //Can't open any more tables. +#define E_DAO_IndexNotFound DBDAOERR(3015) //'|' isn't an index in this table. +#define E_DAO_ColumnDoesNotFit DBDAOERR(3016) //Field won't fit in record. +#define E_DAO_ColumnTooBig DBDAOERR(3017) //The size of a field is too long. +#define E_DAO_ColumnNotFound DBDAOERR(3018) //Couldn't find field '|'. +#define E_DAO_NoCurrentIndex DBDAOERR(3019) //Operation invalid without a current index. +#define E_DAO_RecordNoCopy DBDAOERR(3020) //Update or CancelUpdate without AddNew or Edit. +#define E_DAO_NoCurrentRecord DBDAOERR(3021) //No current record. +#define E_DAO_KeyDuplicate DBDAOERR(3022) //Duplicate value in index, primary key, or relationship. Changes were unsuccessful. +#define E_DAO_AlreadyPrepared DBDAOERR(3023) //AddNew or Edit already used. +#define E_DAO_FileNotFound DBDAOERR(3024) //Couldn't find file '|'. +#define E_DAO_TooManyOpenFiles DBDAOERR(3025) //Can't open any more files. +#define E_DAO_DiskFull DBDAOERR(3026) //Not enough space on disk. +#define E_DAO_PermissionDenied DBDAOERR(3027) //Can't update. Database or object is read-only. +#define E_DAO_CannotOpenSystemDb DBDAOERR(3028) //Can't start your application. The system database is missing or opened exclusively by another user. +#define E_DAO_InvalidLogon DBDAOERR(3029) //Not a valid account name or password. +#define E_DAO_InvalidAccountName DBDAOERR(3030) //'|' isn't a valid account name. +#define E_DAO_InvalidPassword DBDAOERR(3031) //Not a valid password. +#define E_DAO_InvalidOperation DBDAOERR(3032) //Can't perform this operation. +#define E_DAO_AccessDenied DBDAOERR(3033) //No permission for '|'. +#define E_DAO_NotInTransaction DBDAOERR(3034) //Commit or Rollback without BeginTrans. +#define E_DAO_OutOfMemory DBDAOERR(3035) //* +#define E_DAO_CantAllocatePage DBDAOERR(3036) //Database has reached maximum size. +#define E_DAO_NoMoreCursors DBDAOERR(3037) //Can't open any more tables or queries. +#define E_DAO_OutOfBuffers DBDAOERR(3038) //* +#define E_DAO_TooManyIndexes DBDAOERR(3039) //Couldn't create index; too many indexes already defined. +#define E_DAO_ReadVerifyFailure DBDAOERR(3040) //Disk I/O error during read. +#define E_DAO_FilesysVersion DBDAOERR(3041) //Can't open a database created with a previous version of your application. +#define E_DAO_NoMoreFiles DBDAOERR(3042) //Out of MS-DOS file handles. +#define E_DAO_DiskError DBDAOERR(3043) //Disk or network error. +#define E_DAO_InvalidPath DBDAOERR(3044) //'|' isn't a valid path. +#define E_DAO_FileShareViolation DBDAOERR(3045) //Couldn't use '|'; file already in use. +#define E_DAO_FileLockViolation DBDAOERR(3046) //Couldn't save; currently locked by another user. +#define E_DAO_RecordTooBig DBDAOERR(3047) //Record is too large. +#define E_DAO_TooManyOpenDatabases DBDAOERR(3048) //Can't open any more databases. +#define E_DAO_InvalidDatabase DBDAOERR(3049) //Can't open database '|'. It may not be a database that your application recognizes, or the file may be corrupt. +#define E_DAO_FileLockingUnavailable DBDAOERR(3050) //Couldn't lock file. +#define E_DAO_FileAccessDenied DBDAOERR(3051) //Couldn't open file '|'. +#define E_DAO_SharingBufferExceeded DBDAOERR(3052) //MS-DOS file sharing lock count exceeded. You need to increase the number of locks installed with SHARE.EXE. +#define E_DAO_TaskLimitExceeded DBDAOERR(3053) //Too many client tasks. +#define E_DAO_TooManyLongColumns DBDAOERR(3054) //Too many Memo or OLE object fields. +#define E_DAO_InvalidFilename DBDAOERR(3055) //Not a valid file name. +#define E_DAO_AbortSalvage DBDAOERR(3056) //Couldn't repair this database. +#define E_DAO_LinkNotSupported DBDAOERR(3057) //Operation not supported on attached, or linked, tables. +#define E_DAO_NullKeyDisallowed DBDAOERR(3058) //Index or primary key can't contain a null value. +#define E_DAO_OperationCanceled DBDAOERR(3059) //Operation canceled by user. +#define E_DAO_QueryParmTypeMismatch DBDAOERR(3060) //Wrong data type for parameter '|'. +#define E_DAO_QueryMissingParmsM DBDAOERR(3061) //Too few parameters. Expected |. +#define E_DAO_QueryDuplicateAliasM DBDAOERR(3062) //Duplicate output alias '|'. +#define E_DAO_QueryDuplicateOutputM DBDAOERR(3063) //Duplicate output destination '|'. +#define E_DAO_QueryIsBulkOp DBDAOERR(3064) //Can't open action query '|'. +#define E_DAO_QueryIsNotBulkOp DBDAOERR(3065) //Can't execute a non-action query. +#define E_DAO_QueryNoOutputsM DBDAOERR(3066) //Query or table must contain at least one output field. +#define E_DAO_QueryNoInputTablesM DBDAOERR(3067) //Query input must contain at least one table or query. +#define E_DAO_QueryInvalidAlias DBDAOERR(3068) //Not a valid alias name. +#define E_DAO_QueryInvalidBulkInputM DBDAOERR(3069) //The action query '|' cannot be used as a row source. +#define E_DAO_QueryUnboundRef DBDAOERR(3070) //Can't bind name '|'. +#define E_DAO_QueryExprEvaluation DBDAOERR(3071) //Can't evaluate expression. +#define E_DAO_EvalEBESErr DBDAOERR(3072) //| +#define E_DAO_QueryNotUpdatable DBDAOERR(3073) //Operation must use an updatable query. +#define E_DAO_TableRepeatInFromList DBDAOERR(3074) //Can't repeat table name '|' in FROM clause. +#define E_DAO_QueryExprSyntax DBDAOERR(3075) //|1 in query expression '|2'. +#define E_DAO_QbeExprSyntax DBDAOERR(3076) //| in criteria expression. +#define E_DAO_FindExprSyntax DBDAOERR(3077) //| in expression. +#define E_DAO_InputTableNotFound DBDAOERR(3078) //Couldn't find input table or query '|'. +#define E_DAO_QueryAmbigRefM DBDAOERR(3079) //Ambiguous field reference '|'. +#define E_DAO_JoinTableNotInput DBDAOERR(3080) //Joined table '|' not listed in FROM clause. +#define E_DAO_UnaliasedSelfJoin DBDAOERR(3081) //Can't join more than one table with the same name (|). +#define E_DAO_ColumnNotInJoinTable DBDAOERR(3082) //JOIN operation '|' refers to a non-joined table. +#define E_DAO_QueryIsMGB DBDAOERR(3083) //Can't use internal report query. +#define E_DAO_QueryInsIntoBulkMGB DBDAOERR(3084) //Can't insert data with action query. +#define E_DAO_ExprUnknownFunctionM DBDAOERR(3085) //Undefined function '|' in expression. +#define E_DAO_QueryCannotDelete DBDAOERR(3086) //Couldn't delete from specified tables. +#define E_DAO_QueryTooManyGroupExprs DBDAOERR(3087) //Too many expressions in GROUP BY clause. +#define E_DAO_QueryTooManyOrderExprs DBDAOERR(3088) //Too many expressions in ORDER BY clause. +#define E_DAO_QueryTooManyDistExprs DBDAOERR(3089) //Too many expressions in DISTINCT output. +#define E_DAO_Column2ndSysMaint DBDAOERR(3090) //Resultant table not allowed to have more than one Counter or Autonumber field. +#define E_DAO_HavingWOGrouping DBDAOERR(3091) //HAVING clause (|) without grouping or aggregation. +#define E_DAO_HavingOnTransform DBDAOERR(3092) //Can't use HAVING clause in TRANSFORM statement. +#define E_DAO_OrderVsDistinct DBDAOERR(3093) //ORDER BY clause (|) conflicts with DISTINCT. +#define E_DAO_OrderVsGroup DBDAOERR(3094) //ORDER BY clause (|) conflicts with GROUP BY clause. +#define E_DAO_AggregateInArgument DBDAOERR(3095) //Can't have aggregate function in expression (|). +#define E_DAO_AggregateInWhere DBDAOERR(3096) //Can't have aggregate function in WHERE clause (|). +#define E_DAO_AggregateInOrderBy DBDAOERR(3097) //Can't have aggregate function in ORDER BY clause (|). +#define E_DAO_AggregateInGroupBy DBDAOERR(3098) //Can't have aggregate function in GROUP BY clause (|). +#define E_DAO_AggregateInJoin DBDAOERR(3099) //Can't have aggregate function in JOIN operation (|). +#define E_DAO_NullInJoinKey DBDAOERR(3100) //Can't set field '|' in join key to Null. +#define E_DAO_ValueBreaksJoin DBDAOERR(3101) //There is no record in table '|2' with key matching field(s) '|1'. +#define E_DAO_QueryTreeCycle DBDAOERR(3102) //Circular reference caused by '|'. +#define E_DAO_OutputAliasCycle DBDAOERR(3103) //Circular reference caused by alias '|' in query definition's SELECT list. +#define E_DAO_QryDuplicatedFixedSetM DBDAOERR(3104) //Can't specify Fixed Column Heading '|' in a crosstab query more than once. +#define E_DAO_NoSelectIntoColumnName DBDAOERR(3105) //Missing destination field name in SELECT INTO statement (|). +#define E_DAO_NoUpdateColumnName DBDAOERR(3106) //Missing destination field name in UPDATE statement (|). +#define E_DAO_QueryNoInsertPerm DBDAOERR(3107) //Record(s) can't be added; no Insert Data permission on '|'. +#define E_DAO_QueryNoReplacePerm DBDAOERR(3108) //Record(s) can't be edited; no Update Data permission on '|'. +#define E_DAO_QueryNoDeletePerm DBDAOERR(3109) //Record(s) can't be deleted; no Delete Data permission on '|'. +#define E_DAO_QueryNoReadDefPerm DBDAOERR(3110) //Couldn't read definitions; no Read Design permission for table or query '|'. +#define E_DAO_QueryNoTblCrtPerm DBDAOERR(3111) //Couldn't create; no Create permission for table or query '|'. +#define E_DAO_QueryNoReadPerm DBDAOERR(3112) //Record(s) can't be read; no Read Data permission on '|'. +#define E_DAO_QueryColNotUpd DBDAOERR(3113) //Can't update '|'; field not updatable. +#define E_DAO_QueryLVInDistinct DBDAOERR(3114) //Can't include Memo or OLE object when you select unique values (|). +#define E_DAO_QueryLVInAggregate DBDAOERR(3115) //Can't have Memo or OLE object in aggregate argument (|). +#define E_DAO_QueryLVInHaving DBDAOERR(3116) //Can't have Memo or OLE object in criteria (|) for aggregate function. +#define E_DAO_QueryLVInOrderBy DBDAOERR(3117) //Can't sort on Memo or OLE object (|). +#define E_DAO_QueryLVInJoin DBDAOERR(3118) //Can't join on Memo or OLE object (|). +#define E_DAO_QueryLVInGroupBy DBDAOERR(3119) //Can't group on Memo or OLE object (|). +#define E_DAO_DotStarWithGrouping DBDAOERR(3120) //Can't group on fields selected with '*' (|). +#define E_DAO_StarWithGrouping DBDAOERR(3121) //Can't group on fields selected with '*'. +#define E_DAO_IllegalDetailRef DBDAOERR(3122) //'|' not part of aggregate function or grouping. +#define E_DAO_StarNotAtLevel0 DBDAOERR(3123) //Can't use '*' in crosstab query. +#define E_DAO_QueryInvalidMGBInput DBDAOERR(3124) //Can't input from internal report query (|). +#define E_DAO_InvalidName DBDAOERR(3125) //'|' isn't a valid name. +#define E_DAO_QueryBadBracketing DBDAOERR(3126) //Invalid bracketing of name '|'. +#define E_DAO_InsertIntoUnknownCol DBDAOERR(3127) //INSERT INTO statement contains unknown field name '|'. +#define E_DAO_QueryNoDeleteTables DBDAOERR(3128) //Must specify tables to delete from. +#define E_DAO_SQLSyntax DBDAOERR(3129) //Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'. +#define E_DAO_SQLDeleteSyntax DBDAOERR(3130) //Syntax error in DELETE statement. +#define E_DAO_SQLFromSyntax DBDAOERR(3131) //Syntax error in FROM clause. +#define E_DAO_SQLGroupBySyntax DBDAOERR(3132) //Syntax error in GROUP BY clause. +#define E_DAO_SQLHavingSyntax DBDAOERR(3133) //Syntax error in HAVING clause. +#define E_DAO_SQLInsertSyntax DBDAOERR(3134) //Syntax error in INSERT statement. +#define E_DAO_SQLJoinSyntax DBDAOERR(3135) //Syntax error in JOIN operation. +#define E_DAO_SQLLevelSyntax DBDAOERR(3136) //Syntax error in LEVEL clause. +#define E_DAO_SQLMissingSemicolon DBDAOERR(3137) //Missing semicolon (;) at end of SQL statement. +#define E_DAO_SQLOrderBySyntax DBDAOERR(3138) //Syntax error in ORDER BY clause. +#define E_DAO_SQLParameterSyntax DBDAOERR(3139) //Syntax error in PARAMETER clause. +#define E_DAO_SQLProcedureSyntax DBDAOERR(3140) //Syntax error in PROCEDURE clause. +#define E_DAO_SQLSelectSyntax DBDAOERR(3141) //Syntax error in SELECT statement. +#define E_DAO_SQLTooManyTokens DBDAOERR(3142) //Characters found after end of SQL statement. +#define E_DAO_SQLTransformSyntax DBDAOERR(3143) //Syntax error in TRANSFORM statement. +#define E_DAO_SQLUpdateSyntax DBDAOERR(3144) //Syntax error in UPDATE statement. +#define E_DAO_SQLWhereSyntax DBDAOERR(3145) //Syntax error in WHERE clause. +#define E_DAO_RmtSQLCError DBDAOERR(3146) //ODBC--call failed. +#define E_DAO_RmtDataOverflow DBDAOERR(3147) //* +#define E_DAO_RmtConnectFailed DBDAOERR(3148) //* +#define E_DAO_RmtIncorrectSqlcDll DBDAOERR(3149) //* +#define E_DAO_RmtMissingSqlcDll DBDAOERR(3150) //* +#define E_DAO_RmtConnectFailedM DBDAOERR(3151) //ODBC--connection to '|' failed. +#define E_DAO_RmtDrvrVer DBDAOERR(3152) //* +#define E_DAO_RmtSrvrVer DBDAOERR(3153) //* +#define E_DAO_RmtMissingOdbcDll DBDAOERR(3154) //ODBC--couldn't find DLL '|'. +#define E_DAO_RmtInsertFailedM DBDAOERR(3155) //ODBC--insert failed on attached (linked) table '|'. +#define E_DAO_RmtDeleteFailedM DBDAOERR(3156) //ODBC--delete failed on attached (linked) table '|'. +#define E_DAO_RmtUpdateFailedM DBDAOERR(3157) //ODBC--update failed on attached (linked) table '|'. +#define E_DAO_RecordLocked DBDAOERR(3158) //Couldn't save record; currently locked by another user. +#define E_DAO_InvalidBookmark DBDAOERR(3159) //Not a valid bookmark. +#define E_DAO_TableNotOpen DBDAOERR(3160) //Table isn't open. +#define E_DAO_DecryptFail DBDAOERR(3161) //Couldn't decrypt file. +#define E_DAO_NullInvalid DBDAOERR(3162) //Null is invalid. +#define E_DAO_InvalidBufferSize DBDAOERR(3163) //Couldn't perform operation; data too long for field. +#define E_DAO_ColumnNotUpdatable DBDAOERR(3164) //Field can't be updated. +#define E_DAO_CantMakeINFFile DBDAOERR(3165) //Couldn't open .INF file. +#define E_DAO_MissingMemoFile DBDAOERR(3166) //Missing memo file. +#define E_DAO_RecordDeleted DBDAOERR(3167) //Record is deleted. +#define E_DAO_INFFileError DBDAOERR(3168) //Invalid .INF file. +#define E_DAO_ExprIllegalType DBDAOERR(3169) //Illegal type in expression. +#define E_DAO_InstalIsamNotFound DBDAOERR(3170) //Couldn't find installable ISAM. +#define E_DAO_NoConfigParameters DBDAOERR(3171) //Couldn't find net path or user name. +#define E_DAO_CantAccessPdoxNetDir DBDAOERR(3172) //Couldn't open PARADOX.NET. +#define E_DAO_NoMSysAccounts DBDAOERR(3173) //Couldn't open table 'MSysAccounts' in the system database file. +#define E_DAO_NoMSysGroups DBDAOERR(3174) //Couldn't open table 'MSysGroups' in the system database file. +#define E_DAO_DateOutOfRange DBDAOERR(3175) //Date is out of range or is in an invalid format. +#define E_DAO_ImexCantOpenFile DBDAOERR(3176) //Couldn't open file '|'. +#define E_DAO_ImexBadTableName DBDAOERR(3177) //Not a valid table name. +#define E_DAO_ImexOutOfMemory DBDAOERR(3178) //* +#define E_DAO_ImexEndofFile DBDAOERR(3179) //Encountered unexpected end of file. +#define E_DAO_ImexCantWriteToFile DBDAOERR(3180) //Couldn't write to file '|'. +#define E_DAO_ImexBadRange DBDAOERR(3181) //Invalid range. +#define E_DAO_ImexBogusFile DBDAOERR(3182) //Invalid file format. +#define E_DAO_TempDiskFull DBDAOERR(3183) //Not enough space on temporary disk. +#define E_DAO_RmtLinkNotFound DBDAOERR(3184) //Couldn't execute query; couldn't find attached, or linked, table. +#define E_DAO_RmtTooManyColumns DBDAOERR(3185) //SELECT INTO remote database tried to produce too many fields. +#define E_DAO_ReadConflictM DBDAOERR(3186) //Couldn't save; currently locked by user '|2' on machine '|1'. +#define E_DAO_CommitConflictM DBDAOERR(3187) //Couldn't read; currently locked by user '|2' on machine '|1'. +#define E_DAO_SessionWriteConflict DBDAOERR(3188) //Couldn't update; currently locked by another session on this machine. +#define E_DAO_JetSpecialTableLocked DBDAOERR(3189) //Table '|1' is exclusively locked by user '|3' on machine '|2'. +#define E_DAO_TooManyColumns DBDAOERR(3190) //Too many fields defined. +#define E_DAO_ColumnDuplicate DBDAOERR(3191) //Can't define field more than once. +#define E_DAO_OutputTableNotFound DBDAOERR(3192) //Couldn't find output table '|'. +#define E_DAO_JetNoUserName DBDAOERR(3193) //(unknown) +#define E_DAO_JetNoMachineName DBDAOERR(3194) //(unknown) +#define E_DAO_JetNoColumnName DBDAOERR(3195) //(expression) +#define E_DAO_DatabaseInUse DBDAOERR(3196) //Couldn't use '|'; database already in use. +#define E_DAO_DataHasChanged DBDAOERR(3197) //Data has changed; operation stopped. +#define E_DAO_TooManySessions DBDAOERR(3198) //Couldn't start session. Too many sessions already active. +#define E_DAO_ReferenceNotFound DBDAOERR(3199) //Couldn't find reference. +#define E_DAO_IntegrityViolMasterM DBDAOERR(3200) //Can't delete or change record. Since related records exist in table '|', referential integrity rules would be violated. +#define E_DAO_IntegrityViolSlaveM DBDAOERR(3201) //Can't add or change record. Referential integrity rules require a related record in table '|'. +#define E_DAO_ReadConflict DBDAOERR(3202) //Couldn't save; currently locked by another user. +#define E_DAO_AggregatingHigherLevel DBDAOERR(3203) //Can't specify subquery in expression (|). +#define E_DAO_DatabaseDuplicate DBDAOERR(3204) //Database already exists. +#define E_DAO_QueryTooManyXvtColumn DBDAOERR(3205) //Too many crosstab column headers (|). +#define E_DAO_SelfReference DBDAOERR(3206) //Can't create a relationship between a field and itself. +#define E_DAO_CantUseUnkeyedTable DBDAOERR(3207) //Operation not supported on Paradox table with no primary key. +#define E_DAO_IllegalDeletedOption DBDAOERR(3208) //Invalid Deleted entry in the Xbase section of initialization setting. +#define E_DAO_IllegalStatsOption DBDAOERR(3209) //Invalid Stats entry in the Xbase section of initialization setting. +#define E_DAO_ConnStrTooLong DBDAOERR(3210) //Connection string too long. +#define E_DAO_TableInUseQM DBDAOERR(3211) //Couldn't lock table '|'; currently in use. +#define E_DAO_JetSpecialTableInUse DBDAOERR(3212) //Couldn't lock table '|1'; currently in use by user '|3' on machine '|2'. +#define E_DAO_IllegalDateOption DBDAOERR(3213) //Invalid Date entry in the Xbase section of initialization setting. +#define E_DAO_IllegalMarkOption DBDAOERR(3214) //Invalid Mark entry in the Xbase section of initialization setting. +#define E_DAO_BtrieveTooManyTasks DBDAOERR(3215) //Too many Btrieve tasks. +#define E_DAO_QueryParmNotTableid DBDAOERR(3216) //Parameter '|' specified where a table name is required. +#define E_DAO_QueryParmNotDatabase DBDAOERR(3217) //Parameter '|' specified where a database name is required. +#define E_DAO_WriteConflict DBDAOERR(3218) //Couldn't update; currently locked. +#define E_DAO_IllegalOperation DBDAOERR(3219) //Invalid operation. +#define E_DAO_WrongCollatingSequence DBDAOERR(3220) //Incorrect collating sequence. +#define E_DAO_BadConfigParameters DBDAOERR(3221) //Invalid entries in the Btrieve section of initialization setting. +#define E_DAO_QueryContainsDbParm DBDAOERR(3222) //Query can't contain a Database parameter. +#define E_DAO_QueryInvalidParmM DBDAOERR(3223) //'|' isn't a valid parameter name. +#define E_DAO_BtrieveDDCorrupted DBDAOERR(3224) //Can't read Btrieve data dictionary. +#define E_DAO_BtrieveDeadlock DBDAOERR(3225) //Encountered record locking deadlock while performing Btrieve operation. +#define E_DAO_BtrieveFailure DBDAOERR(3226) //Errors encountered while using the Btrieve DLL. +#define E_DAO_IllegalCenturyOption DBDAOERR(3227) //Invalid Century entry in the Xbase section of initialization setting. +#define E_DAO_IllegalCollatingSeq DBDAOERR(3228) //Invalid Collating Sequence. +#define E_DAO_NonModifiableKey DBDAOERR(3229) //Btrieve--can't change field. +#define E_DAO_ObsoleteLockFile DBDAOERR(3230) //Out-of-date Paradox lock file. +#define E_DAO_RmtColDataTruncated DBDAOERR(3231) //ODBC--field would be too long; data truncated. +#define E_DAO_RmtCreateTableFailed DBDAOERR(3232) //ODBC--couldn't create table. +#define E_DAO_RmtOdbcVer DBDAOERR(3233) //* +#define E_DAO_RmtQueryTimeout DBDAOERR(3234) //ODBC--remote query timeout expired. +#define E_DAO_RmtTypeIncompat DBDAOERR(3235) //ODBC--data type not supported on server. +#define E_DAO_RmtUnexpectedNull DBDAOERR(3236) //* +#define E_DAO_RmtUnexpectedType DBDAOERR(3237) //* +#define E_DAO_RmtValueOutOfRange DBDAOERR(3238) //ODBC--data out of range. +#define E_DAO_TooManyActiveUsers DBDAOERR(3239) //Too many active users. +#define E_DAO_CantStartBtrieve DBDAOERR(3240) //Btrieve--missing Btrieve engine. +#define E_DAO_OutOfBVResources DBDAOERR(3241) //Btrieve--out of resources. +#define E_DAO_QueryBadUpwardRefedM DBDAOERR(3242) //Invalid reference in SELECT statement. +#define E_DAO_ImexNoMatchingColumns DBDAOERR(3243) //None of the import field names match fields in the appended table. +#define E_DAO_ImexPasswordProtected DBDAOERR(3244) //Can't import password-protected spreadsheet. +#define E_DAO_ImexUnparsableRecord DBDAOERR(3245) //Couldn't parse field names from first row of import table. +#define E_DAO_InTransaction DBDAOERR(3246) //Operation not supported in transactions. +#define E_DAO_RmtLinkOutOfSync DBDAOERR(3247) //ODBC--linked table definition has changed. +#define E_DAO_IllegalNetworkOption DBDAOERR(3248) //Invalid NetworkAccess entry in initialization setting. +#define E_DAO_IllegalTimeoutOption DBDAOERR(3249) //Invalid PageTimeout entry in initialization setting. +#define E_DAO_CantBuildKey DBDAOERR(3250) //Couldn't build key. +#define E_DAO_FeatureNotAvailable DBDAOERR(3251) //Operation is not supported for this type of object. +#define E_DAO_IllegalReentrancy DBDAOERR(3252) //Can't open form whose underlying query contains a user-defined function that attempts to set or get the form's RecordsetClone property. +#define E_DAO_UNUSED DBDAOERR(3253) //* +#define E_DAO_RmtDenyWriteIsInvalid DBDAOERR(3254) //ODBC--Can't lock all records. +#define E_DAO_ODBCParmsChanged DBDAOERR(3255) //* +#define E_DAO_INFIndexNotFound DBDAOERR(3256) //Index file not found. +#define E_DAO_SQLOwnerAccessSyntax DBDAOERR(3257) //Syntax error in WITH OWNERACCESS OPTION declaration. +#define E_DAO_QueryAmbiguousJoins DBDAOERR(3258) //Query contains ambiguous outer joins. +#define E_DAO_InvalidColumnType DBDAOERR(3259) //Invalid field data type. +#define E_DAO_WriteConflictM DBDAOERR(3260) //Couldn't update; currently locked by user '|2' on machine '|1'. +#define E_DAO_TableLockedM DBDAOERR(3261) //| +#define E_DAO_TableInUseMUQM DBDAOERR(3262) //| +#define E_DAO_InvalidTableId DBDAOERR(3263) //Invalid database object. +#define E_DAO_VtoNoFields DBDAOERR(3264) //No fields defined - cannot append Tabledef or Index. +#define E_DAO_VtoNameNotFound DBDAOERR(3265) //Item not found in this collection. +#define E_DAO_VtoFieldInCollection DBDAOERR(3266) //Can't append. Field is part of a TableDefs collection. +#define E_DAO_VtoNotARecordset DBDAOERR(3267) //Property can be set only when the field is part of a Recordset object's Fields collection. +#define E_DAO_VtoNoSetObjInDb DBDAOERR(3268) //Can't set this property once the object is part of a collection. +#define E_DAO_VtoIndexInCollection DBDAOERR(3269) //Can't append. Index is part of a TableDefs collection. +#define E_DAO_VtoPropNotFound DBDAOERR(3270) //Property not found. +#define E_DAO_VtoIllegalValue DBDAOERR(3271) //Invalid property value. +#define E_DAO_VtoNotArray DBDAOERR(3272) //Object isn't a collection. +#define E_DAO_VtoNoSuchMethod DBDAOERR(3273) //Method not applicable for this object. +#define E_DAO_NotExternalFormat DBDAOERR(3274) //External table isn't in the expected format. +#define E_DAO_UnexpectedEngineReturn DBDAOERR(3275) //Unexpected error from external database driver (|). +#define E_DAO_InvalidDatabaseId DBDAOERR(3276) //Invalid database ID. +#define E_DAO_TooManyKeys DBDAOERR(3277) //Can't have more than 10 fields in an index. +#define E_DAO_NotInitialized DBDAOERR(3278) //Database engine hasn't been initialized. +#define E_DAO_AlreadyInitialized DBDAOERR(3279) //Database engine has already been initialized. +#define E_DAO_ColumnInUse DBDAOERR(3280) //Can't delete a field that is part of an index or is needed by the system. +#define E_DAO_IndexInUse DBDAOERR(3281) //Can't delete this index. It is either the current index or is used in a relationship. +#define E_DAO_TableNotEmpty DBDAOERR(3282) //Can't create field or index in a table that is already defined. +#define E_DAO_IndexHasPrimary DBDAOERR(3283) //Primary key already exists. +#define E_DAO_IndexDuplicate DBDAOERR(3284) //Index already exists. +#define E_DAO_IndexInvalidDef DBDAOERR(3285) //Invalid index definition. +#define E_DAO_WrongMemoFileType DBDAOERR(3286) //Format of memo file doesn't match specified external database format. +#define E_DAO_ColumnCannotIndex DBDAOERR(3287) //Can't create index on the given field. +#define E_DAO_IndexHasNoPrimary DBDAOERR(3288) //Paradox index is not primary. +#define E_DAO_DDLConstraintSyntax DBDAOERR(3289) //Syntax error in CONSTRAINT clause. +#define E_DAO_DDLCreateTableSyntax DBDAOERR(3290) //Syntax error in CREATE TABLE statement. +#define E_DAO_DDLCreateIndexSyntax DBDAOERR(3291) //Syntax error in CREATE INDEX statement. +#define E_DAO_DDLColumnDefSyntax DBDAOERR(3292) //Syntax error in field definition. +#define E_DAO_DDLAlterTableSyntax DBDAOERR(3293) //Syntax error in ALTER TABLE statement. +#define E_DAO_DDLDropIndexSyntax DBDAOERR(3294) //Syntax error in DROP INDEX statement. +#define E_DAO_DDLDropSyntax DBDAOERR(3295) //Syntax error in DROP TABLE or DROP INDEX. +#define E_DAO_V11NotSupported DBDAOERR(3296) //Join expression not supported. +#define E_DAO_ImexNothingToImport DBDAOERR(3297) //Couldn't import table or query. No records found, or all records contain errors. +#define E_DAO_RmtTableAmbiguous DBDAOERR(3298) //There are several tables with that name. Please specify owner in the format 'owner.table'. +#define E_DAO_JetODBCConformanceError DBDAOERR(3299) //ODBC Specification Conformance Error (|). This error should be reported to the ODBC driver vendor. +#define E_DAO_IllegalRelationship DBDAOERR(3300) //Can't create a relationship. +#define E_DAO_DBVerFeatureNotAvailable DBDAOERR(3301) //Can't perform this operation; features in this version are not available in databases with older formats. +#define E_DAO_RulesLoaded DBDAOERR(3302) //Can't change a rule while the rules for this table are in use. +#define E_DAO_ColumnInRelationship DBDAOERR(3303) //Can't delete this field. It's part of one or more relationships. +#define E_DAO_InvalidPin DBDAOERR(3304) //You must enter a personal identifier (PID) consisting of at least four and no more than 20 characters and digits. +#define E_DAO_RmtBogusConnStr DBDAOERR(3305) //Invalid connection string in pass-through query. +#define E_DAO_SingleColumnExpected DBDAOERR(3306) //At most one field can be returned from a subquery that doesn't use the EXISTS keyword. +#define E_DAO_ColumnCountMismatch DBDAOERR(3307) //The number of columns in the two selected tables or queries of a union query don't match. +#define E_DAO_InvalidTopArgumentM DBDAOERR(3308) //Invalid TOP argument in select query. +#define E_DAO_PropertyTooLarge DBDAOERR(3309) //Property setting can't be larger than 2 KB. +#define E_DAO_JPMInvalidForV1x DBDAOERR(3310) //This property isn't supported for external data sources or for databases created in a previous version. +#define E_DAO_PropertyExists DBDAOERR(3311) //Property specified already exists. +#define E_DAO_TLVNativeUserTablesOnly DBDAOERR(3312) //Validation rules and default values can't be placed on system or attached (linked) tables. +#define E_DAO_TLVInvalidColumn DBDAOERR(3313) //Can't place this validation expression on this field. +#define E_DAO_TLVNoNullM DBDAOERR(3314) //Field '|' can't contain a null value. +#define E_DAO_TLVNoBlankM DBDAOERR(3315) //Field '|' can't be a zero-length string. +#define E_DAO_TLVRuleViolationM DBDAOERR(3316) //| +#define E_DAO_TLVRuleVioNoMessage DBDAOERR(3317) //One or more values entered is prohibited by the validation rule '|2' set for '|1'. +#define E_DAO_QueryTopNotAllowedM DBDAOERR(3318) //Top not allowed in delete queries. +#define E_DAO_SQLUnionSyntax DBDAOERR(3319) //Syntax error in union query. +#define E_DAO_TLVExprSyntaxM DBDAOERR(3320) //| in table-level validation expression. +#define E_DAO_NoDbInConnStr DBDAOERR(3321) //No database specified in connection string or IN clause. +#define E_DAO_QueryBadValueListM DBDAOERR(3322) //Crosstab query contains one or more invalid fixed column headings. +#define E_DAO_QueryIsNotRowReturning DBDAOERR(3323) //The query can not be used as a row source. +#define E_DAO_QueryIsDDL DBDAOERR(3324) //This query is a DDL query and cannot be used as a row source. +#define E_DAO_SPTReturnedNoRecords DBDAOERR(3325) //Pass-through query with ReturnsRecords property set to True did not return any records. +#define E_DAO_QueryIsSnapshot DBDAOERR(3326) //This Recordset is not updatable. +#define E_DAO_QueryExprOutput DBDAOERR(3327) //Field '|' is based on an expression and can't be edited. +#define E_DAO_QueryTableRO DBDAOERR(3328) //Table '|2' is read-only. +#define E_DAO_QueryRowDeleted DBDAOERR(3329) //Record in table '|' was deleted by another user. +#define E_DAO_QueryRowLocked DBDAOERR(3330) //Record in table '|' is locked by another user. +#define E_DAO_QueryFixupChanged DBDAOERR(3331) //To make changes to this field, first save the record. +#define E_DAO_QueryCantFillIn DBDAOERR(3332) //Can't enter value into blank field on 'one' side of outer join. +#define E_DAO_QueryWouldOrphan DBDAOERR(3333) //Records in table '|' would have no record on the 'one' side. +#define E_DAO_V10Format DBDAOERR(3334) //Can be present only in version 1.0 format. +#define E_DAO_InvalidDelete DBDAOERR(3335) //DeleteOnly called with non-zero cbData. +#define E_DAO_IllegalIndexDDFOption DBDAOERR(3336) //Btrieve: Invalid IndexDDF option in initialization setting. +#define E_DAO_IllegalDataCodePage DBDAOERR(3337) //Invalid DataCodePage option in initialization setting. +#define E_DAO_XtrieveEnvironmentError DBDAOERR(3338) //Btrieve: Xtrieve options aren't correct in initialization setting. +#define E_DAO_IllegalIndexNumberOption DBDAOERR(3339) //Btrieve: Invalid IndexDeleteRenumber option in initialization setting. +#define E_DAO_QueryIsCorruptM DBDAOERR(3340) //Query '|' is corrupt. +#define E_DAO_IncorrectJoinKeyM DBDAOERR(3341) //Current field must match join key '|' on 'one' side of outer join because it has been updated. +#define E_DAO_QueryLVInSubqueryM DBDAOERR(3342) //Invalid Memo or OLE object in subquery '|'. +#define E_DAO_InvalidDatabaseM DBDAOERR(3343) //Unrecognized database format '|'. +#define E_DAO_TLVCouldNotBindRef DBDAOERR(3344) //Unknown or invalid reference '|1' in validation expression or default value in table '|2'. +#define E_DAO_CouldNotBindRef DBDAOERR(3345) //Unknown or invalid field reference '|'. +#define E_DAO_QueryWrongNumDestCol DBDAOERR(3346) //Number of query values and destination fields aren't the same. +#define E_DAO_QueryPKeyNotOutput DBDAOERR(3347) //Can't add record(s); primary key for table '|' not in recordset. +#define E_DAO_QueryJKeyNotOutput DBDAOERR(3348) //Can't add record(s); join key of table '|' not in recordset. +#define E_DAO_NumericFieldOverflow DBDAOERR(3349) //Numeric field overflow. +#define E_DAO_InvalidObject DBDAOERR(3350) //Object is invalid for operation. +#define E_DAO_OrderVsUnion DBDAOERR(3351) //ORDER BY expression (|) uses non-output fields. +#define E_DAO_NoInsertColumnNameM DBDAOERR(3352) //No destination field name in INSERT INTO statement (|). +#define E_DAO_MissingDDFFile DBDAOERR(3353) //Btrieve: Can't find file FIELD.DDF. +#define E_DAO_SingleRecordExpected DBDAOERR(3354) //At most one record can be returned by this subquery. +#define E_DAO_DefaultExprSyntax DBDAOERR(3355) //Syntax error in default value. +#define E_DAO_ExclusiveDBConflict DBDAOERR(3356) //The database is opened by user '|2' on machine '|1'. +#define E_DAO_QueryIsNotDDL DBDAOERR(3357) //This query is not a properly formed data-definition query. +#define E_DAO_SysDatabaseOpenError DBDAOERR(3358) //Can't open Microsoft Jet engine system database. +#define E_DAO_SQLInvalidSPT DBDAOERR(3359) //Pass-through query must contain at least one character. +#define E_DAO_QueryTooComplex DBDAOERR(3360) //Query is too complex. +#define E_DAO_SetOpInvalidInSubquery DBDAOERR(3361) //Unions not allowed in a subquery. +#define E_DAO_RmtMultiRowUpdate DBDAOERR(3362) //Single-row update/delete affected more than one row of an attached (linked) table. Unique index contains duplicate values. +#define E_DAO_QueryNoJoinedRecord DBDAOERR(3363) //Record(s) can't be added; no corresponding record on the 'one' side. +#define E_DAO_QueryLVInSetOp DBDAOERR(3364) //Can't use Memo or OLE object field '|' in SELECT clause of a union query. +#define E_DAO_VtoInvalidOnRemote DBDAOERR(3365) //Property value not valid for REMOTE objects. +#define E_DAO_VtoNoFieldsRel DBDAOERR(3366) //Can't append a relation with no fields defined. +#define E_DAO_VtoObjectInCollection DBDAOERR(3367) //Can't append. Object already in collection. +#define E_DAO_DDLDiffNumRelCols DBDAOERR(3368) //Relationship must be on the same number of fields with the same data types. +#define E_DAO_DDLIndexColNotFound DBDAOERR(3369) //Can't find field in index definition. +#define E_DAO_DDLPermissionDenied DBDAOERR(3370) //Can't modify the design of table '|'. It's in a read-only database. +#define E_DAO_DDLObjectNotFound DBDAOERR(3371) //Can't find table or constraint. +#define E_DAO_DDLIndexNotFound DBDAOERR(3372) //No such index '|2' on table '|1'. +#define E_DAO_DDLNoPkeyOnRefdTable DBDAOERR(3373) //Can't create relationship. Referenced table '|' doesn't have a primary key. +#define E_DAO_DDLColumnsNotUnique DBDAOERR(3374) //The specified fields are not uniquely indexed in table '|'. +#define E_DAO_DDLIndexDuplicate DBDAOERR(3375) //Table '|1' already has an index named '|2' +#define E_DAO_DDLTableNotFound DBDAOERR(3376) //Table '|' doesn't exist. +#define E_DAO_DDLRelNotFound DBDAOERR(3377) //No such relationship '|2' on table '|1'. +#define E_DAO_DDLRelDuplicate DBDAOERR(3378) //There is already a relationship named '|' in the current database. +#define E_DAO_DDLIntegrityViolation DBDAOERR(3379) //Can't create relationships to enforce referential integrity. Existing data in table '|2' violates referential integrity rules with related table '|1'. +#define E_DAO_DDLColumnDuplicate DBDAOERR(3380) //Field '|2' already exists in table '|1'. +#define E_DAO_DDLColumnNotFound DBDAOERR(3381) //There is no field named '|2' in table '|1'. +#define E_DAO_DDLColumnTooBig DBDAOERR(3382) //The size of field '|' is too long. +#define E_DAO_DDLColumnInRel DBDAOERR(3383) //Can't delete field '|'. It's part of one or more relationships. +#define E_DAO_VtoCantDeleteBuiltIn DBDAOERR(3384) //Can't delete a built-in property. +#define E_DAO_VtoUDPsDontSupportNull DBDAOERR(3385) //User-defined properties don't support a Null value. +#define E_DAO_VtoMissingRequiredParm DBDAOERR(3386) //Property '|' must be set before using this method. +#define E_DAO_JetJetInitInvalidPath DBDAOERR(3387) //Can't find TEMP directory. +#define E_DAO_TLVExprUnknownFunctionM DBDAOERR(3388) //Unknown function '|2' in validation expression or default value on '|1'. +#define E_DAO_QueryNotSupported DBDAOERR(3389) //Query support unavailable. +#define E_DAO_AccountDuplicate DBDAOERR(3390) //Account name already exists. +#define E_DAO_JetwrnPropCouldNotSave DBDAOERR(3391) //An error has occurred. Properties were not saved. +#define E_DAO_RelNoPrimaryIndexM DBDAOERR(3392) //There is no primary key in table '|'. +#define E_DAO_QueryKeyTooBig DBDAOERR(3393) //Can't perform join, group, sort, or indexed restriction. A value being searched or sorted on is too long. +#define E_DAO_PropMustBeDDL DBDAOERR(3394) //Can't save property; property is a schema property. +#define E_DAO_IllegalRIConstraint DBDAOERR(3395) //Invalid referential integrity constraint. +#define E_DAO_RIViolationMasterCM DBDAOERR(3396) //Can't perform cascading operation. Since related records exist in table '|', referential integrity rules would be violated. +#define E_DAO_RIViolationSlaveCM DBDAOERR(3397) //Can't perform cascading operation. There must be a related record in table '|'. +#define E_DAO_RIKeyNullDisallowedCM DBDAOERR(3398) //Can't perform cascading operation. It would result in a null key in table '|'. +#define E_DAO_RIKeyDuplicateCM DBDAOERR(3399) //Can't perform cascading operation. It would result in a duplicate key in table '|'. +#define E_DAO_RIUpdateTwiceCM DBDAOERR(3400) //Can't perform cascading operation. It would result in two updates on field '|2' in table '|1'. +#define E_DAO_RITLVNoNullCM DBDAOERR(3401) //Can't perform cascading operation. It would cause field '|' to become null, which is not allowed. +#define E_DAO_RITLVNoBlankCM DBDAOERR(3402) //Can't perform cascading operation. It would cause field '|' to become a zero-length string, which is not allowed. +#define E_DAO_RITLVRuleViolationCM DBDAOERR(3403) //Can't perform cascading operation: '|' +#define E_DAO_RITLVRuleVioCNoMessage DBDAOERR(3404) //Can't perform cascading operation. The value entered is prohibited by the validation rule '|2' set for '|1'. +#define E_DAO_TLVRuleEvalEBESErr DBDAOERR(3405) //Error '|' in validation rule. +#define E_DAO_TLVDefaultEvalEBESErr DBDAOERR(3406) //Error '|' in default value. +#define E_DAO_BadMSysConf DBDAOERR(3407) //The server's MSysConf table exists, but is in an incorrect format. Contact your system administrator. +#define E_DAO_TooManyFindSessions DBDAOERR(3408) //Too many FastFind Sessions were invoked. +#define E_DAO_InvalidColumnM DBDAOERR(3409) //Invalid field name '|' in definition of index or relationship. +#define E_DAO_REPReadOnly DBDAOERR(3410) //* +#define E_DAO_RIInvalidBufferSizeCM DBDAOERR(3411) //Invalid entry. Can't perform cascading operation specified in table '|1' because value entered is too big for field '|2'. +#define E_DAO_RIWriteConflictCM DBDAOERR(3412) //| +#define E_DAO_JetSpecialRIWriteConflictCM DBDAOERR(3413) //Can't perform cascading update on table '|1' because it is currently in use by user '|3' on machine '|2'. +#define E_DAO_RISessWriteConflictCM DBDAOERR(3414) //Can't perform cascading update on table '|' because it is currently in use. +#define E_DAO_NoBlank DBDAOERR(3415) //Zero-length string is valid only in a text or Memo field. +#define E_DAO_FutureError DBDAOERR(3416) //| +#define E_DAO_QueryInvalidBulkInput DBDAOERR(3417) //An action query cannot be used as a row source. +#define E_DAO_NetCtrlMismatch DBDAOERR(3418) //Can't open '|'. Another user has the table open using a different network control file or locking style. +#define E_DAO_4xTableWith3xLocking DBDAOERR(3419) //Can't open this Paradox 4.x or Paradox 5.x table because ParadoxNetStyle is set to 3.x in the initialization setting. +#define E_DAO_VtoObjectNotSet DBDAOERR(3420) //Object is invalid or not set. +#define E_DAO_VtoDataConvError DBDAOERR(3421) //Data type conversion error. + +#endif // def _DBDAOERR.H_ + diff --git a/public/sdk/inc/mfc42/dbdaoid.h b/public/sdk/inc/mfc42/dbdaoid.h new file mode 100644 index 000000000..6e97ac95a --- /dev/null +++ b/public/sdk/inc/mfc42/dbdaoid.h @@ -0,0 +1,131 @@ +/************************************************************************ +** D B D A O I D . H * +** * +** OLE DAO component class id definitions * +** * +************************************************************************* +** Copyright (C) 1992-5 by Microsoft Corporation * +** All Rights Reserved * +************************************************************************/ + +/* + All UNICODE IID_... names are the same as the ANSI IID_... name + with a "W" appended to the end. + +*/ + +// Type library +DEFINE_OLEGUID(LIBID_CDAO, 0x00025e01, 0, 0); + +// StdObject +DEFINE_OLEGUID(IID_IDAOStdObject, 0x00025e02, 0, 0); + +// StdCollection +DEFINE_OLEGUID(IID_IDAOStdCollection, 0x00025e03, 0, 0); + +// DBEngine +DEFINE_OLEGUID(CLSID_CDAODBEngine, 0x00025e15, 0, 0); +DEFINE_OLEGUID(IID_IDAODBEngine, 0x00025e16, 0, 0); +DEFINE_OLEGUID(IID_IDAODBEngineW, 0x00025e17, 0, 0); +DEFINE_OLEGUID(CLSID_CDAOPrivDBEngine, 0x00025e19, 0, 0); + +// Error +DEFINE_OLEGUID(IID_IDAOError, 0x00025e1d, 0, 0); +DEFINE_OLEGUID(IID_IDAOErrorW, 0x00025e1e, 0, 0); +DEFINE_OLEGUID(IID_IDAOErrors, 0x00025e1f, 0, 0); +DEFINE_OLEGUID(IID_IDAOErrorsW, 0x00025e20, 0, 0); + +// Property +DEFINE_OLEGUID(IID_IDAOProperty, 0x00025e25, 0, 0); +DEFINE_OLEGUID(IID_IDAOPropertyW, 0x00025e26, 0, 0); +DEFINE_OLEGUID(IID_IDAOProperties, 0x00025e27, 0, 0); +DEFINE_OLEGUID(IID_IDAOPropertiesW, 0x00025e28, 0, 0); + +// Recordset +DEFINE_OLEGUID(IID_IDAORecordset, 0x00025e2d, 0, 0); +DEFINE_OLEGUID(IID_IDAORecordsetW, 0x00025e2e, 0, 0); +DEFINE_OLEGUID(IID_IDAORecordsets, 0x00025e2f, 0, 0); +DEFINE_OLEGUID(IID_IDAORecordsetsW, 0x00025e30, 0, 0); +DEFINE_OLEGUID(IID_ICDAORecordset, 0x00025e31, 0, 0); + +// Workspace +DEFINE_OLEGUID(IID_IDAOWorkspace, 0x00025e3a, 0, 0); +DEFINE_OLEGUID(IID_IDAOWorkspaceW, 0x00025e3b, 0, 0); +DEFINE_OLEGUID(IID_IDAOWorkspaces, 0x00025e3c, 0, 0); +DEFINE_OLEGUID(IID_IDAOWorkspacesW, 0x00025e3d, 0, 0); + +// TableDef +DEFINE_OLEGUID(CLSID_CDAOTableDef, 0x00025e43, 0, 0); +DEFINE_OLEGUID(IID_IDAOTableDef, 0x00025e44, 0, 0); +DEFINE_OLEGUID(IID_IDAOTableDefW, 0x00025e45, 0, 0); +DEFINE_OLEGUID(IID_IDAOTableDefs, 0x00025e46, 0, 0); +DEFINE_OLEGUID(IID_IDAOTableDefsW, 0x00025e47, 0, 0); + +// Field +DEFINE_OLEGUID(CLSID_CDAOField, 0x00025e4c, 0, 0); +DEFINE_OLEGUID(IID_IDAOField, 0x00025e4d, 0, 0); +DEFINE_OLEGUID(IID_IDAOFieldW, 0x00025e4e, 0, 0); +DEFINE_OLEGUID(IID_IDAOFields, 0x00025e4f, 0, 0); +DEFINE_OLEGUID(IID_IDAOFieldsW, 0x00025e50, 0, 0); + +// Index +DEFINE_OLEGUID(CLSID_CDAOIndex, 0x00025e55, 0, 0); +DEFINE_OLEGUID(IID_IDAOIndex, 0x00025e56, 0, 0); +DEFINE_OLEGUID(IID_IDAOIndexW, 0x00025ed7, 0, 0); +DEFINE_OLEGUID(IID_IDAOIndexes, 0x00025e58, 0, 0); +DEFINE_OLEGUID(IID_IDAOIndexesW, 0x00025e59, 0, 0); +DEFINE_OLEGUID(IID_IDAOIndexFields, 0x00025e5a, 0, 0); +DEFINE_OLEGUID(IID_IDAOIndexFieldsW, 0x00025e5b, 0, 0); + +// Group +DEFINE_OLEGUID(CLSID_CDAOGroup, 0x00025e5f, 0, 0); +DEFINE_OLEGUID(IID_IDAOGroup, 0x00025e60, 0, 0); +DEFINE_OLEGUID(IID_IDAOGroupW, 0x00025e61, 0, 0); +DEFINE_OLEGUID(IID_IDAOGroups, 0x00025e62, 0, 0); +DEFINE_OLEGUID(IID_IDAOGroupsW, 0x00025e63, 0, 0); + +// User +DEFINE_OLEGUID(CLSID_CDAOUser, 0x00025e68, 0, 0); +DEFINE_OLEGUID(IID_IDAOUser, 0x00025e69, 0, 0); +DEFINE_OLEGUID(IID_IDAOUserW, 0x00025e6a, 0, 0); +DEFINE_OLEGUID(IID_IDAOUsers, 0x00025e6b, 0, 0); +DEFINE_OLEGUID(IID_IDAOUsersW, 0x00025e6c, 0, 0); + +// Database +DEFINE_OLEGUID(IID_IDAODatabase, 0x00025e71, 0, 0); +DEFINE_OLEGUID(IID_IDAODatabaseW, 0x00025e72, 0, 0); +DEFINE_OLEGUID(IID_IDAODatabases, 0x00025e73, 0, 0); +DEFINE_OLEGUID(IID_IDAODatabasesW, 0x00025e74, 0, 0); + +// QueryDef +DEFINE_OLEGUID(CLSID_CDAOQueryDef, 0x00025e7a, 0, 0); +DEFINE_OLEGUID(IID_IDAOQueryDef, 0x00025e7b, 0, 0); +DEFINE_OLEGUID(IID_IDAOQueryDefW, 0x00025e7c, 0, 0); +DEFINE_OLEGUID(IID_IDAOQueryDefs, 0x00025e7d, 0, 0); +DEFINE_OLEGUID(IID_IDAOQueryDefsW, 0x00025e7e, 0, 0); + +// Parameter +DEFINE_OLEGUID(IID_IDAOParameter, 0x00025e83, 0, 0); +DEFINE_OLEGUID(IID_IDAOParameterW, 0x00025e84, 0, 0); +DEFINE_OLEGUID(IID_IDAOParameters, 0x00025e85, 0, 0); +DEFINE_OLEGUID(IID_IDAOParametersW, 0x00025e86, 0, 0); + +// Relation +DEFINE_OLEGUID(CLSID_CDAORelation, 0x00025e8b, 0, 0); +DEFINE_OLEGUID(IID_IDAORelation, 0x00025e8c, 0, 0); +DEFINE_OLEGUID(IID_IDAORelationW, 0x00025e8d, 0, 0); +DEFINE_OLEGUID(IID_IDAORelations, 0x00025e8e, 0, 0); +DEFINE_OLEGUID(IID_IDAORelationsW, 0x00025e8f, 0, 0); + +// Container +DEFINE_OLEGUID(IID_IDAOContainer, 0x00025e94, 0, 0); +DEFINE_OLEGUID(IID_IDAOContainerW, 0x00025e95, 0, 0); +DEFINE_OLEGUID(IID_IDAOContainers, 0x00025e96, 0, 0); +DEFINE_OLEGUID(IID_IDAOContainersW, 0x00025e97, 0, 0); + +// Document +DEFINE_OLEGUID(IID_IDAODocument, 0x00025e9c, 0, 0); +DEFINE_OLEGUID(IID_IDAODocumentW, 0x00025e9d, 0, 0); +DEFINE_OLEGUID(IID_IDAODocuments, 0x00025e9e, 0, 0); +DEFINE_OLEGUID(IID_IDAODocumentsW, 0x00025e9f, 0, 0); + diff --git a/public/sdk/inc/mfc42/dbdaoint.h b/public/sdk/inc/mfc42/dbdaoint.h new file mode 100644 index 000000000..00d0deea7 --- /dev/null +++ b/public/sdk/inc/mfc42/dbdaoint.h @@ -0,0 +1,776 @@ +/************************************************************************* +** D B D A O I N T . H * +** * +** OLE DAO Interface * +** * +** History * +** ------- * +** File converted from cdaotype.h for use by CDAO clients. * +** * +** * +************************************************************************** +** Copyright (C) 1995 by Microsoft Corporation * +** All Rights Reserved * +**************************************************************************/ +#ifndef _DBDAOINT_H_ +#define _DBDAOINT_H_ + +#ifndef _INC_TCHAR +#include <tchar.h> +#endif + +// Forwards +#define DAODBEngine _DAODBEngine +interface _DAODBEngine; +interface DAOError; +interface DAOErrors; +interface DAOProperty; +interface DAOProperties; +interface DAOWorkspace; +interface DAOWorkspaces; +interface DAODatabase; +interface DAODatabases; +#define DAOTableDef _DAOTableDef +interface _DAOTableDef; +interface DAOTableDefs; +#define DAOQueryDef _DAOQueryDef +interface _DAOQueryDef; +interface DAOQueryDefs; +interface DAORecordset; +interface DAORecordsets; +#define DAOField _DAOField +interface _DAOField; +interface DAOFields; +#define DAOIndex _DAOIndex +interface _DAOIndex; +interface DAOIndexes; +interface DAOParameter; +interface DAOParameters; +#define DAOUser _DAOUser +interface _DAOUser; +interface DAOUsers; +#define DAOGroup _DAOGroup +interface _DAOGroup; +interface DAOGroups; +#define DAORelation _DAORelation +interface _DAORelation; +interface DAORelations; +interface DAOContainer; +interface DAOContainers; +interface DAODocument; +interface DAODocuments; + + +// Constants + const short dbOpenTable = 1; + const short dbOpenDynaset = 2; + const short dbOpenSnapshot = 4; + const short dbEditNone = 0; + const short dbEditInProgress = 1; + const short dbEditAdd = 2; + const short dbDenyWrite = 1; + const short dbDenyRead = 2; + const short dbReadOnly = 4; + const short dbAppendOnly = 8; + const short dbInconsistent = 16; + const short dbConsistent = 32; + const short dbSQLPassThrough = 64; + const short dbFailOnError = 128; + const short dbForwardOnly = 256; + const short dbSeeChanges = 512; + const short dbFixedField = 1; + const short dbVariableField = 2; + const short dbAutoIncrField = 16; + const short dbUpdatableField = 32; + const long dbSystemField = 8192; + const short dbDescending = 1; + const short dbBoolean = 1; + const short dbByte = 2; + const short dbInteger = 3; + const short dbLong = 4; + const short dbCurrency = 5; + const short dbSingle = 6; + const short dbDouble = 7; + const short dbDate = 8; + const short dbText = 10; + const short dbLongBinary = 11; + const short dbMemo = 12; + const short dbGUID = 15; + const long dbRelationUnique = 1; + const long dbRelationDontEnforce = 2; + const long dbRelationInherited = 4; + const long dbRelationUpdateCascade = 256; + const long dbRelationDeleteCascade = 4096; + const long dbRelationLeft = 16777216; + const long dbRelationRight = 33554432; + const long dbAttachExclusive = 65536; + const long dbAttachSavePWD = 131072; + const long dbSystemObject = -2147483646; + const long dbAttachedTable = 1073741824; + const long dbAttachedODBC = 536870912; + const long dbHiddenObject = 1; + const short dbQSelect = 0; + const short dbQAction = 240; + const short dbQCrosstab = 16; + const short dbQDelete = 32; + const short dbQUpdate = 48; + const short dbQAppend = 64; + const short dbQMakeTable = 80; + const short dbQDDL = 96; + const short dbQSQLPassThrough = 112; + const short dbQSetOperation = 128; + const short dbQSPTBulk = 144; + const TCHAR dbLangArabic[] = _T(";LANGID=0x0401;CP=1256;COUNTRY=0";); + const TCHAR dbLangCzech[] = _T(";LANGID=0x0405;CP=1250;COUNTRY=0";); + const TCHAR dbLangDutch[] = _T(";LANGID=0x0413;CP=1252;COUNTRY=0";); + const TCHAR dbLangGeneral[] = _T(";LANGID=0x0409;CP=1252;COUNTRY=0";); + const TCHAR dbLangGreek[] = _T(";LANGID=0x0408;CP=1253;COUNTRY=0";); + const TCHAR dbLangHebrew[] = _T(";LANGID=0x040D;CP=1255;COUNTRY=0";); + const TCHAR dbLangHungarian[] = _T(";LANGID=0x040E;CP=1250;COUNTRY=0";); + const TCHAR dbLangIcelandic[] = _T(";LANGID=0x040F;CP=1252;COUNTRY=0";); + const TCHAR dbLangNordic[] = _T(";LANGID=0x041D;CP=1252;COUNTRY=0";); + const TCHAR dbLangNorwDan[] = _T(";LANGID=0x0414;CP=1252;COUNTRY=0";); + const TCHAR dbLangPolish[] = _T(";LANGID=0x0415;CP=1250;COUNTRY=0";); + const TCHAR dbLangCyrillic[] = _T(";LANGID=0x0419;CP=1251;COUNTRY=0";); + const TCHAR dbLangSpanish[] = _T(";LANGID=0x040A;CP=1252;COUNTRY=0";); + const TCHAR dbLangSwedFin[] = _T(";LANGID=0x040B;CP=1252;COUNTRY=0";); + const TCHAR dbLangTurkish[] = _T(";LANGID=0x041F;CP=1254;COUNTRY=0";); + const TCHAR dbLangJapanese[] = _T(";LANGID=0x0411;CP=932;COUNTRY=0";); + const TCHAR dbLangChineseSimplified[] = _T(";LANGID=0x0804;CP=936;COUNTRY=0";); + const TCHAR dbLangChineseTraditional[] = _T(";LANGID=0x0404;CP=950;COUNTRY=0";); + const TCHAR dbLangKorean[] = _T(";LANGID=0x040C;CP=494;COUNTRY=0";); + const TCHAR dbLangThai[] = _T(";LANGID=0x101E;CP=874;COUNTRY=0";); + const short dbVersion10 = 1; + const short dbEncrypt = 2; + const short dbDecrypt = 4; + const short dbVersion11 = 8; + const short dbVersion20 = 16; + const short dbVersion30 = 32; + const short dbSortNeutral = 1024; + const short dbSortArabic = 1025; + const short dbSortCyrillic = 1049; + const short dbSortCzech = 1029; + const short dbSortDutch = 1043; + const short dbSortGeneral = 1033; + const short dbSortGreek = 1032; + const short dbSortHebrew = 1037; + const short dbSortHungarian = 1038; + const short dbSortIcelandic = 1039; + const short dbSortNorwdan = 1030; + const short dbSortPDXIntl = 1033; + const short dbSortPDXNor = 1030; + const short dbSortPDXSwe = 1053; + const short dbSortPolish = 1045; + const short dbSortSpanish = 1034; + const short dbSortSwedFin = 1053; + const short dbSortTurkish = 1055; + const short dbSortJapanese = 1041; + const short dbSortChineseSimplified = 2052; + const short dbSortChineseTraditional = 1028; + const short dbSortKorean = 1036; + const short dbSortThai = 4126; + const short dbSortUndefined = -1; + const short dbFreeLocks = 1; + const long dbSecNoAccess = 0; + const long dbSecFullAccess = 1048575; + const long dbSecDelete = 65536; + const long dbSecReadSec = 131072; + const long dbSecWriteSec = 262144; + const long dbSecWriteOwner = 524288; + const long dbSecDBCreate = 1; + const long dbSecDBOpen = 2; + const long dbSecDBExclusive = 4; + const long dbSecDBAdmin = 8; + const long dbSecCreate = 1; + const long dbSecReadDef = 4; + const long dbSecWriteDef = 65548; + const long dbSecRetrieveData = 20; + const long dbSecInsertData = 32; + const long dbSecReplaceData = 64; + const long dbSecDeleteData = 128; + const long dbRepExportChanges = 1; + const long dbRepImportChanges = 2; + const long dbRepImpExpChanges = 4; + const long dbRepMakeReadOnly = 2; +// Interface: _DAOCollection +#undef INTERFACE +#define INTERFACE _DAOCollection +DECLARE_INTERFACE_(_DAOCollection, IDispatch) + { + STDMETHOD(get_Count) (THIS_ short FAR* c) PURE; + STDMETHOD(_NewEnum) (THIS_ IUnknown * FAR* ppunk) PURE; + STDMETHOD(Refresh) (THIS) PURE; + }; + +// Interface: _DAODynaCollection +#undef INTERFACE +#define INTERFACE _DAODynaCollection +DECLARE_INTERFACE_(_DAODynaCollection, _DAOCollection) + { + STDMETHOD(Append) (THIS_ IDispatch * Object) PURE; + STDMETHOD(Delete) (THIS_ BSTR Name) PURE; + }; + +// Interface: _DAO +#undef INTERFACE +#define INTERFACE _DAO +DECLARE_INTERFACE_(_DAO, IDispatch) + { + STDMETHOD(get_Properties) (THIS_ DAOProperties FAR* FAR* ppprops) PURE; + }; + +// Interface: _DAODBEngine +#undef INTERFACE +#define INTERFACE _DAODBEngine +DECLARE_INTERFACE_(_DAODBEngine, _DAO) + { + STDMETHOD(get_Version) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_IniPath) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_IniPath) (THIS_ BSTR path) PURE; + STDMETHOD(put_DefaultUser) (THIS_ BSTR user) PURE; + STDMETHOD(put_DefaultPassword) (THIS_ BSTR pw) PURE; + STDMETHOD(get_LoginTimeout) (THIS_ short FAR* ps) PURE; + STDMETHOD(put_LoginTimeout) (THIS_ short Timeout) PURE; + STDMETHOD(get_Workspaces) (THIS_ DAOWorkspaces FAR* FAR* ppworks) PURE; + STDMETHOD(get_Errors) (THIS_ DAOErrors FAR* FAR* pperrs) PURE; + STDMETHOD(Idle) (THIS_ VARIANT Action) PURE; + STDMETHOD(CompactDatabase) (THIS_ BSTR SrcName, BSTR DstName, VARIANT DstConnect, VARIANT Options, VARIANT SrcConnect) PURE; + STDMETHOD(RepairDatabase) (THIS_ BSTR Name) PURE; + STDMETHOD(RegisterDatabase) (THIS_ BSTR Dsn, BSTR Driver, VARIANT_BOOL Silent, BSTR Attributes) PURE; + STDMETHOD(CreateWorkspace) (THIS_ BSTR Name, BSTR UserName, BSTR Password, DAOWorkspace FAR* FAR* ppwrk) PURE; + STDMETHOD(OpenDatabase) (THIS_ BSTR Name, VARIANT Exclusive, VARIANT ReadOnly, VARIANT Connect, DAODatabase FAR* FAR* ppdb) PURE; + STDMETHOD(CreateDatabase) (THIS_ BSTR Name, BSTR Connect, VARIANT Option, DAODatabase FAR* FAR* ppdb) PURE; + STDMETHOD(FreeLocks) (THIS) PURE; + STDMETHOD(BeginTrans) (THIS) PURE; + STDMETHOD(CommitTrans) (THIS) PURE; + STDMETHOD(Rollback) (THIS) PURE; + STDMETHOD(SetDefaultWorkspace) (THIS_ BSTR Name, BSTR Password) PURE; + STDMETHOD(SetDataAccessOption) (THIS_ short Option, VARIANT Value) PURE; + STDMETHOD(ISAMStats) (THIS_ long StatNum, VARIANT Reset, long FAR* pl) PURE; + STDMETHOD(get_SystemDB) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_SystemDB) (THIS_ BSTR SystemDBPath) PURE; + }; + +// Interface: DAOError +#undef INTERFACE +#define INTERFACE DAOError +DECLARE_INTERFACE_(DAOError, IDispatch) + { + STDMETHOD(get_Number) (THIS_ long FAR* pl) PURE; + STDMETHOD(get_Source) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_Description) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_HelpFile) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_HelpContext) (THIS_ long FAR* pl) PURE; + }; + +// Interface: DAOErrors +#undef INTERFACE +#define INTERFACE DAOErrors +DECLARE_INTERFACE_(DAOErrors, _DAOCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAOError FAR* FAR* pperr) PURE; + }; + +// Interface: DAOWorkspace +#undef INTERFACE +#define INTERFACE DAOWorkspace +DECLARE_INTERFACE_(DAOWorkspace, _DAO) + { + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Name) (THIS_ BSTR Name) PURE; + STDMETHOD(get_UserName) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_UserName) (THIS_ BSTR UserName) PURE; + STDMETHOD(put_Password) (THIS_ BSTR Password) PURE; + STDMETHOD(get_IsolateODBCTrans) (THIS_ short FAR* ps) PURE; + STDMETHOD(put_IsolateODBCTrans) (THIS_ short s) PURE; + STDMETHOD(get_Databases) (THIS_ DAODatabases FAR* FAR* ppdbs) PURE; + STDMETHOD(get_Users) (THIS_ DAOUsers FAR* FAR* ppusrs) PURE; + STDMETHOD(get_Groups) (THIS_ DAOGroups FAR* FAR* ppgrps) PURE; + STDMETHOD(BeginTrans) (THIS) PURE; + STDMETHOD(CommitTrans) (THIS) PURE; + STDMETHOD(Close) (THIS) PURE; + STDMETHOD(Rollback) (THIS) PURE; + STDMETHOD(OpenDatabase) (THIS_ BSTR Name, VARIANT Exclusive, VARIANT ReadOnly, VARIANT Connect, DAODatabase FAR* FAR* ppdb) PURE; + STDMETHOD(CreateDatabase) (THIS_ BSTR Name, BSTR Connect, VARIANT Option, DAODatabase FAR* FAR* ppdb) PURE; + STDMETHOD(CreateUser) (THIS_ VARIANT Name, VARIANT PID, VARIANT Password, DAOUser FAR* FAR* ppusr) PURE; + STDMETHOD(CreateGroup) (THIS_ VARIANT Name, VARIANT PID, DAOGroup FAR* FAR* ppgrp) PURE; + }; + +// Interface: DAOWorkspaces +#undef INTERFACE +#define INTERFACE DAOWorkspaces +DECLARE_INTERFACE_(DAOWorkspaces, _DAODynaCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAOWorkspace FAR* FAR* ppwrk) PURE; + }; + +// Interface: _DAOTableDef +#undef INTERFACE +#define INTERFACE _DAOTableDef +DECLARE_INTERFACE_(_DAOTableDef, _DAO) + { + STDMETHOD(get_Attributes) (THIS_ long FAR* pl) PURE; + STDMETHOD(put_Attributes) (THIS_ long Attributes) PURE; + STDMETHOD(get_Connect) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Connect) (THIS_ BSTR Connection) PURE; + STDMETHOD(get_DateCreated) (THIS_ VARIANT FAR* pvar) PURE; + STDMETHOD(get_LastUpdated) (THIS_ VARIANT FAR* pvar) PURE; + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Name) (THIS_ BSTR Name) PURE; + STDMETHOD(get_SourceTableName) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_SourceTableName) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_Updatable) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(get_ValidationText) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_ValidationText) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_ValidationRule) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_ValidationRule) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_RecordCount) (THIS_ long FAR* pl) PURE; + STDMETHOD(get_Fields) (THIS_ DAOFields FAR* FAR* ppflds) PURE; + STDMETHOD(get_Indexes) (THIS_ DAOIndexes FAR* FAR* ppidxs) PURE; + STDMETHOD(OpenRecordset) (THIS_ VARIANT Type, VARIANT Options, DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(RefreshLink) (THIS) PURE; + STDMETHOD(CreateField) (THIS_ VARIANT Name, VARIANT Type, VARIANT Size, DAOField FAR* FAR* ppfld) PURE; + STDMETHOD(CreateIndex) (THIS_ VARIANT Name, DAOIndex FAR* FAR* ppidx) PURE; + STDMETHOD(CreateProperty) (THIS_ VARIANT Name, VARIANT Type, VARIANT Value, VARIANT DDL, DAOProperty FAR* FAR* pprp) PURE; + STDMETHOD(get_ConflictTable) (THIS_ BSTR FAR* pbstr) PURE; + }; + +// Interface: DAOTableDefs +#undef INTERFACE +#define INTERFACE DAOTableDefs +DECLARE_INTERFACE_(DAOTableDefs, _DAODynaCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAOTableDef FAR* FAR* pptdf) PURE; + }; + +// Interface: DAODatabase +#undef INTERFACE +#define INTERFACE DAODatabase +DECLARE_INTERFACE_(DAODatabase, _DAO) + { + STDMETHOD(get_CollatingOrder) (THIS_ long FAR* pl) PURE; + STDMETHOD(get_Connect) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_QueryTimeout) (THIS_ short FAR* ps) PURE; + STDMETHOD(put_QueryTimeout) (THIS_ short Timeout) PURE; + STDMETHOD(get_Transactions) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(get_Updatable) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(get_Version) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_RecordsAffected) (THIS_ long FAR* pl) PURE; + STDMETHOD(get_TableDefs) (THIS_ DAOTableDefs FAR* FAR* pptdfs) PURE; + STDMETHOD(get_QueryDefs) (THIS_ DAOQueryDefs FAR* FAR* ppqdfs) PURE; + STDMETHOD(get_Relations) (THIS_ DAORelations FAR* FAR* pprls) PURE; + STDMETHOD(get_Containers) (THIS_ DAOContainers FAR* FAR* ppctns) PURE; + STDMETHOD(get_Recordsets) (THIS_ DAORecordsets FAR* FAR* pprsts) PURE; + STDMETHOD(Close) (THIS) PURE; + STDMETHOD(Execute) (THIS_ BSTR Query, VARIANT Options) PURE; + STDMETHOD(OpenRecordset) (THIS_ BSTR Name, VARIANT Type, VARIANT Options, DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(CreateProperty) (THIS_ VARIANT Name, VARIANT Type, VARIANT Value, VARIANT DDL, DAOProperty FAR* FAR* pprp) PURE; + STDMETHOD(CreateRelation) (THIS_ VARIANT Name, VARIANT Table, VARIANT ForeignTable, VARIANT Attributes, DAORelation FAR* FAR* pprel) PURE; + STDMETHOD(CreateTableDef) (THIS_ VARIANT Name, VARIANT Attributes, VARIANT SourceTablename, VARIANT Connect, DAOTableDef FAR* FAR* pptdf) PURE; + STDMETHOD(BeginTrans) (THIS) PURE; + STDMETHOD(CommitTrans) (THIS) PURE; + STDMETHOD(Rollback) (THIS) PURE; + STDMETHOD(CreateDynaset) (THIS_ BSTR Name, VARIANT Options, VARIANT Inconsistent, DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(CreateQueryDef) (THIS_ VARIANT Name, VARIANT SQLText, DAOQueryDef FAR* FAR* ppqdf) PURE; + STDMETHOD(CreateSnapshot) (THIS_ BSTR Source, VARIANT Options, DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(DeleteQueryDef) (THIS_ BSTR Name) PURE; + STDMETHOD(ExecuteSQL) (THIS_ BSTR SQL, long FAR* pl) PURE; + STDMETHOD(ListFields) (THIS_ BSTR Name, DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(ListTables) (THIS_ DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(OpenQueryDef) (THIS_ BSTR Name, DAOQueryDef FAR* FAR* ppqdf) PURE; + STDMETHOD(OpenTable) (THIS_ BSTR Name, VARIANT Options, DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(get_ReplicaID) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_DesignMasterID) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_DesignMasterID) (THIS_ BSTR MasterID) PURE; + STDMETHOD(Synchronize) (THIS_ BSTR DbPathName, VARIANT ExchangeType) PURE; + STDMETHOD(MakeReplica) (THIS_ BSTR PathName, BSTR Description, VARIANT Options) PURE; + STDMETHOD(put_Connect) (THIS_ BSTR ODBCConnnect) PURE; + STDMETHOD(NewPassword) (THIS_ BSTR bstrOld, BSTR bstrNew) PURE; + }; + +// Interface: DAODatabases +#undef INTERFACE +#define INTERFACE DAODatabases +DECLARE_INTERFACE_(DAODatabases, _DAOCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAODatabase FAR* FAR* ppdb) PURE; + }; + +// Interface: _DAOQueryDef +#undef INTERFACE +#define INTERFACE _DAOQueryDef +DECLARE_INTERFACE_(_DAOQueryDef, _DAO) + { + STDMETHOD(get_DateCreated) (THIS_ VARIANT FAR* pvar) PURE; + STDMETHOD(get_LastUpdated) (THIS_ VARIANT FAR* pvar) PURE; + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Name) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_ODBCTimeout) (THIS_ short FAR* ps) PURE; + STDMETHOD(put_ODBCTimeout) (THIS_ short timeout) PURE; + STDMETHOD(get_Type) (THIS_ short FAR* pi) PURE; + STDMETHOD(get_SQL) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_SQL) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_Updatable) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(get_Connect) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Connect) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_ReturnsRecords) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(put_ReturnsRecords) (THIS_ VARIANT_BOOL f) PURE; + STDMETHOD(get_RecordsAffected) (THIS_ long FAR* pl) PURE; + STDMETHOD(get_Fields) (THIS_ DAOFields FAR* FAR* ppflds) PURE; + STDMETHOD(get_Parameters) (THIS_ DAOParameters FAR* FAR* ppprms) PURE; + STDMETHOD(Close) (THIS) PURE; + STDMETHOD(OpenRecordset) (THIS_ VARIANT Type, VARIANT Options, DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(_OpenRecordset) (THIS_ VARIANT Type, VARIANT Options, DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(_Copy) (THIS_ DAOQueryDef FAR* FAR* ppqdf) PURE; + STDMETHOD(Execute) (THIS_ VARIANT Options) PURE; + STDMETHOD(Compare) (THIS_ DAOQueryDef FAR* pQdef, short FAR* lps) PURE; + STDMETHOD(CreateDynaset) (THIS_ VARIANT Options, VARIANT Inconsistent, DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(CreateSnapshot) (THIS_ VARIANT Options, DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(ListParameters) (THIS_ DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(CreateProperty) (THIS_ VARIANT Name, VARIANT Type, VARIANT Value, VARIANT DDL, DAOProperty FAR* FAR* pprp) PURE; + }; + +// Interface: DAOQueryDefs +#undef INTERFACE +#define INTERFACE DAOQueryDefs +DECLARE_INTERFACE_(DAOQueryDefs, _DAODynaCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAOQueryDef FAR* FAR* ppqdef) PURE; + }; + +// Interface: DAORecordset +#undef INTERFACE +#define INTERFACE DAORecordset +DECLARE_INTERFACE_(DAORecordset, _DAO) + { + STDMETHOD(get_BOF) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(get_Bookmark) (THIS_ SAFEARRAY FAR* FAR* ppsach) PURE; + STDMETHOD(put_Bookmark) (THIS_ SAFEARRAY FAR* FAR* psach) PURE; + STDMETHOD(get_Bookmarkable) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(get_DateCreated) (THIS_ VARIANT FAR* pvar) PURE; + STDMETHOD(get_EOF) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(get_Filter) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Filter) (THIS_ BSTR Filter) PURE; + STDMETHOD(get_Index) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Index) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_LastModified) (THIS_ SAFEARRAY FAR* FAR* ppsa) PURE; + STDMETHOD(get_LastUpdated) (THIS_ VARIANT FAR* pvar) PURE; + STDMETHOD(get_LockEdits) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(put_LockEdits) (THIS_ VARIANT_BOOL Lock) PURE; + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_NoMatch) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(get_Sort) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Sort) (THIS_ BSTR Sort) PURE; + STDMETHOD(get_Transactions) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(get_Type) (THIS_ short FAR* ps) PURE; + STDMETHOD(get_RecordCount) (THIS_ long FAR* pl) PURE; + STDMETHOD(get_Updatable) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(get_Restartable) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(get_ValidationText) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_ValidationRule) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_CacheStart) (THIS_ SAFEARRAY FAR* FAR* ppsa) PURE; + STDMETHOD(put_CacheStart) (THIS_ SAFEARRAY FAR* FAR* psa) PURE; + STDMETHOD(get_CacheSize) (THIS_ long FAR* pl) PURE; + STDMETHOD(put_CacheSize) (THIS_ long CacheSize) PURE; + STDMETHOD(get_PercentPosition) (THIS_ float FAR* pd) PURE; + STDMETHOD(put_PercentPosition) (THIS_ float Position) PURE; + STDMETHOD(get_AbsolutePosition) (THIS_ long FAR* pl) PURE; + STDMETHOD(put_AbsolutePosition) (THIS_ long Position) PURE; + STDMETHOD(get_EditMode) (THIS_ short FAR* pi) PURE; + STDMETHOD(get_ODBCFetchCount) (THIS_ long FAR* pl) PURE; + STDMETHOD(get_ODBCFetchDelay) (THIS_ long FAR* pl) PURE; + STDMETHOD(get_Parent) (THIS_ DAODatabase FAR* FAR* pdb) PURE; + STDMETHOD(get_Fields) (THIS_ DAOFields FAR* FAR* ppflds) PURE; + STDMETHOD(get_Indexes) (THIS_ DAOIndexes FAR* FAR* ppidxs) PURE; + STDMETHOD(CancelUpdate) (THIS) PURE; + STDMETHOD(AddNew) (THIS) PURE; + STDMETHOD(Close) (THIS) PURE; + STDMETHOD(OpenRecordset) (THIS_ VARIANT Type, VARIANT Options, DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(Delete) (THIS) PURE; + STDMETHOD(Edit) (THIS) PURE; + STDMETHOD(FindFirst) (THIS_ BSTR Criteria) PURE; + STDMETHOD(FindLast) (THIS_ BSTR Criteria) PURE; + STDMETHOD(FindNext) (THIS_ BSTR Criteria) PURE; + STDMETHOD(FindPrevious) (THIS_ BSTR Criteria) PURE; + STDMETHOD(MoveFirst) (THIS) PURE; + STDMETHOD(MoveLast) (THIS) PURE; + STDMETHOD(MoveNext) (THIS) PURE; + STDMETHOD(MovePrevious) (THIS) PURE; + STDMETHOD(Seek) (THIS_ BSTR Comparison, VARIANT Key1, VARIANT Key2, VARIANT Key3, VARIANT Key4, VARIANT Key5, VARIANT Key6, VARIANT Key7, VARIANT Key8, VARIANT Key9, VARIANT Key10, VARIANT Key11, VARIANT Key12, VARIANT Key13) PURE; + STDMETHOD(Update) (THIS) PURE; + STDMETHOD(Clone) (THIS_ DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(Requery) (THIS_ VARIANT NewQueryDef) PURE; + STDMETHOD(Move) (THIS_ long Rows, VARIANT StartBookmark) PURE; + STDMETHOD(FillCache) (THIS_ VARIANT Rows, VARIANT StartBookmark) PURE; + STDMETHOD(CreateDynaset) (THIS_ VARIANT Options, VARIANT Inconsistent, DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(CreateSnapshot) (THIS_ VARIANT Options, DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(CopyQueryDef) (THIS_ DAOQueryDef FAR* FAR* ppqdf) PURE; + STDMETHOD(ListFields) (THIS_ DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(ListIndexes) (THIS_ DAORecordset FAR* FAR* pprst) PURE; + STDMETHOD(GetRows) (THIS_ VARIANT cRows, VARIANT FAR* pvar) PURE; + STDMETHOD(get_Collect) (THIS_ VARIANT index, VARIANT FAR* pvar) PURE; + STDMETHOD(put_Collect) (THIS_ VARIANT index, VARIANT value) PURE; + }; + +// Interface: DAORecordsets +#undef INTERFACE +#define INTERFACE DAORecordsets +DECLARE_INTERFACE_(DAORecordsets, _DAOCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAORecordset FAR* FAR* pprst) PURE; + }; + +// Interface: _DAOField +#undef INTERFACE +#define INTERFACE _DAOField +DECLARE_INTERFACE_(_DAOField, _DAO) + { + STDMETHOD(get_CollatingOrder) (THIS_ long FAR* pl) PURE; + STDMETHOD(get_Type) (THIS_ short FAR* ps) PURE; + STDMETHOD(put_Type) (THIS_ short Type) PURE; + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Name) (THIS_ BSTR Name) PURE; + STDMETHOD(get_Size) (THIS_ long FAR* pl) PURE; + STDMETHOD(put_Size) (THIS_ long Size) PURE; + STDMETHOD(get_SourceField) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_SourceTable) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_Value) (THIS_ VARIANT FAR* pvar) PURE; + STDMETHOD(put_Value) (THIS_ VARIANT Val) PURE; + STDMETHOD(get_Attributes) (THIS_ long FAR* pl) PURE; + STDMETHOD(put_Attributes) (THIS_ long Attr) PURE; + STDMETHOD(get_OrdinalPosition) (THIS_ short FAR* ps) PURE; + STDMETHOD(put_OrdinalPosition) (THIS_ short Pos) PURE; + STDMETHOD(get_ValidationText) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_ValidationText) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_ValidateOnSet) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(put_ValidateOnSet) (THIS_ VARIANT_BOOL Validate) PURE; + STDMETHOD(get_ValidationRule) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_ValidationRule) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_DefaultValue) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_DefaultValue) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_Required) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(put_Required) (THIS_ VARIANT_BOOL fReq) PURE; + STDMETHOD(get_AllowZeroLength) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(put_AllowZeroLength) (THIS_ VARIANT_BOOL fAllow) PURE; + STDMETHOD(get_DataUpdatable) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(get_ForeignName) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_ForeignName) (THIS_ BSTR bstr) PURE; + STDMETHOD(AppendChunk) (THIS_ VARIANT Val) PURE; + STDMETHOD(GetChunk) (THIS_ long Offset, long Bytes, VARIANT FAR* pvar) PURE; + STDMETHOD(FieldSize) (THIS_ long FAR* pl) PURE; + STDMETHOD(CreateProperty) (THIS_ VARIANT Name, VARIANT Type, VARIANT Value, VARIANT DDL, DAOProperty FAR* FAR* pprp) PURE; + STDMETHOD(get_CollectionIndex) (THIS_ short FAR* i) PURE; + }; + +// Interface: DAOFields +#undef INTERFACE +#define INTERFACE DAOFields +DECLARE_INTERFACE_(DAOFields, _DAODynaCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAOField FAR* FAR* ppfld) PURE; + }; + +// Interface: _DAOIndex +#undef INTERFACE +#define INTERFACE _DAOIndex +DECLARE_INTERFACE_(_DAOIndex, _DAO) + { + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Name) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_Foreign) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(get_Unique) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(put_Unique) (THIS_ VARIANT_BOOL fUnique) PURE; + STDMETHOD(get_Clustered) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(put_Clustered) (THIS_ VARIANT_BOOL fClustered) PURE; + STDMETHOD(get_Required) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(put_Required) (THIS_ VARIANT_BOOL fRequired) PURE; + STDMETHOD(get_IgnoreNulls) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(put_IgnoreNulls) (THIS_ VARIANT_BOOL fIgnoreNulls) PURE; + STDMETHOD(get_Primary) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(put_Primary) (THIS_ VARIANT_BOOL fPrimary) PURE; + STDMETHOD(get_DistinctCount) (THIS_ long FAR* pl) PURE; + STDMETHOD(get_Fields) (THIS_ VARIANT FAR* pv) PURE; + STDMETHOD(put_Fields) (THIS_ VARIANT v) PURE; + STDMETHOD(CreateField) (THIS_ VARIANT Name, VARIANT Type, VARIANT Size, DAOField FAR* FAR* ppfld) PURE; + STDMETHOD(CreateProperty) (THIS_ VARIANT Name, VARIANT Type, VARIANT Value, VARIANT DDL, DAOProperty FAR* FAR* pprp) PURE; + }; + +// Interface: DAOIndexes +#undef INTERFACE +#define INTERFACE DAOIndexes +DECLARE_INTERFACE_(DAOIndexes, _DAODynaCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAOIndex FAR* FAR* ppidx) PURE; + }; + +// Interface: DAOIndexFields +#undef INTERFACE +#define INTERFACE DAOIndexFields +DECLARE_INTERFACE_(DAOIndexFields, _DAODynaCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, VARIANT FAR* pvar) PURE; + }; + +// Interface: DAOParameter +#undef INTERFACE +#define INTERFACE DAOParameter +DECLARE_INTERFACE_(DAOParameter, _DAO) + { + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_Value) (THIS_ VARIANT FAR* pvar) PURE; + STDMETHOD(put_Value) (THIS_ VARIANT val) PURE; + STDMETHOD(get_Type) (THIS_ short FAR* ps) PURE; + }; + +// Interface: DAOParameters +#undef INTERFACE +#define INTERFACE DAOParameters +DECLARE_INTERFACE_(DAOParameters, _DAOCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAOParameter FAR* FAR* ppprm) PURE; + }; + +// Interface: _DAOUser +#undef INTERFACE +#define INTERFACE _DAOUser +DECLARE_INTERFACE_(_DAOUser, _DAO) + { + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Name) (THIS_ BSTR bstr) PURE; + STDMETHOD(put_PID) (THIS_ BSTR bstr) PURE; + STDMETHOD(put_Password) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_Groups) (THIS_ DAOGroups FAR* FAR* ppgrps) PURE; + STDMETHOD(NewPassword) (THIS_ BSTR bstrOld, BSTR bstrNew) PURE; + STDMETHOD(CreateGroup) (THIS_ VARIANT Name, VARIANT PID, DAOGroup FAR* FAR* ppgrp) PURE; + }; + +// Interface: DAOUsers +#undef INTERFACE +#define INTERFACE DAOUsers +DECLARE_INTERFACE_(DAOUsers, _DAODynaCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAOUser FAR* FAR* ppusr) PURE; + }; + +// Interface: _DAOGroup +#undef INTERFACE +#define INTERFACE _DAOGroup +DECLARE_INTERFACE_(_DAOGroup, _DAO) + { + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Name) (THIS_ BSTR bstr) PURE; + STDMETHOD(put_PID) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_Users) (THIS_ DAOUsers FAR* FAR* ppusrs) PURE; + STDMETHOD(CreateUser) (THIS_ VARIANT Name, VARIANT PID, VARIANT Password, DAOUser FAR* FAR* ppusr) PURE; + }; + +// Interface: DAOGroups +#undef INTERFACE +#define INTERFACE DAOGroups +DECLARE_INTERFACE_(DAOGroups, _DAODynaCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAOGroup FAR* FAR* ppgrp) PURE; + }; + +// Interface: _DAORelation +#undef INTERFACE +#define INTERFACE _DAORelation +DECLARE_INTERFACE_(_DAORelation, _DAO) + { + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Name) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_Table) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Table) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_ForeignTable) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_ForeignTable) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_Attributes) (THIS_ long FAR* pl) PURE; + STDMETHOD(put_Attributes) (THIS_ long attr) PURE; + STDMETHOD(get_Fields) (THIS_ DAOFields FAR* FAR* ppflds) PURE; + STDMETHOD(CreateField) (THIS_ VARIANT Name, VARIANT Type, VARIANT Size, DAOField FAR* FAR* ppfld) PURE; + }; + +// Interface: DAORelations +#undef INTERFACE +#define INTERFACE DAORelations +DECLARE_INTERFACE_(DAORelations, _DAODynaCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAORelation FAR* FAR* pprel) PURE; + }; + +// Interface: DAOProperty +#undef INTERFACE +#define INTERFACE DAOProperty +DECLARE_INTERFACE_(DAOProperty, _DAO) + { + STDMETHOD(get_Value) (THIS_ VARIANT FAR* pval) PURE; + STDMETHOD(put_Value) (THIS_ VARIANT val) PURE; + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Name) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_Type) (THIS_ short FAR* ptype) PURE; + STDMETHOD(put_Type) (THIS_ short type) PURE; + STDMETHOD(get_Inherited) (THIS_ VARIANT_BOOL FAR* pb) PURE; + }; + +// Interface: DAOProperties +#undef INTERFACE +#define INTERFACE DAOProperties +DECLARE_INTERFACE_(DAOProperties, _DAODynaCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAOProperty FAR* FAR* ppprop) PURE; + }; + +// Interface: DAOContainer +#undef INTERFACE +#define INTERFACE DAOContainer +DECLARE_INTERFACE_(DAOContainer, _DAO) + { + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_Owner) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Owner) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_UserName) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_UserName) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_Permissions) (THIS_ long FAR* pl) PURE; + STDMETHOD(put_Permissions) (THIS_ long permissions) PURE; + STDMETHOD(get_Inherit) (THIS_ VARIANT_BOOL FAR* pb) PURE; + STDMETHOD(put_Inherit) (THIS_ VARIANT_BOOL fInherit) PURE; + STDMETHOD(get_Documents) (THIS_ DAODocuments FAR* FAR* ppdocs) PURE; + STDMETHOD(get_AllPermissions) (THIS_ long FAR* pl) PURE; + }; + +// Interface: DAOContainers +#undef INTERFACE +#define INTERFACE DAOContainers +DECLARE_INTERFACE_(DAOContainers, _DAOCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAOContainer FAR* FAR* ppctn) PURE; + }; + +// Interface: DAODocument +#undef INTERFACE +#define INTERFACE DAODocument +DECLARE_INTERFACE_(DAODocument, _DAO) + { + STDMETHOD(get_Name) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_Owner) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_Owner) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_Container) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(get_UserName) (THIS_ BSTR FAR* pbstr) PURE; + STDMETHOD(put_UserName) (THIS_ BSTR bstr) PURE; + STDMETHOD(get_Permissions) (THIS_ long FAR* pl) PURE; + STDMETHOD(put_Permissions) (THIS_ long permissions) PURE; + STDMETHOD(get_DateCreated) (THIS_ VARIANT FAR* pvar) PURE; + STDMETHOD(get_LastUpdated) (THIS_ VARIANT FAR* pvar) PURE; + STDMETHOD(get_AllPermissions) (THIS_ long FAR* pl) PURE; + STDMETHOD(CreateProperty) (THIS_ VARIANT Name, VARIANT Type, VARIANT Value, VARIANT DDL, DAOProperty FAR* FAR* pprp) PURE; + }; + +// Interface: DAODocuments +#undef INTERFACE +#define INTERFACE DAODocuments +DECLARE_INTERFACE_(DAODocuments, _DAOCollection) + { + STDMETHOD(get_Item) (THIS_ VARIANT index, DAODocument FAR* FAR* ppdoc) PURE; + }; + +#endif // _DBDAOINT_H_ diff --git a/public/sdk/inc/mfc42/docobj.h b/public/sdk/inc/mfc42/docobj.h new file mode 100644 index 000000000..acda9e712 --- /dev/null +++ b/public/sdk/inc/mfc42/docobj.h @@ -0,0 +1,1654 @@ +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + +/* File created by MIDL compiler version 3.00.15 */ +/* at Thu Jun 13 20:25:19 1996 + */ +/* Compiler settings for docobj.idl: + Oi, W1, Zp8, env=Win32, ms_ext, c_ext + error checks: none +*/ +//@@MIDL_FILE_HEADING( ) +#include "rpc.h" +#include "rpcndr.h" +#ifndef COM_NO_WINDOWS_H +#include "windows.h" +#include "ole2.h" +#endif /*COM_NO_WINDOWS_H*/ + +#ifndef __docobj_h__ +#define __docobj_h__ + +#ifdef __cplusplus +extern "C"{ +#endif + +/* Forward Declarations */ + +#ifndef __IOleDocument_FWD_DEFINED__ +#define __IOleDocument_FWD_DEFINED__ +typedef interface IOleDocument IOleDocument; +#endif /* __IOleDocument_FWD_DEFINED__ */ + + +#ifndef __IOleDocumentSite_FWD_DEFINED__ +#define __IOleDocumentSite_FWD_DEFINED__ +typedef interface IOleDocumentSite IOleDocumentSite; +#endif /* __IOleDocumentSite_FWD_DEFINED__ */ + + +#ifndef __IOleDocumentView_FWD_DEFINED__ +#define __IOleDocumentView_FWD_DEFINED__ +typedef interface IOleDocumentView IOleDocumentView; +#endif /* __IOleDocumentView_FWD_DEFINED__ */ + + +#ifndef __IEnumOleDocumentViews_FWD_DEFINED__ +#define __IEnumOleDocumentViews_FWD_DEFINED__ +typedef interface IEnumOleDocumentViews IEnumOleDocumentViews; +#endif /* __IEnumOleDocumentViews_FWD_DEFINED__ */ + + +#ifndef __IContinueCallback_FWD_DEFINED__ +#define __IContinueCallback_FWD_DEFINED__ +typedef interface IContinueCallback IContinueCallback; +#endif /* __IContinueCallback_FWD_DEFINED__ */ + + +#ifndef __IPrint_FWD_DEFINED__ +#define __IPrint_FWD_DEFINED__ +typedef interface IPrint IPrint; +#endif /* __IPrint_FWD_DEFINED__ */ + + +#ifndef __IOleCommandTarget_FWD_DEFINED__ +#define __IOleCommandTarget_FWD_DEFINED__ +typedef interface IOleCommandTarget IOleCommandTarget; +#endif /* __IOleCommandTarget_FWD_DEFINED__ */ + + +/* header files for imported files */ +#include "objidl.h" +#include "oleidl.h" +#include "oaidl.h" +#include "servprov.h" + +void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t); +void __RPC_USER MIDL_user_free( void __RPC_FAR * ); + +/**************************************** + * Generated header for interface: __MIDL__intf_0000 + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright 1995-1996 Microsoft Corporation. All Rights Reserved. +// +// File: docobj.h + +#pragma comment(lib,"uuid3.lib") +// +//-------------------------------------------------------------------------- + + + + + + + + +//////////////////////////////////////////////////////////////////////////// +// Interface Definitions +#ifndef _LPOLEDOCUMENT_DEFINED +#define _LPOLEDOCUMENT_DEFINED + + +extern RPC_IF_HANDLE __MIDL__intf_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0000_v0_0_s_ifspec; + +#ifndef __IOleDocument_INTERFACE_DEFINED__ +#define __IOleDocument_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: IOleDocument + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [unique][uuid][object] */ + + +typedef /* [unique] */ IOleDocument __RPC_FAR *LPOLEDOCUMENT; + +typedef /* [public] */ +enum __MIDL_IOleDocument_0001 + { DOCMISC_CANCREATEMULTIPLEVIEWS = 1, + DOCMISC_SUPPORTCOMPLEXRECTANGLES = 2, + DOCMISC_CANTOPENEDIT = 4, + DOCMISC_NOFILESUPPORT = 8 + } DOCMISC; + + +EXTERN_C const IID IID_IOleDocument; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + interface IOleDocument : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE CreateView( + /* [unique][in] */ IOleInPlaceSite __RPC_FAR *pIPSite, + /* [unique][in] */ IStream __RPC_FAR *pstm, + /* [in] */ DWORD dwReserved, + /* [out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *ppView) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDocMiscStatus( + /* [out] */ DWORD __RPC_FAR *pdwStatus) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnumViews( + /* [out] */ IEnumOleDocumentViews __RPC_FAR *__RPC_FAR *ppEnum, + /* [out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *ppView) = 0; + + }; + +#else /* C style interface */ + + typedef struct IOleDocumentVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( + IOleDocument __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( + IOleDocument __RPC_FAR * This); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( + IOleDocument __RPC_FAR * This); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateView )( + IOleDocument __RPC_FAR * This, + /* [unique][in] */ IOleInPlaceSite __RPC_FAR *pIPSite, + /* [unique][in] */ IStream __RPC_FAR *pstm, + /* [in] */ DWORD dwReserved, + /* [out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *ppView); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetDocMiscStatus )( + IOleDocument __RPC_FAR * This, + /* [out] */ DWORD __RPC_FAR *pdwStatus); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumViews )( + IOleDocument __RPC_FAR * This, + /* [out] */ IEnumOleDocumentViews __RPC_FAR *__RPC_FAR *ppEnum, + /* [out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *ppView); + + END_INTERFACE + } IOleDocumentVtbl; + + interface IOleDocument + { + CONST_VTBL struct IOleDocumentVtbl __RPC_FAR *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IOleDocument_QueryInterface(This,riid,ppvObject) \ + (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) + +#define IOleDocument_AddRef(This) \ + (This)->lpVtbl -> AddRef(This) + +#define IOleDocument_Release(This) \ + (This)->lpVtbl -> Release(This) + + +#define IOleDocument_CreateView(This,pIPSite,pstm,dwReserved,ppView) \ + (This)->lpVtbl -> CreateView(This,pIPSite,pstm,dwReserved,ppView) + +#define IOleDocument_GetDocMiscStatus(This,pdwStatus) \ + (This)->lpVtbl -> GetDocMiscStatus(This,pdwStatus) + +#define IOleDocument_EnumViews(This,ppEnum,ppView) \ + (This)->lpVtbl -> EnumViews(This,ppEnum,ppView) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +HRESULT STDMETHODCALLTYPE IOleDocument_CreateView_Proxy( + IOleDocument __RPC_FAR * This, + /* [unique][in] */ IOleInPlaceSite __RPC_FAR *pIPSite, + /* [unique][in] */ IStream __RPC_FAR *pstm, + /* [in] */ DWORD dwReserved, + /* [out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *ppView); + + +void __RPC_STUB IOleDocument_CreateView_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IOleDocument_GetDocMiscStatus_Proxy( + IOleDocument __RPC_FAR * This, + /* [out] */ DWORD __RPC_FAR *pdwStatus); + + +void __RPC_STUB IOleDocument_GetDocMiscStatus_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IOleDocument_EnumViews_Proxy( + IOleDocument __RPC_FAR * This, + /* [out] */ IEnumOleDocumentViews __RPC_FAR *__RPC_FAR *ppEnum, + /* [out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *ppView); + + +void __RPC_STUB IOleDocument_EnumViews_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IOleDocument_INTERFACE_DEFINED__ */ + + +/**************************************** + * Generated header for interface: __MIDL__intf_0099 + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +#endif +#ifndef _LPOLEDOCUMENTSITE_DEFINED +#define _LPOLEDOCUMENTSITE_DEFINED + + +extern RPC_IF_HANDLE __MIDL__intf_0099_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0099_v0_0_s_ifspec; + +#ifndef __IOleDocumentSite_INTERFACE_DEFINED__ +#define __IOleDocumentSite_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: IOleDocumentSite + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [unique][uuid][object] */ + + +typedef /* [unique] */ IOleDocumentSite __RPC_FAR *LPOLEDOCUMENTSITE; + + +EXTERN_C const IID IID_IOleDocumentSite; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + interface IOleDocumentSite : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE ActivateMe( + /* [in] */ IOleDocumentView __RPC_FAR *pViewToActivate) = 0; + + }; + +#else /* C style interface */ + + typedef struct IOleDocumentSiteVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( + IOleDocumentSite __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( + IOleDocumentSite __RPC_FAR * This); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( + IOleDocumentSite __RPC_FAR * This); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ActivateMe )( + IOleDocumentSite __RPC_FAR * This, + /* [in] */ IOleDocumentView __RPC_FAR *pViewToActivate); + + END_INTERFACE + } IOleDocumentSiteVtbl; + + interface IOleDocumentSite + { + CONST_VTBL struct IOleDocumentSiteVtbl __RPC_FAR *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IOleDocumentSite_QueryInterface(This,riid,ppvObject) \ + (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) + +#define IOleDocumentSite_AddRef(This) \ + (This)->lpVtbl -> AddRef(This) + +#define IOleDocumentSite_Release(This) \ + (This)->lpVtbl -> Release(This) + + +#define IOleDocumentSite_ActivateMe(This,pViewToActivate) \ + (This)->lpVtbl -> ActivateMe(This,pViewToActivate) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +HRESULT STDMETHODCALLTYPE IOleDocumentSite_ActivateMe_Proxy( + IOleDocumentSite __RPC_FAR * This, + /* [in] */ IOleDocumentView __RPC_FAR *pViewToActivate); + + +void __RPC_STUB IOleDocumentSite_ActivateMe_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IOleDocumentSite_INTERFACE_DEFINED__ */ + + +/**************************************** + * Generated header for interface: __MIDL__intf_0100 + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +#endif +#ifndef _LPOLEDOCUMENTVIEW_DEFINED +#define _LPOLEDOCUMENTVIEW_DEFINED + + +extern RPC_IF_HANDLE __MIDL__intf_0100_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0100_v0_0_s_ifspec; + +#ifndef __IOleDocumentView_INTERFACE_DEFINED__ +#define __IOleDocumentView_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: IOleDocumentView + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [unique][uuid][object] */ + + +typedef /* [unique] */ IOleDocumentView __RPC_FAR *LPOLEDOCUMENTVIEW; + + +EXTERN_C const IID IID_IOleDocumentView; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + interface IOleDocumentView : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE SetInPlaceSite( + /* [unique][in] */ IOleInPlaceSite __RPC_FAR *pIPSite) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInPlaceSite( + /* [out] */ IOleInPlaceSite __RPC_FAR *__RPC_FAR *ppIPSite) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDocument( + /* [out] */ IUnknown __RPC_FAR *__RPC_FAR *ppunk) = 0; + + virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE SetRect( + /* [in] */ LPRECT prcView) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRect( + /* [out] */ LPRECT prcView) = 0; + + virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE SetRectComplex( + /* [unique][in] */ LPRECT prcView, + /* [unique][in] */ LPRECT prcHScroll, + /* [unique][in] */ LPRECT prcVScroll, + /* [unique][in] */ LPRECT prcSizeBox) = 0; + + virtual HRESULT STDMETHODCALLTYPE Show( + /* [in] */ BOOL fShow) = 0; + + virtual HRESULT STDMETHODCALLTYPE UIActivate( + /* [in] */ BOOL fUIActivate) = 0; + + virtual HRESULT STDMETHODCALLTYPE Open( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE CloseView( + DWORD dwReserved) = 0; + + virtual HRESULT STDMETHODCALLTYPE SaveViewState( + /* [in] */ LPSTREAM pstm) = 0; + + virtual HRESULT STDMETHODCALLTYPE ApplyViewState( + /* [in] */ LPSTREAM pstm) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + /* [in] */ IOleInPlaceSite __RPC_FAR *pIPSiteNew, + /* [out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *ppViewNew) = 0; + + }; + +#else /* C style interface */ + + typedef struct IOleDocumentViewVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( + IOleDocumentView __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( + IOleDocumentView __RPC_FAR * This); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( + IOleDocumentView __RPC_FAR * This); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetInPlaceSite )( + IOleDocumentView __RPC_FAR * This, + /* [unique][in] */ IOleInPlaceSite __RPC_FAR *pIPSite); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetInPlaceSite )( + IOleDocumentView __RPC_FAR * This, + /* [out] */ IOleInPlaceSite __RPC_FAR *__RPC_FAR *ppIPSite); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetDocument )( + IOleDocumentView __RPC_FAR * This, + /* [out] */ IUnknown __RPC_FAR *__RPC_FAR *ppunk); + + /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetRect )( + IOleDocumentView __RPC_FAR * This, + /* [in] */ LPRECT prcView); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetRect )( + IOleDocumentView __RPC_FAR * This, + /* [out] */ LPRECT prcView); + + /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetRectComplex )( + IOleDocumentView __RPC_FAR * This, + /* [unique][in] */ LPRECT prcView, + /* [unique][in] */ LPRECT prcHScroll, + /* [unique][in] */ LPRECT prcVScroll, + /* [unique][in] */ LPRECT prcSizeBox); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Show )( + IOleDocumentView __RPC_FAR * This, + /* [in] */ BOOL fShow); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *UIActivate )( + IOleDocumentView __RPC_FAR * This, + /* [in] */ BOOL fUIActivate); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Open )( + IOleDocumentView __RPC_FAR * This); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CloseView )( + IOleDocumentView __RPC_FAR * This, + DWORD dwReserved); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SaveViewState )( + IOleDocumentView __RPC_FAR * This, + /* [in] */ LPSTREAM pstm); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ApplyViewState )( + IOleDocumentView __RPC_FAR * This, + /* [in] */ LPSTREAM pstm); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clone )( + IOleDocumentView __RPC_FAR * This, + /* [in] */ IOleInPlaceSite __RPC_FAR *pIPSiteNew, + /* [out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *ppViewNew); + + END_INTERFACE + } IOleDocumentViewVtbl; + + interface IOleDocumentView + { + CONST_VTBL struct IOleDocumentViewVtbl __RPC_FAR *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IOleDocumentView_QueryInterface(This,riid,ppvObject) \ + (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) + +#define IOleDocumentView_AddRef(This) \ + (This)->lpVtbl -> AddRef(This) + +#define IOleDocumentView_Release(This) \ + (This)->lpVtbl -> Release(This) + + +#define IOleDocumentView_SetInPlaceSite(This,pIPSite) \ + (This)->lpVtbl -> SetInPlaceSite(This,pIPSite) + +#define IOleDocumentView_GetInPlaceSite(This,ppIPSite) \ + (This)->lpVtbl -> GetInPlaceSite(This,ppIPSite) + +#define IOleDocumentView_GetDocument(This,ppunk) \ + (This)->lpVtbl -> GetDocument(This,ppunk) + +#define IOleDocumentView_SetRect(This,prcView) \ + (This)->lpVtbl -> SetRect(This,prcView) + +#define IOleDocumentView_GetRect(This,prcView) \ + (This)->lpVtbl -> GetRect(This,prcView) + +#define IOleDocumentView_SetRectComplex(This,prcView,prcHScroll,prcVScroll,prcSizeBox) \ + (This)->lpVtbl -> SetRectComplex(This,prcView,prcHScroll,prcVScroll,prcSizeBox) + +#define IOleDocumentView_Show(This,fShow) \ + (This)->lpVtbl -> Show(This,fShow) + +#define IOleDocumentView_UIActivate(This,fUIActivate) \ + (This)->lpVtbl -> UIActivate(This,fUIActivate) + +#define IOleDocumentView_Open(This) \ + (This)->lpVtbl -> Open(This) + +#define IOleDocumentView_CloseView(This,dwReserved) \ + (This)->lpVtbl -> CloseView(This,dwReserved) + +#define IOleDocumentView_SaveViewState(This,pstm) \ + (This)->lpVtbl -> SaveViewState(This,pstm) + +#define IOleDocumentView_ApplyViewState(This,pstm) \ + (This)->lpVtbl -> ApplyViewState(This,pstm) + +#define IOleDocumentView_Clone(This,pIPSiteNew,ppViewNew) \ + (This)->lpVtbl -> Clone(This,pIPSiteNew,ppViewNew) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +HRESULT STDMETHODCALLTYPE IOleDocumentView_SetInPlaceSite_Proxy( + IOleDocumentView __RPC_FAR * This, + /* [unique][in] */ IOleInPlaceSite __RPC_FAR *pIPSite); + + +void __RPC_STUB IOleDocumentView_SetInPlaceSite_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IOleDocumentView_GetInPlaceSite_Proxy( + IOleDocumentView __RPC_FAR * This, + /* [out] */ IOleInPlaceSite __RPC_FAR *__RPC_FAR *ppIPSite); + + +void __RPC_STUB IOleDocumentView_GetInPlaceSite_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IOleDocumentView_GetDocument_Proxy( + IOleDocumentView __RPC_FAR * This, + /* [out] */ IUnknown __RPC_FAR *__RPC_FAR *ppunk); + + +void __RPC_STUB IOleDocumentView_GetDocument_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [input_sync] */ HRESULT STDMETHODCALLTYPE IOleDocumentView_SetRect_Proxy( + IOleDocumentView __RPC_FAR * This, + /* [in] */ LPRECT prcView); + + +void __RPC_STUB IOleDocumentView_SetRect_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IOleDocumentView_GetRect_Proxy( + IOleDocumentView __RPC_FAR * This, + /* [out] */ LPRECT prcView); + + +void __RPC_STUB IOleDocumentView_GetRect_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [input_sync] */ HRESULT STDMETHODCALLTYPE IOleDocumentView_SetRectComplex_Proxy( + IOleDocumentView __RPC_FAR * This, + /* [unique][in] */ LPRECT prcView, + /* [unique][in] */ LPRECT prcHScroll, + /* [unique][in] */ LPRECT prcVScroll, + /* [unique][in] */ LPRECT prcSizeBox); + + +void __RPC_STUB IOleDocumentView_SetRectComplex_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IOleDocumentView_Show_Proxy( + IOleDocumentView __RPC_FAR * This, + /* [in] */ BOOL fShow); + + +void __RPC_STUB IOleDocumentView_Show_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IOleDocumentView_UIActivate_Proxy( + IOleDocumentView __RPC_FAR * This, + /* [in] */ BOOL fUIActivate); + + +void __RPC_STUB IOleDocumentView_UIActivate_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IOleDocumentView_Open_Proxy( + IOleDocumentView __RPC_FAR * This); + + +void __RPC_STUB IOleDocumentView_Open_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IOleDocumentView_CloseView_Proxy( + IOleDocumentView __RPC_FAR * This, + DWORD dwReserved); + + +void __RPC_STUB IOleDocumentView_CloseView_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IOleDocumentView_SaveViewState_Proxy( + IOleDocumentView __RPC_FAR * This, + /* [in] */ LPSTREAM pstm); + + +void __RPC_STUB IOleDocumentView_SaveViewState_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IOleDocumentView_ApplyViewState_Proxy( + IOleDocumentView __RPC_FAR * This, + /* [in] */ LPSTREAM pstm); + + +void __RPC_STUB IOleDocumentView_ApplyViewState_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IOleDocumentView_Clone_Proxy( + IOleDocumentView __RPC_FAR * This, + /* [in] */ IOleInPlaceSite __RPC_FAR *pIPSiteNew, + /* [out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *ppViewNew); + + +void __RPC_STUB IOleDocumentView_Clone_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IOleDocumentView_INTERFACE_DEFINED__ */ + + +/**************************************** + * Generated header for interface: __MIDL__intf_0101 + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +#endif +#ifndef _LPENUMOLEDOCUMENTVIEWS_DEFINED +#define _LPENUMOLEDOCUMENTVIEWS_DEFINED + + +extern RPC_IF_HANDLE __MIDL__intf_0101_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0101_v0_0_s_ifspec; + +#ifndef __IEnumOleDocumentViews_INTERFACE_DEFINED__ +#define __IEnumOleDocumentViews_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: IEnumOleDocumentViews + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [unique][uuid][object] */ + + +typedef /* [unique] */ IEnumOleDocumentViews __RPC_FAR *LPENUMOLEDOCUMENTVIEWS; + + +EXTERN_C const IID IID_IEnumOleDocumentViews; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + interface IEnumOleDocumentViews : public IUnknown + { + public: + virtual /* [local] */ HRESULT __stdcall Next( + /* [in] */ ULONG cViews, + /* [out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *rgpView, + /* [out] */ ULONG __RPC_FAR *pcFetched) = 0; + + virtual HRESULT STDMETHODCALLTYPE Skip( + /* [in] */ ULONG cViews) = 0; + + virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + /* [out] */ IEnumOleDocumentViews __RPC_FAR *__RPC_FAR *ppEnum) = 0; + + }; + +#else /* C style interface */ + + typedef struct IEnumOleDocumentViewsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( + IEnumOleDocumentViews __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( + IEnumOleDocumentViews __RPC_FAR * This); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( + IEnumOleDocumentViews __RPC_FAR * This); + + /* [local] */ HRESULT ( __stdcall __RPC_FAR *Next )( + IEnumOleDocumentViews __RPC_FAR * This, + /* [in] */ ULONG cViews, + /* [out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *rgpView, + /* [out] */ ULONG __RPC_FAR *pcFetched); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Skip )( + IEnumOleDocumentViews __RPC_FAR * This, + /* [in] */ ULONG cViews); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Reset )( + IEnumOleDocumentViews __RPC_FAR * This); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clone )( + IEnumOleDocumentViews __RPC_FAR * This, + /* [out] */ IEnumOleDocumentViews __RPC_FAR *__RPC_FAR *ppEnum); + + END_INTERFACE + } IEnumOleDocumentViewsVtbl; + + interface IEnumOleDocumentViews + { + CONST_VTBL struct IEnumOleDocumentViewsVtbl __RPC_FAR *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IEnumOleDocumentViews_QueryInterface(This,riid,ppvObject) \ + (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) + +#define IEnumOleDocumentViews_AddRef(This) \ + (This)->lpVtbl -> AddRef(This) + +#define IEnumOleDocumentViews_Release(This) \ + (This)->lpVtbl -> Release(This) + + +#define IEnumOleDocumentViews_Next(This,cViews,rgpView,pcFetched) \ + (This)->lpVtbl -> Next(This,cViews,rgpView,pcFetched) + +#define IEnumOleDocumentViews_Skip(This,cViews) \ + (This)->lpVtbl -> Skip(This,cViews) + +#define IEnumOleDocumentViews_Reset(This) \ + (This)->lpVtbl -> Reset(This) + +#define IEnumOleDocumentViews_Clone(This,ppEnum) \ + (This)->lpVtbl -> Clone(This,ppEnum) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [call_as] */ HRESULT __stdcall IEnumOleDocumentViews_RemoteNext_Proxy( + IEnumOleDocumentViews __RPC_FAR * This, + /* [in] */ ULONG cViews, + /* [length_is][size_is][out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *rgpView, + /* [out] */ ULONG __RPC_FAR *pcFetched); + + +void __RPC_STUB IEnumOleDocumentViews_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IEnumOleDocumentViews_Skip_Proxy( + IEnumOleDocumentViews __RPC_FAR * This, + /* [in] */ ULONG cViews); + + +void __RPC_STUB IEnumOleDocumentViews_Skip_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IEnumOleDocumentViews_Reset_Proxy( + IEnumOleDocumentViews __RPC_FAR * This); + + +void __RPC_STUB IEnumOleDocumentViews_Reset_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IEnumOleDocumentViews_Clone_Proxy( + IEnumOleDocumentViews __RPC_FAR * This, + /* [out] */ IEnumOleDocumentViews __RPC_FAR *__RPC_FAR *ppEnum); + + +void __RPC_STUB IEnumOleDocumentViews_Clone_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IEnumOleDocumentViews_INTERFACE_DEFINED__ */ + + +/**************************************** + * Generated header for interface: __MIDL__intf_0102 + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +#endif +#ifndef _LPCONTINUECALLBACK_DEFINED +#define _LPCONTINUECALLBACK_DEFINED + + +extern RPC_IF_HANDLE __MIDL__intf_0102_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0102_v0_0_s_ifspec; + +#ifndef __IContinueCallback_INTERFACE_DEFINED__ +#define __IContinueCallback_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: IContinueCallback + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [unique][uuid][object] */ + + +typedef /* [unique] */ IContinueCallback __RPC_FAR *LPCONTINUECALLBACK; + + +EXTERN_C const IID IID_IContinueCallback; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + interface IContinueCallback : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE FContinue( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE FContinuePrinting( + /* [in] */ LONG nCntPrinted, + /* [in] */ LONG nCurPage, + /* [unique][in] */ wchar_t __RPC_FAR *pwszPrintStatus) = 0; + + }; + +#else /* C style interface */ + + typedef struct IContinueCallbackVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( + IContinueCallback __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( + IContinueCallback __RPC_FAR * This); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( + IContinueCallback __RPC_FAR * This); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FContinue )( + IContinueCallback __RPC_FAR * This); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FContinuePrinting )( + IContinueCallback __RPC_FAR * This, + /* [in] */ LONG nCntPrinted, + /* [in] */ LONG nCurPage, + /* [unique][in] */ wchar_t __RPC_FAR *pwszPrintStatus); + + END_INTERFACE + } IContinueCallbackVtbl; + + interface IContinueCallback + { + CONST_VTBL struct IContinueCallbackVtbl __RPC_FAR *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IContinueCallback_QueryInterface(This,riid,ppvObject) \ + (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) + +#define IContinueCallback_AddRef(This) \ + (This)->lpVtbl -> AddRef(This) + +#define IContinueCallback_Release(This) \ + (This)->lpVtbl -> Release(This) + + +#define IContinueCallback_FContinue(This) \ + (This)->lpVtbl -> FContinue(This) + +#define IContinueCallback_FContinuePrinting(This,nCntPrinted,nCurPage,pwszPrintStatus) \ + (This)->lpVtbl -> FContinuePrinting(This,nCntPrinted,nCurPage,pwszPrintStatus) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +HRESULT STDMETHODCALLTYPE IContinueCallback_FContinue_Proxy( + IContinueCallback __RPC_FAR * This); + + +void __RPC_STUB IContinueCallback_FContinue_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IContinueCallback_FContinuePrinting_Proxy( + IContinueCallback __RPC_FAR * This, + /* [in] */ LONG nCntPrinted, + /* [in] */ LONG nCurPage, + /* [unique][in] */ wchar_t __RPC_FAR *pwszPrintStatus); + + +void __RPC_STUB IContinueCallback_FContinuePrinting_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IContinueCallback_INTERFACE_DEFINED__ */ + + +/**************************************** + * Generated header for interface: __MIDL__intf_0103 + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +#endif +#ifndef _LPPRINT_DEFINED +#define _LPPRINT_DEFINED + + +extern RPC_IF_HANDLE __MIDL__intf_0103_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0103_v0_0_s_ifspec; + +#ifndef __IPrint_INTERFACE_DEFINED__ +#define __IPrint_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: IPrint + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [unique][uuid][object] */ + + +typedef /* [unique] */ IPrint __RPC_FAR *LPPRINT; + +typedef /* [public] */ +enum __MIDL_IPrint_0001 + { PRINTFLAG_MAYBOTHERUSER = 1, + PRINTFLAG_PROMPTUSER = 2, + PRINTFLAG_USERMAYCHANGEPRINTER = 4, + PRINTFLAG_RECOMPOSETODEVICE = 8, + PRINTFLAG_DONTACTUALLYPRINT = 16, + PRINTFLAG_FORCEPROPERTIES = 32, + PRINTFLAG_PRINTTOFILE = 64 + } PRINTFLAG; + +typedef struct tagPAGERANGE + { + LONG nFromPage; + LONG nToPage; + } PAGERANGE; + +typedef struct tagPAGESET + { + ULONG cbStruct; + BOOL fOddPages; + BOOL fEvenPages; + ULONG cPageRange; + /* [size_is] */ PAGERANGE rgPages[ 1 ]; + } PAGESET; + +#define PAGESET_TOLASTPAGE ((WORD)(-1L)) + +EXTERN_C const IID IID_IPrint; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + interface IPrint : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE SetInitialPageNum( + /* [in] */ LONG nFirstPage) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPageInfo( + /* [out] */ LONG __RPC_FAR *pnFirstPage, + /* [out] */ LONG __RPC_FAR *pcPages) = 0; + + virtual /* [local] */ HRESULT __stdcall Print( + /* [in] */ DWORD grfFlags, + /* [out][in] */ DVTARGETDEVICE __RPC_FAR *__RPC_FAR *pptd, + /* [out][in] */ PAGESET __RPC_FAR *__RPC_FAR *ppPageSet, + /* [unique][out][in] */ STGMEDIUM __RPC_FAR *pstgmOptions, + /* [in] */ IContinueCallback __RPC_FAR *pcallback, + /* [in] */ LONG nFirstPage, + /* [out] */ LONG __RPC_FAR *pcPagesPrinted, + /* [out] */ LONG __RPC_FAR *pnLastPage) = 0; + + }; + +#else /* C style interface */ + + typedef struct IPrintVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( + IPrint __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( + IPrint __RPC_FAR * This); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( + IPrint __RPC_FAR * This); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetInitialPageNum )( + IPrint __RPC_FAR * This, + /* [in] */ LONG nFirstPage); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetPageInfo )( + IPrint __RPC_FAR * This, + /* [out] */ LONG __RPC_FAR *pnFirstPage, + /* [out] */ LONG __RPC_FAR *pcPages); + + /* [local] */ HRESULT ( __stdcall __RPC_FAR *Print )( + IPrint __RPC_FAR * This, + /* [in] */ DWORD grfFlags, + /* [out][in] */ DVTARGETDEVICE __RPC_FAR *__RPC_FAR *pptd, + /* [out][in] */ PAGESET __RPC_FAR *__RPC_FAR *ppPageSet, + /* [unique][out][in] */ STGMEDIUM __RPC_FAR *pstgmOptions, + /* [in] */ IContinueCallback __RPC_FAR *pcallback, + /* [in] */ LONG nFirstPage, + /* [out] */ LONG __RPC_FAR *pcPagesPrinted, + /* [out] */ LONG __RPC_FAR *pnLastPage); + + END_INTERFACE + } IPrintVtbl; + + interface IPrint + { + CONST_VTBL struct IPrintVtbl __RPC_FAR *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IPrint_QueryInterface(This,riid,ppvObject) \ + (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) + +#define IPrint_AddRef(This) \ + (This)->lpVtbl -> AddRef(This) + +#define IPrint_Release(This) \ + (This)->lpVtbl -> Release(This) + + +#define IPrint_SetInitialPageNum(This,nFirstPage) \ + (This)->lpVtbl -> SetInitialPageNum(This,nFirstPage) + +#define IPrint_GetPageInfo(This,pnFirstPage,pcPages) \ + (This)->lpVtbl -> GetPageInfo(This,pnFirstPage,pcPages) + +#define IPrint_Print(This,grfFlags,pptd,ppPageSet,pstgmOptions,pcallback,nFirstPage,pcPagesPrinted,pnLastPage) \ + (This)->lpVtbl -> Print(This,grfFlags,pptd,ppPageSet,pstgmOptions,pcallback,nFirstPage,pcPagesPrinted,pnLastPage) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +HRESULT STDMETHODCALLTYPE IPrint_SetInitialPageNum_Proxy( + IPrint __RPC_FAR * This, + /* [in] */ LONG nFirstPage); + + +void __RPC_STUB IPrint_SetInitialPageNum_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IPrint_GetPageInfo_Proxy( + IPrint __RPC_FAR * This, + /* [out] */ LONG __RPC_FAR *pnFirstPage, + /* [out] */ LONG __RPC_FAR *pcPages); + + +void __RPC_STUB IPrint_GetPageInfo_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [call_as] */ HRESULT __stdcall IPrint_RemotePrint_Proxy( + IPrint __RPC_FAR * This, + /* [in] */ DWORD grfFlags, + /* [out][in] */ DVTARGETDEVICE __RPC_FAR *__RPC_FAR *pptd, + /* [out][in] */ PAGESET __RPC_FAR *__RPC_FAR *pppageset, + /* [unique][out][in] */ RemSTGMEDIUM __RPC_FAR *pstgmOptions, + /* [in] */ IContinueCallback __RPC_FAR *pcallback, + /* [in] */ LONG nFirstPage, + /* [out] */ LONG __RPC_FAR *pcPagesPrinted, + /* [out] */ LONG __RPC_FAR *pnLastPage); + + +void __RPC_STUB IPrint_RemotePrint_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IPrint_INTERFACE_DEFINED__ */ + + +/**************************************** + * Generated header for interface: __MIDL__intf_0104 + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +#endif +#ifndef _LPOLECOMMANDTARGET_DEFINED +#define _LPOLECOMMANDTARGET_DEFINED + + +extern RPC_IF_HANDLE __MIDL__intf_0104_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0104_v0_0_s_ifspec; + +#ifndef __IOleCommandTarget_INTERFACE_DEFINED__ +#define __IOleCommandTarget_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: IOleCommandTarget + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [unique][uuid][object] */ + + +typedef /* [unique] */ IOleCommandTarget __RPC_FAR *LPOLECOMMANDTARGET; + +typedef /* [public] */ +enum __MIDL_IOleCommandTarget_0001 + { OLECMDF_SUPPORTED = 0x1, + OLECMDF_ENABLED = 0x2, + OLECMDF_LATCHED = 0x4, + OLECMDF_NINCHED = 0x8 + } OLECMDF; + +typedef struct _tagOLECMD + { + ULONG cmdID; + DWORD cmdf; + } OLECMD; + +typedef struct _tagOLECMDTEXT + { + DWORD cmdtextf; + ULONG cwActual; + ULONG cwBuf; + /* [size_is] */ wchar_t rgwz[ 1 ]; + } OLECMDTEXT; + +typedef /* [public] */ +enum __MIDL_IOleCommandTarget_0002 + { OLECMDTEXTF_NONE = 0, + OLECMDTEXTF_NAME = 1, + OLECMDTEXTF_STATUS = 2 + } OLECMDTEXTF; + +typedef /* [public] */ +enum __MIDL_IOleCommandTarget_0003 + { OLECMDEXECOPT_DODEFAULT = 0, + OLECMDEXECOPT_PROMPTUSER = 1, + OLECMDEXECOPT_DONTPROMPTUSER = 2, + OLECMDEXECOPT_SHOWHELP = 3 + } OLECMDEXECOPT; + +typedef /* [public] */ +enum __MIDL_IOleCommandTarget_0004 + { OLECMDID_OPEN = 1, + OLECMDID_NEW = 2, + OLECMDID_SAVE = 3, + OLECMDID_SAVEAS = 4, + OLECMDID_SAVECOPYAS = 5, + OLECMDID_PRINT = 6, + OLECMDID_PRINTPREVIEW = 7, + OLECMDID_PAGESETUP = 8, + OLECMDID_SPELL = 9, + OLECMDID_PROPERTIES = 10, + OLECMDID_CUT = 11, + OLECMDID_COPY = 12, + OLECMDID_PASTE = 13, + OLECMDID_PASTESPECIAL = 14, + OLECMDID_UNDO = 15, + OLECMDID_REDO = 16, + OLECMDID_SELECTALL = 17, + OLECMDID_CLEARSELECTION = 18, + OLECMDID_ZOOM = 19, + OLECMDID_GETZOOMRANGE = 20, + OLECMDID_UPDATECOMMANDS = 21, + OLECMDID_REFRESH = 22, + OLECMDID_STOP = 23, + OLECMDID_HIDETOOLBARS = 24, + OLECMDID_SETPROGRESSMAX = 25, + OLECMDID_SETPROGRESSPOS = 26, + OLECMDID_SETPROGRESSTEXT = 27, + OLECMDID_SETTITLE = 28, + OLECMDID_SETDOWNLOADSTATE = 29 + } OLECMDID; + +#define OLECMDERR_E_FIRST (OLE_E_LAST+1) +#define OLECMDERR_E_NOTSUPPORTED (OLECMDERR_E_FIRST) +#define OLECMDERR_E_DISABLED (OLECMDERR_E_FIRST+1) +#define OLECMDERR_E_NOHELP (OLECMDERR_E_FIRST+2) +#define OLECMDERR_E_CANCELED (OLECMDERR_E_FIRST+3) +#define OLECMDERR_E_UNKNOWNGROUP (OLECMDERR_E_FIRST+4) +#define MSOCMDERR_E_FIRST OLECMDERR_E_FIRST +#define MSOCMDERR_E_NOTSUPPORTED OLECMDERR_E_NOTSUPPORTED +#define MSOCMDERR_E_DISABLED OLECMDERR_E_DISABLED +#define MSOCMDERR_E_NOHELP OLECMDERR_E_NOHELP +#define MSOCMDERR_E_CANCELED OLECMDERR_E_CANCELED +#define MSOCMDERR_E_UNKNOWNGROUP OLECMDERR_E_UNKNOWNGROUP + +EXTERN_C const IID IID_IOleCommandTarget; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + interface IOleCommandTarget : public IUnknown + { + public: + virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE QueryStatus( + /* [unique][in] */ const GUID __RPC_FAR *pguidCmdGroup, + /* [in] */ ULONG cCmds, + /* [out][in][size_is] */ OLECMD __RPC_FAR prgCmds[ ], + /* [unique][out][in] */ OLECMDTEXT __RPC_FAR *pCmdText) = 0; + + virtual HRESULT STDMETHODCALLTYPE Exec( + /* [unique][in] */ const GUID __RPC_FAR *pguidCmdGroup, + /* [in] */ DWORD nCmdID, + /* [in] */ DWORD nCmdexecopt, + /* [unique][in] */ VARIANTARG __RPC_FAR *pvaIn, + /* [unique][out][in] */ VARIANTARG __RPC_FAR *pvaOut) = 0; + + }; + +#else /* C style interface */ + + typedef struct IOleCommandTargetVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( + IOleCommandTarget __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( + IOleCommandTarget __RPC_FAR * This); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( + IOleCommandTarget __RPC_FAR * This); + + /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryStatus )( + IOleCommandTarget __RPC_FAR * This, + /* [unique][in] */ const GUID __RPC_FAR *pguidCmdGroup, + /* [in] */ ULONG cCmds, + /* [out][in][size_is] */ OLECMD __RPC_FAR prgCmds[ ], + /* [unique][out][in] */ OLECMDTEXT __RPC_FAR *pCmdText); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Exec )( + IOleCommandTarget __RPC_FAR * This, + /* [unique][in] */ const GUID __RPC_FAR *pguidCmdGroup, + /* [in] */ DWORD nCmdID, + /* [in] */ DWORD nCmdexecopt, + /* [unique][in] */ VARIANTARG __RPC_FAR *pvaIn, + /* [unique][out][in] */ VARIANTARG __RPC_FAR *pvaOut); + + END_INTERFACE + } IOleCommandTargetVtbl; + + interface IOleCommandTarget + { + CONST_VTBL struct IOleCommandTargetVtbl __RPC_FAR *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IOleCommandTarget_QueryInterface(This,riid,ppvObject) \ + (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) + +#define IOleCommandTarget_AddRef(This) \ + (This)->lpVtbl -> AddRef(This) + +#define IOleCommandTarget_Release(This) \ + (This)->lpVtbl -> Release(This) + + +#define IOleCommandTarget_QueryStatus(This,pguidCmdGroup,cCmds,prgCmds,pCmdText) \ + (This)->lpVtbl -> QueryStatus(This,pguidCmdGroup,cCmds,prgCmds,pCmdText) + +#define IOleCommandTarget_Exec(This,pguidCmdGroup,nCmdID,nCmdexecopt,pvaIn,pvaOut) \ + (This)->lpVtbl -> Exec(This,pguidCmdGroup,nCmdID,nCmdexecopt,pvaIn,pvaOut) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [input_sync] */ HRESULT STDMETHODCALLTYPE IOleCommandTarget_QueryStatus_Proxy( + IOleCommandTarget __RPC_FAR * This, + /* [unique][in] */ const GUID __RPC_FAR *pguidCmdGroup, + /* [in] */ ULONG cCmds, + /* [out][in][size_is] */ OLECMD __RPC_FAR prgCmds[ ], + /* [unique][out][in] */ OLECMDTEXT __RPC_FAR *pCmdText); + + +void __RPC_STUB IOleCommandTarget_QueryStatus_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT STDMETHODCALLTYPE IOleCommandTarget_Exec_Proxy( + IOleCommandTarget __RPC_FAR * This, + /* [unique][in] */ const GUID __RPC_FAR *pguidCmdGroup, + /* [in] */ DWORD nCmdID, + /* [in] */ DWORD nCmdexecopt, + /* [unique][in] */ VARIANTARG __RPC_FAR *pvaIn, + /* [unique][out][in] */ VARIANTARG __RPC_FAR *pvaOut); + + +void __RPC_STUB IOleCommandTarget_Exec_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IOleCommandTarget_INTERFACE_DEFINED__ */ + + +/**************************************** + * Generated header for interface: __MIDL__intf_0105 + * at Thu Jun 13 20:25:19 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +#endif + +//////////////////////////////////////////////////////////////////////////// +// Aliases to original office-compatible names +#define IMsoDocument IOleDocument +#define IMsoDocumentSite IOleDocumentSite +#define IMsoView IOleDocumentView +#define IEnumMsoView IEnumOleDocumentViews +#define IMsoCommandTarget IOleCommandTarget +#define LPMSODOCUMENT LPOLEDOCUMENT +#define LPMSODOCUMENTSITE LPOLEDOCUMENTSITE +#define LPMSOVIEW LPOLEDOCUMENTVIEW +#define LPENUMMSOVIEW LPENUMOLEDOCUMENTVIEWS +#define LPMSOCOMMANDTARGET LPOLECOMMANDTARGET +#define MSOCMD OLECMD +#define MSOCMDTEXT OLECMDTEXT +#define IID_IMsoDocument IID_IOleDocument +#define IID_IMsoDocumentSite IID_IOleDocumentSite +#define IID_IMsoView IID_IOleDocumentView +#define IID_IEnumMsoView IID_IEnumOleDocumentViews +#define IID_IMsoCommandTarget IID_IOleCommandTarget +#define MSOCMDF_SUPPORTED OLECMDF_SUPPORTED +#define MSOCMDF_ENABLED OLECMDF_ENABLED +#define MSOCMDF_LATCHED OLECMDF_LATCHED +#define MSOCMDF_NINCHED OLECMDF_NINCHED +#define MSOCMDTEXTF_NONE OLECMDTEXTF_NONE +#define MSOCMDTEXTF_NAME OLECMDTEXTF_NAME +#define MSOCMDTEXTF_STATUS OLECMDTEXTF_STATUS +#define MSOCMDEXECOPT_DODEFAULT OLECMDEXECOPT_DODEFAULT +#define MSOCMDEXECOPT_PROMPTUSER OLECMDEXECOPT_PROMPTUSER +#define MSOCMDEXECOPT_DONTPROMPTUSER OLECMDEXECOPT_DONTPROMPTUSER +#define MSOCMDEXECOPT_SHOWHELP OLECMDEXECOPT_SHOWHELP +#define MSOCMDID_OPEN OLECMDID_OPEN +#define MSOCMDID_NEW OLECMDID_NEW +#define MSOCMDID_SAVE OLECMDID_SAVE +#define MSOCMDID_SAVEAS OLECMDID_SAVEAS +#define MSOCMDID_SAVECOPYAS OLECMDID_SAVECOPYAS +#define MSOCMDID_PRINT OLECMDID_PRINT +#define MSOCMDID_PRINTPREVIEW OLECMDID_PRINTPREVIEW +#define MSOCMDID_PAGESETUP OLECMDID_PAGESETUP +#define MSOCMDID_SPELL OLECMDID_SPELL +#define MSOCMDID_PROPERTIES OLECMDID_PROPERTIES +#define MSOCMDID_CUT OLECMDID_CUT +#define MSOCMDID_COPY OLECMDID_COPY +#define MSOCMDID_PASTE OLECMDID_PASTE +#define MSOCMDID_PASTESPECIAL OLECMDID_PASTESPECIAL +#define MSOCMDID_UNDO OLECMDID_UNDO +#define MSOCMDID_REDO OLECMDID_REDO +#define MSOCMDID_SELECTALL OLECMDID_SELECTALL +#define MSOCMDID_CLEARSELECTION OLECMDID_CLEARSELECTION +#define MSOCMDID_ZOOM OLECMDID_ZOOM +#define MSOCMDID_GETZOOMRANGE OLECMDID_GETZOOMRANGE + + +extern RPC_IF_HANDLE __MIDL__intf_0105_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0105_v0_0_s_ifspec; + +/* Additional Prototypes for ALL interfaces */ + +unsigned long __RPC_USER BSTR_UserSize( unsigned long __RPC_FAR *, unsigned long , BSTR __RPC_FAR * ); +unsigned char __RPC_FAR * __RPC_USER BSTR_UserMarshal( unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * ); +unsigned char __RPC_FAR * __RPC_USER BSTR_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * ); +void __RPC_USER BSTR_UserFree( unsigned long __RPC_FAR *, BSTR __RPC_FAR * ); + +unsigned long __RPC_USER VARIANT_UserSize( unsigned long __RPC_FAR *, unsigned long , VARIANT __RPC_FAR * ); +unsigned char __RPC_FAR * __RPC_USER VARIANT_UserMarshal( unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * ); +unsigned char __RPC_FAR * __RPC_USER VARIANT_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * ); +void __RPC_USER VARIANT_UserFree( unsigned long __RPC_FAR *, VARIANT __RPC_FAR * ); + +/* [local] */ HRESULT __stdcall IEnumOleDocumentViews_Next_Proxy( + IEnumOleDocumentViews __RPC_FAR * This, + /* [in] */ ULONG cViews, + /* [out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *rgpView, + /* [out] */ ULONG __RPC_FAR *pcFetched); + + +/* [call_as] */ HRESULT __stdcall IEnumOleDocumentViews_Next_Stub( + IEnumOleDocumentViews __RPC_FAR * This, + /* [in] */ ULONG cViews, + /* [length_is][size_is][out] */ IOleDocumentView __RPC_FAR *__RPC_FAR *rgpView, + /* [out] */ ULONG __RPC_FAR *pcFetched); + +/* [local] */ HRESULT __stdcall IPrint_Print_Proxy( + IPrint __RPC_FAR * This, + /* [in] */ DWORD grfFlags, + /* [out][in] */ DVTARGETDEVICE __RPC_FAR *__RPC_FAR *pptd, + /* [out][in] */ PAGESET __RPC_FAR *__RPC_FAR *ppPageSet, + /* [unique][out][in] */ STGMEDIUM __RPC_FAR *pstgmOptions, + /* [in] */ IContinueCallback __RPC_FAR *pcallback, + /* [in] */ LONG nFirstPage, + /* [out] */ LONG __RPC_FAR *pcPagesPrinted, + /* [out] */ LONG __RPC_FAR *pnLastPage); + + +/* [call_as] */ HRESULT __stdcall IPrint_Print_Stub( + IPrint __RPC_FAR * This, + /* [in] */ DWORD grfFlags, + /* [out][in] */ DVTARGETDEVICE __RPC_FAR *__RPC_FAR *pptd, + /* [out][in] */ PAGESET __RPC_FAR *__RPC_FAR *pppageset, + /* [unique][out][in] */ RemSTGMEDIUM __RPC_FAR *pstgmOptions, + /* [in] */ IContinueCallback __RPC_FAR *pcallback, + /* [in] */ LONG nFirstPage, + /* [out] */ LONG __RPC_FAR *pcPagesPrinted, + /* [out] */ LONG __RPC_FAR *pnLastPage); + + + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/public/sdk/inc/mfc42/idispids.h b/public/sdk/inc/mfc42/idispids.h new file mode 100644 index 000000000..0d6637c1c --- /dev/null +++ b/public/sdk/inc/mfc42/idispids.h @@ -0,0 +1,12 @@ +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright 1995 - 1996 Microsoft Corporation. All Rights Reserved. +// +// File: idispids.h +// +//-------------------------------------------------------------------------- + +#define DISPID_READYSTATE (-525) +#define DISPID_READYSTATECHANGE (-609) +#define DISPID_AMBIENT_TRANSFERPRIORITY (-728) diff --git a/public/sdk/inc/mfc42/l.chs/afxctl.rc b/public/sdk/inc/mfc42/l.chs/afxctl.rc new file mode 100644 index 000000000..69ab2c204 --- /dev/null +++ b/public/sdk/inc/mfc42/l.chs/afxctl.rc @@ -0,0 +1,284 @@ +// 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. + +#ifndef __AFXCTL_RC__ +#define __AFXCTL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< ²»Äܸü¸Ä±ê×¼ MFC ×ÊÔ´! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Control Resources + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +AFX_IDB_TRUETYPE BITMAP DISCARDABLE "RES\\TRUETYPE.BMP" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +AFX_IDD_PROPPAGE_FONT DIALOG DISCARDABLE 13, 54, 250, 110 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Sans Serif" +BEGIN + LTEXT "ÌØÐÔÃû(&N)",IDC_STATIC,3,5,61,8 + COMBOBOX AFX_IDC_FONTPROP,65,3,100,71,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + LTEXT "×ÖÌå(&F)",IDC_STATIC,3,19,91,8 + COMBOBOX AFX_IDC_FONTNAMES,3,29,91,77,CBS_SIMPLE | + CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | + CBS_HASSTRINGS | CBS_DISABLENOSCROLL | WS_VSCROLL | + WS_TABSTOP + LTEXT "×ÖÐÎ(&Y)",IDC_STATIC,102,19,53,8 + COMBOBOX AFX_IDC_FONTSTYLES,104,29,53,53,CBS_DROPDOWNLIST | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + LTEXT "´óС(&S)",IDC_STATIC,167,19,40,8 + COMBOBOX AFX_IDC_FONTSIZES,167,29,36,53,CBS_DROPDOWN | CBS_SORT | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Ч¹û",IDC_STATIC,104,44,142,24,WS_GROUP + CONTROL "ɾ³ýÏß(&K)",AFX_IDC_STRIKEOUT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,109,55,65,10 + CONTROL "Ï»®Ïß(&U)",AFX_IDC_UNDERLINE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,175,55,65,10 + GROUPBOX "×ÖÌå·¶Àý",IDC_STATIC,104,71,142,36,WS_GROUP + CTEXT "AaBbYyZz",AFX_IDC_SAMPLEBOX,110,80,130,22,SS_NOPREFIX | + NOT WS_VISIBLE +END + +AFX_IDD_PROPPAGE_COLOR DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Sans Serif" +BEGIN + LTEXT "ÌØÐÔÃû(&N)",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_COLORPROP,3,13,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "ϵͳÑÕÉ«(&C)",IDC_STATIC,3,29,100,8 + COMBOBOX AFX_IDC_SYSTEMCOLORS,3,39,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + CONTROL "",AFX_IDC_COLOR_BLACK,"Button",BS_OWNERDRAW | WS_GROUP | + WS_TABSTOP,118,4,15,11 + CONTROL "",AFX_IDC_COLOR_BLUE,"Button",BS_OWNERDRAW,138,4,15,11 + CONTROL "",AFX_IDC_COLOR_CYAN,"Button",BS_OWNERDRAW,158,4,15,11 + CONTROL "",AFX_IDC_COLOR_DARKBLUE,"Button",BS_OWNERDRAW,178,4,15, + 11 + CONTROL "",AFX_IDC_COLOR_DARKCYAN,"Button",BS_OWNERDRAW,118,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKGREEN,"Button",BS_OWNERDRAW,138,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKMAGENTA,"Button",BS_OWNERDRAW,158, + 18,15,11 + CONTROL "",AFX_IDC_COLOR_GRAY,"Button",BS_OWNERDRAW,178,18,15,11 + CONTROL "",AFX_IDC_COLOR_DARKRED,"Button",BS_OWNERDRAW,118,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_GREEN,"Button",BS_OWNERDRAW,138,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_LIGHTBROWN,"Button",BS_OWNERDRAW,158,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_LIGHTGRAY,"Button",BS_OWNERDRAW,178,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_MAGENTA,"Button",BS_OWNERDRAW,118,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_RED,"Button",BS_OWNERDRAW,138,46,15,11 + CONTROL "",AFX_IDC_COLOR_WHITE,"Button",BS_OWNERDRAW,158,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_YELLOW,"Button",BS_OWNERDRAW,178,46,15, + 11 +END + +AFX_IDD_PROPPAGE_PICTURE DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Sans Serif" +BEGIN + LTEXT "ÌØÐÔÃû(&N)",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_PROPNAME,3,13,100,30,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "ä¯ÀÀ(&B)...",AFX_IDC_BROWSE,3,35,54,14 + PUSHBUTTON "Çå³ý(&C)",AFX_IDC_CLEAR,61,35,54,14 + RTEXT "Ô¤ÔÄ:",IDC_STATIC,107,3,42,16 + CONTROL "",AFX_IDC_PICTURE,"Static",SS_BLACKFRAME,151,4,93,54 +END + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +AFX_IDD_PROPPAGE_FONT DLGINIT +BEGIN + 1002, 0x403, 12, 0 +0x6f42, 0x646c, 0x4920, 0x6174, 0x696c, 0x0063, + 0 +END + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PROPPAGE_UNKNOWN "(δ֪)" + AFX_IDS_COLOR_DESKTOP "̨ʽ" + AFX_IDS_COLOR_APPWORKSPACE "Ó¦ÓóÌÐò¹¤×÷Çø" + AFX_IDS_COLOR_WNDBACKGND "´°¿Ú±³¾°" + AFX_IDS_COLOR_WNDTEXT "´°¿ÚÎı¾" + AFX_IDS_COLOR_MENUBAR "²Ëµ¥À¸" + AFX_IDS_COLOR_MENUTEXT "²Ëµ¥ÎÄ×Ö" + AFX_IDS_COLOR_ACTIVEBAR "»î¶¯µÄ±êÌâÀ¸" + AFX_IDS_COLOR_INACTIVEBAR "²»»î¶¯µÄ±êÌâÀ¸" + AFX_IDS_COLOR_ACTIVETEXT "»î¶¯µÄ±êÌâÀ¸ÎÄ×Ö" + AFX_IDS_COLOR_INACTIVETEXT "²»»î¶¯µÄ±êÌâÀ¸ÎÄ×Ö" + AFX_IDS_COLOR_ACTIVEBORDER "»î¶¯±ß¿ò" + AFX_IDS_COLOR_INACTIVEBORDER "²»»î¶¯±ß¿ò" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_WNDFRAME "´°¿Ú¿ò¼Ü" + AFX_IDS_COLOR_SCROLLBARS "¾í¶¯Ìõ" + AFX_IDS_COLOR_BTNFACE "°´Å¥±íÃæ" + AFX_IDS_COLOR_BTNSHADOW "°´Å¥ÒõÓ°" + AFX_IDS_COLOR_BTNTEXT "°´Å¥ÎÄ×Ö" + AFX_IDS_COLOR_BTNHIGHLIGHT "°´Å¥Í»³ö" + AFX_IDS_COLOR_DISABLEDTEXT "ʧЧÎÄ×Ö" + AFX_IDS_COLOR_HIGHLIGHT "Í»³ö" + AFX_IDS_COLOR_HIGHLIGHTTEXT "Í»³öµÄÎÄ×Ö" + AFX_IDS_REGULAR "Õý³£Ìå" + AFX_IDS_BOLD "ºÚÌå" + AFX_IDS_ITALIC "бÌå" + AFX_IDS_BOLDITALIC "ºÚбÌå" + AFX_IDS_SAMPLETEXT "AaBbYyZz" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_DISPLAYSTRING_FONT "(×ÖÌå)" + AFX_IDS_DISPLAYSTRING_COLOR "(ÑÕÉ«)" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_DISPLAYSTRING_PICTURE "(ͼƬ - %s)" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTUREFILTER "All Picture Types|*.bmp;*.cur;*.dib;*.emf;*.ico;*.wmf|Bitmaps (*.bmp;*.dib)|*.bmp;*.dib|Icons/Cursors (*.ico;*.cur)|*.ico;*.cur|Metafiles (*.wmf;*.emf)|*.wmf;*.emf|All files (*.*)|*.*||" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTYPE_UNKNOWN "δ֪" + AFX_IDS_PICTYPE_NONE "ÎÞ" + AFX_IDS_PICTYPE_BITMAP "λͼ" + AFX_IDS_PICTYPE_METAFILE "ÔªÎļþ" + AFX_IDS_PICTYPE_ICON "ͼ±ê" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_PPG "ÑÕÉ«ÌØÐÔÒ³" + AFX_IDS_COLOR_PPG_CAPTION "ÑÕÉ«" + AFX_IDS_FONT_PPG "×ÖÌåÌØÐÔÒ³" + AFX_IDS_FONT_PPG_CAPTION "×ÖÌå" + AFX_IDS_PICTURE_PPG "ͼƬÌØÐÔÒ³" + AFX_IDS_PICTURE_PPG_CAPTION "ͼƬ" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_BORDERSTYLE_0 "0 - ÎÞ" + AFX_IDS_BORDERSTYLE_1 "1 - ¹Ì¶¨µ¥¸ö" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_VERB_EDIT "±à¼(&E)" + AFX_IDS_VERB_PROPERTIES "ÌØÐÔ(&P)..." +END + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_PICTURECANTOPEN "ÎÞ·¨´ò¿ªÍ¼Æ¬Îļþ %1¡£´ËÎļþ¿ÉÄܲ»´æÔÚ»ò²»¿É¶Á¡£" + AFX_IDP_PICTURECANTLOAD "ÎÞ·¨×°ÈëͼƬÎļþ %1¡£¸ÃÎļþ¿ÉÄܸñʽ²»ÕýÈ·¡£" + AFX_IDP_PICTURETOOLARGE "ÎÞ·¨×°ÈëͼƬÎļþ %1¡£¸ÃÎļþÌ«´óÄÚ´æÎÞ·¨ÈÝÄÉ¡£" + AFX_IDP_PICTUREREADFAILED + "ÎÞ·¨×°ÈëͼƬÎļþ %1¡£Î´Óè¾ßÌå˵Ã÷µÄ¶Á²Ù×÷ʧ°Ü¡£" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PICTUREBROWSETITLE "ä¯ÀÀͼƬ" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +#ifndef _AFX_NO_CTLERROR_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_ILLEGALFUNCTIONCALL "·Ç·¨º¯Êýµ÷ÓÃ" + AFX_IDP_E_OVERFLOW "Òç³ö" + AFX_IDP_E_OUTOFMEMORY "ÄÚ´æ²»×ã" + AFX_IDP_E_DIVISIONBYZERO "±»Áã³ý" + AFX_IDP_E_OUTOFSTRINGSPACE "×Ö·û´®¿Õ¼ä²»×ã" + AFX_IDP_E_OUTOFSTACKSPACE "¶ÑÕ»¿Õ¼ä²»×ã" + AFX_IDP_E_BADFILENAMEORNUMBER "ÎļþÃû»òÎļþºÅ´í" + AFX_IDP_E_FILENOTFOUND "ÎļþδÕÒµ½" + AFX_IDP_E_BADFILEMODE "Îļþģʽ´í" + AFX_IDP_E_FILEALREADYOPEN "ÎļþÒѾ´ò¿ª" + AFX_IDP_E_DEVICEIOERROR "É豸ÊäÈë/Êä³ö³ö´í" + AFX_IDP_E_FILEALREADYEXISTS "ÎļþÒѾ´æÔÚ" + AFX_IDP_E_BADRECORDLENGTH "¼Ç¼³¤¶È´í" + AFX_IDP_E_DISKFULL "´ÅÅÌÒÑÂú" + AFX_IDP_E_BADRECORDNUMBER "¼Ç¼ºÅÂë´í" + AFX_IDP_E_BADFILENAME "ÎļþÃû´í" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_TOOMANYFILES "ÎļþÌ«¶à" + AFX_IDP_E_DEVICEUNAVAILABLE "É豸²»ÊʺÏ" + AFX_IDP_E_PERMISSIONDENIED "δ»ñµÃÐí¿É" + AFX_IDP_E_DISKNOTREADY "´ÅÅÌδ׼±¸ºÃ" + AFX_IDP_E_PATHFILEACCESSERROR "·¾¶/Îļþ·ÃÎÊ´íÎó" + AFX_IDP_E_PATHNOTFOUND "ûÓÐÕÒµ½Â·¾¶" + AFX_IDP_E_INVALIDPATTERNSTRING "ÎÞЧµÄ×Ö·û´®ÐÍÑù" + AFX_IDP_E_INVALIDUSEOFNULL "¿ÕֵʹÓò»µ±" + AFX_IDP_E_INVALIDFILEFORMAT "ÎÞЧµÄÎļþ¸ñʽ" + AFX_IDP_E_INVALIDPROPERTYVALUE "ÎÞЧµÄÌØÐÔÖµ" + AFX_IDP_E_INVALIDPROPERTYARRAYINDEX "ÎÞЧµÄÊý×éϱê" + AFX_IDP_E_SETNOTSUPPORTEDATRUNTIME "¸ÃÌØÐÔÔÚÔËÐÐʱ¿Ì²»ÄÜÉèÖÃ" + AFX_IDP_E_SETNOTSUPPORTED "¸ÃÌØÐÔΪֻ¶ÁÌØÐÔ" + AFX_IDP_E_NEEDPROPERTYARRAYINDEX + "ʹÓÃÌØÐÔÊý×éʱ±ØÐëÖ¸Ã÷Êý×éϱê" + AFX_IDP_E_SETNOTPERMITTED "²»¿ÉÔÚÕâ¸ö¿ØÖÆÉÏÉèÖÃÌØÐÔ" + AFX_IDP_E_GETNOTSUPPORTEDATRUNTIME "¸ÃÌØÐÔ²»¿ÉÔÚÔËÐÐʱ¿Ì¶ÁÈ¡" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_GETNOTSUPPORTED "¸ÃÌØÐÔΪֻдÌØÐÔ" + AFX_IDP_E_PROPERTYNOTFOUND "ûÓÐÕÒµ½ÌØÐÔ" + AFX_IDP_E_INVALIDCLIPBOARDFORMAT "ÎÞЧµÄ¼ôÌù°å¸ñʽ" + AFX_IDP_E_INVALIDPICTURE "ÎÞЧͼƬ" + AFX_IDP_E_PRINTERERROR "´òÓ¡»ú³ö´í" + AFX_IDP_E_CANTSAVEFILETOTEMP + "ÎÞ·¨´´½¨´æÖü¹ý³ÌËùÐèÒªµÄÁÙʱÎļþ" + AFX_IDP_E_SEARCHTEXTNOTFOUND "ûÓÐÕÒµ½Òª²éÕÒµÄÎı¾" + AFX_IDP_E_REPLACEMENTSTOOLONG "ÒªÌæ»»µÄÎı¾Ì«³¤" +END +#endif //!_AFX_NO_CTLERROR_RESOURCES + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.chs/afxdb.rc b/public/sdk/inc/mfc42/l.chs/afxdb.rc new file mode 100644 index 000000000..e01f3517b --- /dev/null +++ b/public/sdk/inc/mfc42/l.chs/afxdb.rc @@ -0,0 +1,103 @@ +// 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. + +#ifndef __AFXDB_RC__ +#define __AFXDB_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< ²»Äܸü¸Ä±ê×¼ MFC ×ÊÔ´! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Database Resources + +// Database strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_SQL_CONNECT_FAIL + "ÊÔͼÁ¬½ÓÊý¾ÝԴʧ°Ü" + AFX_IDP_SQL_RECORDSET_FORWARD_ONLY + "¼Ç¼¼¯½öÖ§³ÖÏòÇ°Òƶ¯¡£" + AFX_IDP_SQL_EMPTY_COLUMN_LIST + "ÊÔͼ´ò¿ª±í¸ñʧ°Ü¡ªÎ´Ö¸Ã÷Òª¼ìË÷µÄÁС£" + AFX_IDP_SQL_FIELD_SCHEMA_MISMATCH + "²éѯ·µ»ØµÄÁÐÊý¾ÝÀàÐÍÓëÆÚÍû²»·û¡£" + AFX_IDP_SQL_ILLEGAL_MODE "¸üлòɾ³ýµÄÆóͼʧ°ÜÁË¡£" + AFX_IDP_SQL_MULTIPLE_ROWS_AFFECTED "¶àÐÐÊý¾Ý±»¸üС£" + AFX_IDP_SQL_NO_CURRENT_RECORD "²Ù×÷ʧ°Ü£¬ÎÞµ±Ç°¼Ç¼¡£" + AFX_IDP_SQL_NO_ROWS_AFFECTED + "¸üлòɾ³ý²Ù×÷δÉæ¼°ÈκÎÊý¾ÝÐС£" + AFX_IDP_SQL_RECORDSET_READONLY "¼Ç¼¼¯ÊÇÖ»¶Á" + AFX_IDP_SQL_SQL_NO_TOTAL + "ODBC Çý¶¯³ÌÐò²»Ö§³Ö Microsoft »ù´¡À೤¶þ½øÖÆÊý¾ÝÄ£ÐÍ¡£" + AFX_IDP_SQL_ODBC_LOAD_FAILED + "×°ÈëËùÐèµÄ ODBC32.DLL ²¿¼þµÄÆóͼʧ°Ü¡£" + AFX_IDP_SQL_DYNASET_NOT_SUPPORTED + "ODBC Çý¶¯³ÌÐò²»Ö§³Ö¶¯Ì¬¼Ç¼¼¯¡£" + AFX_IDP_SQL_SNAPSHOT_NOT_SUPPORTED + "ÒªÖ§³Ö¿ìÕÕ¹¦ÄÜ£¬ODBC ¾²Ì¬ÓαêÊDZØÒªµÄ¡£" + AFX_IDP_SQL_API_CONFORMANCE + "ODBC Çý¶¯³ÌÐòÓë Microsoft »ù´¡ÀàÊý¾Ý¿âÀ಻ƥÅä (API_CONFORMANCE >= SQL_OAC_LEVEL1 ±ØÐë³ÉÁ¢)¡£" + AFX_IDP_SQL_SQL_CONFORMANCE + "ODBC Çý¶¯³ÌÐòÓë Microsoft »ù´¡ÀàÊý¾Ý¿âÀ಻ƥÅä (API_CONFORMANCE >= SQL_OAC_MINIMUM ±ØÐë³ÉÁ¢)¡£" + AFX_IDP_SQL_NO_DATA_FOUND + "ÊÔͼԽ¹ýÊý¾ÝµÄÓÐЧ´æÖüÇø¼ä¡£" + AFX_IDP_SQL_ROW_UPDATE_NOT_SUPPORTED + "ODBC Çý¶¯³ÌÐò²»Ö§³Ö¶¯Ì¬¼Ç¼¼¯¡£" + AFX_IDP_SQL_ODBC_V2_REQUIRED + "ÐèÒª·ûºÏ ODBC µÄ¶þ¼¶±ê×¼µÄÇý¶¯³ÌÐò¡£" + AFX_IDP_SQL_NO_POSITIONED_UPDATES + "ODBC Çý¶¯³ÌÐò²»Ö§³Ö¶¨Î»¸üС£" + AFX_IDP_SQL_LOCK_MODE_NOT_SUPPORTED + "²»Ö§³ÖËùÒªÇóµÄËøģʽ¡£" + AFX_IDP_SQL_DATA_TRUNCATED + "Êý¾Ý±»½Ø¶Ï¡£" + AFX_IDP_SQL_ROW_FETCH + "¼ìË÷¼Ç¼³ö´í¡£" + AFX_IDP_SQL_INCORRECT_ODBC + "ûÓÐÕÒµ½ËùÐèµÄ ODBC ½øÈëµã¡£È·±£ ODBC °²×°ÕýÈ·¡£" + AFX_IDP_SQL_UPDATE_DELETE_FAILED + "¸üлòɾ³ý²Ù×÷ʧ°Ü¡£" + AFX_IDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED + "¡°ODBCÇý¶¯³ÌÐò²»Ö§³Ö¶¯Ì¬Ö¸Õë¡£¡±" + AFX_IDP_SQL_FIELD_NOT_FOUND + "Invalid field name or field index." + AFX_IDP_SQL_BOOKMARKS_NOT_SUPPORTED + "Bookmarks not supported for ODBC driver." + AFX_IDP_SQL_BOOKMARKS_NOT_ENABLED + "Bookmarks not enabled on recordset." + AFX_IDP_DAO_ENGINE_INITIALIZATION + "¡°ÎÞ·¨¶ÔDAO/Jet dbÒýÇæ½øÐгõʼ»¯¡£¡±" + AFX_IDP_DAO_DFX_BIND + "¡°´íµÄDFXÖµ²ÎÊý¡£¡±" + AFX_IDP_DAO_OBJECT_NOT_OPEN + "¡°DAO TableDef»òQueryDefûÓдò¿ª¡£¡±" + AFX_IDP_DAO_ROWTOOSHORT + "¡°GetRows ʧ°Ü¡£·ÖÅä¸øÐеÄÄÚ´æ²»¹»¡£¡±" + AFX_IDP_DAO_BADBINDINFO + "¡°GetRows ¸³Öµ´íÎ󡣿ÉÄÜÊÇÊý¾ÝÀàÐͲ»Æ¥ÅäÔì³ÉµÄ¡£¡±" + AFX_IDP_DAO_COLUMNUNAVAILABLE + "¡°GetRows ʧ°Ü¡£ËùÇëÇóµÄÁв»ÊǸüǼֵµÄÒ»¸ö³É·Ö¡£¡±" +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXDB_RC__ diff --git a/public/sdk/inc/mfc42/l.chs/afxolecl.rc b/public/sdk/inc/mfc42/l.chs/afxolecl.rc new file mode 100644 index 000000000..30dd9b7dc --- /dev/null +++ b/public/sdk/inc/mfc42/l.chs/afxolecl.rc @@ -0,0 +1,66 @@ +// 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. + +#ifndef __AFXOLECL_RC__ +#define __AFXOLECL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifndef _INC_DLGS + #include <dlgs.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< ²»Äܸü¸Ä±ê×¼ MFC ×ÊÔ´! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Client Resources + +///////////////////////////////////////////////////////////////////////////// +// OLE strings + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_STATIC_OBJECT "ÎÞ·¨¼¤»îÒ»¸ö¾²Ì¬ OLE ¶ÔÏó¡£" + AFX_IDP_FAILED_TO_CONNECT "Á¬½Óʧ°Ü¡£\nÁ´½Ó¿ÉÄÜÒѾ¶ÏÁË¡£" + AFX_IDP_SERVER_BUSY "ÎÞ·¨´¦ÀíÃüÁ·þÎñÆ÷³ÌÐòÕýæ¡£" + AFX_IDP_BAD_VERB "Ö´ÐзþÎñÆ÷³ÌÐò²Ù×÷ʧ°Ü¡£" + AFX_IDP_FAILED_TO_LAUNCH "Æô¶¯·þÎñÆ÷Ó¦ÓóÌÐòʧ°Ü¡£" + AFX_IDS_UPDATING_ITEMS "¸üРOLE ¶ÔÏó" + AFX_IDP_FAILED_TO_CONVERT "ת»» OLE ¶ÔÏóʧ°Ü¡£" + AFX_IDP_ASK_TO_DISCARD "ÔÚÍ˳ö Windows ʱÎÞ·¨±£´æ OLE ¶ÔÏó£¡\n·ÅÆúËùÓжÔ%1µÄ¸Ä¶¯£¿" + AFX_IDP_FAILED_TO_CREATE "Failed to create object. Make sure the application is entered in the system registry." + + AFX_IDS_METAFILE_FORMAT "ͼƬ(ÔªÎļþ)\nÒ»·ùͼƬ" + AFX_IDS_DIB_FORMAT "É豸¶ÀÁ¢Î»Í¼\nÒ»·ùÉ豸¶ÀÁ¢Î»Í¼" + AFX_IDS_BITMAP_FORMAT "λͼ\nÒ»·ùλͼ" + AFX_IDS_LINKSOURCE_FORMAT "%s\n%s" + AFX_IDS_EMBED_FORMAT "%s\n%s" + AFX_IDS_RTF_FORMAT "Ç¿»¯Îı¾(RTF)\n×ÖÌåºÍ¶ÎÂä¸ñʽ»¯µÄÎı¾" + AFX_IDS_TEXT_FORMAT "δ¸ñʽ»¯Îı¾\nδ¾¹ýÈκθñʽ»¯µÄÎı¾" + + AFX_IDS_INVALID_CURRENCY "ÎÞЧµÄ»õ±Ò¡£" + AFX_IDS_INVALID_DATETIME "ÎÞЧµÄÈÕÆÚʱ¼ä¡£" + AFX_IDS_INVALID_DATETIMESPAN "ÎÞЧµÄÈÕÆÚʱ¼ä¿ç¶È¡£" +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.chs/afxolesv.rc b/public/sdk/inc/mfc42/l.chs/afxolesv.rc new file mode 100644 index 000000000..b7bc22506 --- /dev/null +++ b/public/sdk/inc/mfc42/l.chs/afxolesv.rc @@ -0,0 +1,53 @@ +// 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. + +#ifndef __AFXOLESV_RC__ +#define __AFXOLESV_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< ²»Äܸü¸Ä±ê×¼ MFC ×ÊÔ´! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Server Resources + +// OLE strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_ASK_TO_UPDATE, "ÔÚ¼ÌÐøÔËÐÐÇ°¶Ô %1 ½øÐиüУ¿" + AFX_IDP_FAILED_TO_UPDATE, "²»Äܸüпͻ§¡£" + + AFX_IDP_FAILED_TO_REGISTER, "×¢²áʧ°Ü¡£OLE ¹¦ÄÜ¿ÉÄܹ¤×÷²»Õý³£¡£" + AFX_IDP_FAILED_TO_AUTO_REGISTER, "¸üÐÂϵͳע²á¼Ç¼ʧ°Ü¡£\nÇëÊÔÓà REGEDIT¡£" +END + +STRINGTABLE PRELOAD +BEGIN + AFX_IDS_APP_TITLE_EMBEDDING, "%1 ÔÚ %2 ÖÐ" + AFX_IDS_OBJ_TITLE_INPLACE, "%1 - %2" + AFX_IDS_EXIT_MENU, "Í˳ö²¢»Øµ½ %1(&X)" + AFX_IDS_UPDATE_MENU, "¸üР%1(&U)" + AFX_IDS_SAVEFILECOPY, "±£´æ¸±±¾Îª" +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLESV_RC__ diff --git a/public/sdk/inc/mfc42/l.chs/afxprint.rc b/public/sdk/inc/mfc42/l.chs/afxprint.rc new file mode 100644 index 000000000..939fe8af1 --- /dev/null +++ b/public/sdk/inc/mfc42/l.chs/afxprint.rc @@ -0,0 +1,130 @@ +// 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. + +#ifndef __AFXPRINT_RC__ +#define __AFXPRINT_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< ²»Äܸü¸Ä±ê×¼ MFC ×ÊÔ´! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Printing Resources + +AFX_IDC_MAGNIFY CURSOR DISCARDABLE "res\\magnify.cur" + +#ifndef _MAC +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | 0x04 +#else +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 84 +STYLE DS_MODALFRAME | WS_POPUP +#endif +FONT 8, "MS Sans Serif" +BEGIN + CTEXT "´òÓ¡",IDC_STATIC,0,9,133,8 + CTEXT "",AFX_IDC_PRINT_DOCNAME,0,19,133,8 +#ifndef _MAC + CTEXT "ÔÚ...ÉÏ",IDC_STATIC,0,29,133,8 + CTEXT "",AFX_IDC_PRINT_PRINTERNAME,0,39,133,8 + CTEXT "",AFX_IDC_PRINT_PORTNAME,0,49,133,8 + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,59,133,8 + PUSHBUTTON "È¡Ïû",IDCANCEL,46,74,40,14 +#else + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,30,133,8 + PUSHBUTTON "È¡Ïû",IDCANCEL,46,45,40,15 + CTEXT "°´ Cmd-. °´Å¥ÒÔÈ¡Ïû¡£",IDC_STATIC,0,63,133,16 +#endif +END + +// Preview Toolbar Dialog +#ifndef _MAC +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 330, 16 +STYLE WS_CHILD | 0x04 +FONT 8, "MS Sans Serif" +BEGIN + PUSHBUTTON "´òÓ¡(&P)...",AFX_ID_PREVIEW_PRINT,2,2,44,12 + PUSHBUTTON "ÏÂÒ»Ò³(&N)",AFX_ID_PREVIEW_NEXT,48,2,44,12 + PUSHBUTTON "Ç°Ò»Ò³(&V)",AFX_ID_PREVIEW_PREV,94,2,44,12 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,140,2,44,12 + PUSHBUTTON "·Å´ó(&I)",AFX_ID_PREVIEW_ZOOMIN,186,2,44,12 + PUSHBUTTON "ËõС(&O)",AFX_ID_PREVIEW_ZOOMOUT,232,2,44,12 + PUSHBUTTON "¹Ø±Õ(&C)",AFX_ID_PREVIEW_CLOSE,278,2,44,12 +END +#else +// standard toolbar for 14 inch and larger screens +// width *must* be 320 or less so that this is used on 640x480 screens +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 320, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "´òÓ¡(&P)...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "ÏÂÒ»Ò³(&N)",AFX_ID_PREVIEW_NEXT,46,2,44,15 + PUSHBUTTON "Ç°Ò»Ò³(&V)",AFX_ID_PREVIEW_PREV,91,2,44,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,136,2,44,15 + PUSHBUTTON "·Å´ó(&I)",AFX_ID_PREVIEW_ZOOMIN,181,2,44,15 + PUSHBUTTON "ËõС(&O)",AFX_ID_PREVIEW_ZOOMOUT,226,2,44,15 + PUSHBUTTON "¹Ø±Õ(&C)",AFX_ID_PREVIEW_CLOSE,271,2,44,15 +END + +// short toolbar for 9 inch and 12 inch screens +AFX_IDD_PREVIEW_SHORTTOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 270, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "´òÓ¡(&P)...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "ÏÂÒ»(&N)",AFX_ID_PREVIEW_NEXT,46,2,29,15 + PUSHBUTTON "Ç°Ò»(&V)",AFX_ID_PREVIEW_PREV,76,2,29,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,106,2,44,15 + PUSHBUTTON "Èë(&I)",AFX_ID_PREVIEW_ZOOMIN,151,2,29,15 + PUSHBUTTON "³ö(&O)",AFX_ID_PREVIEW_ZOOMOUT,181,2,29,15 + PUSHBUTTON "¹Ø±Õ(&C)",AFX_ID_PREVIEW_CLOSE,211,2,44,15 +END +#endif + +// Printing strings +STRINGTABLE DISCARDABLE +BEGIN + // print progress dialog strings + AFX_IDS_PRINTONPORT, "ÓÚ %1" // for print output + AFX_IDS_ONEPAGE, "Ò»Ò³(&O)" // for preview button + AFX_IDS_TWOPAGE, "Á½Ò³(&T)" // for preview button + AFX_IDS_PRINTPAGENUM, "µÚ %u Ò³" // for print output + AFX_IDS_PREVIEWPAGEDESC, "µÚ %u Ò³ \nµÚ %u Ò³-µÚ %u Ò³ \n" + + // print to file dialog strings + AFX_IDS_PRINTDEFAULTEXT, "prn" // default extension + AFX_IDS_PRINTDEFAULT, "Output.prn" // default file + AFX_IDS_PRINTFILTER, + "´òÓ¡»úÎļþ (*.prn)|*.prn|ËùÓÐÎļþ (*.*)|*.*||" + AFX_IDS_PRINTCAPTION, "Ó¡³öµ½Îļþ" // caption for browse dlg + AFX_IDS_PRINTTOFILE, "µ½ %1" // to file +END + +// Print Preview Accelerator Table +AFX_IDR_PREVIEW_ACCEL ACCELERATORS LOADONCALL MOVEABLE +BEGIN + VK_NEXT, AFX_ID_PREVIEW_NEXT, VIRTKEY, NOINVERT + VK_PRIOR, AFX_ID_PREVIEW_PREV, VIRTKEY, NOINVERT + VK_ESCAPE, AFX_ID_PREVIEW_CLOSE, VIRTKEY, NOINVERT +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXPRINT_RC__ diff --git a/public/sdk/inc/mfc42/l.chs/afxres.rc b/public/sdk/inc/mfc42/l.chs/afxres.rc new file mode 100644 index 000000000..aecc232bd --- /dev/null +++ b/public/sdk/inc/mfc42/l.chs/afxres.rc @@ -0,0 +1,223 @@ +// 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. + +#ifndef __AFXRES_RC__ +#define __AFXRES_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< ²»Äܸü¸Ä±ê×¼ MFC ×ÊÔ´! >\0" +END +#endif //APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Default resource description for MFC applications +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// Strings + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_APPMENU_RESOURCES + AFX_IDS_OPENFILE, "´ò¿ª" +#ifndef _MAC + AFX_IDS_SAVEFILE, "±£´æΪ" + AFX_IDS_ALLFILTER, "ËùÓÐÎļþ (*.*)" + AFX_IDS_UNTITLED, "ÎÞ±êÌâ" +#else + AFX_IDS_SAVEFILE, "±£´æÎĵµÎª:" + AFX_IDS_ALLFILTER, "ËùÓÐÎļþ" + AFX_IDS_UNTITLED, "ÎÞ±êÌâ" + AFX_IDS_ABOUT, "¡°¹ØÓÚ%1\205¡±" +#endif + AFX_IDS_HIDE, "Òþ²Ø(&H)" +#endif // !_AFX_NO_APPMENUSTRING_RESOURCES + + AFX_IDS_MEMORY_EXCEPTION, "ÄÚ´æ²»×ã¡£" + AFX_IDS_NOT_SUPPORTED_EXCEPTION,"ÊÔͼִÐÐϵͳ²»Ö§³ÖµÄ²Ù×÷¡£" + AFX_IDS_RESOURCE_EXCEPTION, "±ØÐèµÄ×ÊÔ´ÎÞ·¨µÃµ½¡£" + AFX_IDS_USER_EXCEPTION, "³öÏÖÁËδ֪µÄ´íÎó" + + // General error prompts +#ifndef _AFX_NO_FILECMD_RESOURCES + AFX_IDP_INVALID_FILENAME, "ÎÞЧµÄÎļþÃû¡£" + AFX_IDP_FAILED_TO_OPEN_DOC, "´ò¿ªÎĵµÊ§°Ü¡£" + AFX_IDP_FAILED_TO_SAVE_DOC, "±£´æÎĵµÊ§°Ü¡£" +#ifndef _MAC + AFX_IDP_ASK_TO_SAVE, "½«¸Ä¶¯±£´æµ½ %1£¿" +#else + AFX_IDP_ASK_TO_SAVE, "½«¸Ä¶¯±£´æµ½ %1 Îĵµ\042%2\042?" +#endif + AFX_IDP_FAILED_TO_CREATE_DOC, "½¨Á¢¿ÕÎĵµÊ§°Ü¡£" + AFX_IDP_FILE_TOO_LARGE, "¸ÃÎļþÌ«´ó£¬ÎÞ·¨´ò¿ª¡£" + AFX_IDP_FAILED_TO_START_PRINT, "ÎÞ·¨Æô¶¯´òÓ¡×÷Òµ¡£" +#endif // !_AFX_NO_FILECMD_RESOURCES + AFX_IDP_FAILED_TO_LAUNCH_HELP, "Æô¶¯°ïÖúʧ°Ü¡£" + AFX_IDP_INTERNAL_FAILURE, "ÄÚ²¿Ó¦ÓóÌÐò³ö´í¡£" + AFX_IDP_COMMAND_FAILURE, "ÃüÁîʧ°Ü¡£" + AFX_IDP_FAILED_MEMORY_ALLOC "ûÓÐ×ã¹»µÄÄÚ´æÖ´ÐвÙ×÷¡£" + AFX_IDP_GET_NOT_SUPPORTED, "ÎÞ·¨¶ÁֻдÌØÐÔ¡£" + AFX_IDP_SET_NOT_SUPPORTED, "ÎÞ·¨Ð´Ö»¶ÁÌØÐÔ¡£" + AFX_IDP_UNREG_DONE, "System registry entries have been removed and the INI file (if any) was deleted." + AFX_IDP_UNREG_FAILURE, "Not all of the system registry entries (or INI file) were removed." + + // CFile/CArchive error strings for user failure +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FAILED_INVALID_FORMAT "·ÇÔ¤ÆÚµÄÎļþ¸ñʽ¡£" +#ifndef _MAC + AFX_IDP_FAILED_INVALID_PATH "ÎÞ·¨ÕÒµ½¸ÃÎļþ¡£\nÇëÑéÖ¤¸ø³öµÄ·¾¶ºÍÎļþÃûÊÇ·ñÕýÈ·¡£" + AFX_IDP_FAILED_DISK_FULL "Ä¿µÄ´ÅÅÌÇý¶¯Æ÷ÒÑÂú¡£" +#else + AFX_IDP_FAILED_INVALID_PATH "ÎÞ·¨ÕÒµ½\042%1Îļþ¡£\042ÇëÑéÖ¤¸ø³öµÄÎļþÃûÊÇ·ñÕýÈ·¡£" + AFX_IDP_FAILED_DISK_FULL "Ä¿µÄ´ÅÅÌÒÑÂú¡£" +#endif + AFX_IDP_FAILED_ACCESS_READ "ÎÞ·¨¶Ô %1 ½øÐжÁ²Ù×÷£¬ËüÒѾ±»ÆäËûÈË´ò¿ª¡£" + AFX_IDP_FAILED_ACCESS_WRITE "ÎÞ·¨¶Ô %1 ½øÐÐд²Ù×÷£¬ÒòΪËüÊÇÖ»¶ÁÎļþ»òÒѾ±»ÆäËûÈË´ò¿ª¡£" + AFX_IDP_FAILED_IO_ERROR_READ "ÔÚ¶Ô %1 ½øÐжÁ²Ù×÷ʱ·¢ÉúÁËÒ»¸ö·ÇÔ¤ÆڵĴíÎó¡£" + AFX_IDP_FAILED_IO_ERROR_WRITE "ÔÚ¶Ô %1 ½øÐÐд²Ù×÷ʱ·¢ÉúÁËÒ»¸ö·ÇÔ¤ÆڵĴíÎó¡£" +#endif // !_AFX_NO_CFILE_RESOURCES + + // Parsing error prompts + AFX_IDP_PARSE_INT, "Çë¼üÈëÒ»¸öÕûÊý¡£" + AFX_IDP_PARSE_REAL, "Çë¼üÈëÒ»¸öÊý¡£" + AFX_IDP_PARSE_INT_RANGE, "¡°ÇëÌîÈëÒ»¸öÔÚ%1ºÍ%2Ö®¼äµÄÕûÊý¡£¡±" + AFX_IDP_PARSE_REAL_RANGE, "¡°ÇëÌîÈëÒ»¸öÔÚ%1ºÍ%2Ö®¼äµÄÊý×Ö¡£¡±" + AFX_IDP_PARSE_STRING_SIZE, "¡°ÇëÌîÈë²»¶àÓÚ%1¸öµÄ×Ö·û¡£¡±" + AFX_IDP_PARSE_RADIO_BUTTON, "ÇëÑ¡ÔñÒ»¸ö°´Å¥¡£" + AFX_IDP_PARSE_BYTE, "¡°ÇëÌîÈëÒ»¸öÔÚ0ºÍ255Ö®¼äµÄÕûÊý¡£¡±" + AFX_IDP_PARSE_UINT, "¡°ÇëÌîÈëÒ»¸öÕýÕûÊý¡£¡±" + AFX_IDP_PARSE_DATETIME, "¡°ÇëÌîÈëÒ»¸öÈÕÆÚºÍ/»òʱ¼äÖµ¡£¡±" + AFX_IDP_PARSE_CURRENCY, "¡°ÇëÌîÈëÒ»¸ö»õ±ÒÖµ¡£¡±" + +#ifndef _AFX_NO_OLE_RESOURCES + // OLE strings required for both servers and containers + AFX_IDS_PASTELINKEDTYPE "Á´½ÓµÄ %s" + AFX_IDS_UNKNOWNTYPE "δ֪ÀàÐÍ" +#ifndef _MAC + AFX_IDP_FAILED_TO_NOTIFY "%1\nÎÞ·¨×¢²áÎĵµ¡£\n´ËÎĵµ¿ÉÄÜÒѾ±»´ò¿ª¡£" +#else + AFX_IDP_FAILED_TO_NOTIFY "ÎÞ·¨×¢²áÎĵµ\042%1¡£\42´ËÎĵµ¿ÉÄÜÒѾ±»´ò¿ª¡£" +#endif +#endif //!_AFX_NO_OLE_RESOURCES + + AFX_IDP_NO_ERROR_AVAILABLE "µÃ²»µ½³ö´íÐÅÏ¢¡£" + +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FILE_NONE "ÎÞ´íÎó·¢Éú¡£" + AFX_IDP_FILE_GENERIC "ÔÚ¶Ô %1 ½øÐзÃÎÊʱ·¢ÉúÁËÒ»¸ö²»Ã÷´íÎó¡£" + AFX_IDP_FILE_NOT_FOUND "ûÓÐÕÒµ½ %1¡£" + AFX_IDP_FILE_BAD_PATH "%1 Öаüº¬ÎÞЧµÄ·¾¶¡£" + AFX_IDP_FILE_TOO_MANY_OPEN "ÎÞ·¨´ò¿ª %1 ÒòΪ̫¶àÎļþÒѱ»´ò¿ª¡£" + AFX_IDP_FILE_ACCESS_DENIED "¶Ô %1 µÄ´æÈ¡±»¾Ü¾ø¡£" + AFX_IDP_FILE_INVALID_FILE "Ò»¸öÎÞЧµÄÎļþ±úÓë %1 Ïà¹ØÁª¡£" + AFX_IDP_FILE_REMOVE_CURRENT "ÎÞ·¨É¾³ý %1 ÒòΪËüÊǵ±Ç°Ä¿Â¼¡£" + AFX_IDP_FILE_DIR_FULL "¸ÃĿ¼ÒÑÂú£¬ÎÞ·¨´´½¨ %1¡£" + AFX_IDP_FILE_BAD_SEEK "¶Ô %1 ½øÐвéÕÒʧ°Ü¡£" + AFX_IDP_FILE_HARD_IO "ÔÚ´æÈ¡ %1 ʱһ¸öÓ²¼þÊäÈë/Êä³ö´íÎó±»±¨¸æ¡£" + AFX_IDP_FILE_SHARING "ÔÚ´æÈ¡ %1 ʱ·¢Éú¹²ÏíÎ¥Àý¡£" + AFX_IDP_FILE_LOCKING "ÔÚ´æÈ¡ %1 ʱ·¢ÉúËøÎ¥Àý¡£" + AFX_IDP_FILE_DISKFULL "ÔÚ´æÈ¡ %1 ʱ´ÅÅÌÒÑÂú¡£" + AFX_IDP_FILE_EOF "ÊÔͼԽ¹ýÆäβ¶Ë¶Ô %1 ½øÐжÁд¡£" + AFX_IDS_UNNAMED_FILE "һδÃüÃûÎļþ" +#endif // !_AFX_NO_CFILE_RESOURCES + + AFX_IDP_ARCH_NONE "ÎÞ´íÎó·¢Éú¡£" + AFX_IDP_ARCH_GENERIC "ÔÚ¶Ô %1 ½øÐзÃÎÊʱ·¢ÉúÁËÒ»¸ö²»Ã÷´íÎó¡£" + AFX_IDP_ARCH_READONLY "ÊÔͼÔÚ¶Ô %1 ½øÐжÁ²Ù×÷µÄͬʱ¶ÔÆä½øÐÐд²Ù×÷¡£" + AFX_IDP_ARCH_ENDOFFILE "ÊÔͼԽ¹ýÆäβ¶Ë¶Ô %1 ½øÐжÁд¡£" + AFX_IDP_ARCH_WRITEONLY "ÊÔͼÔÚ¶Ô %1 ½øÐÐд²Ù×÷µÄͬʱ¶ÔÆä½øÐжÁ²Ù×÷¡£" + AFX_IDP_ARCH_BADINDEX "%1 ¸ñʽ´í¡£" + AFX_IDP_ARCH_BADCLASS "%1 º¬ÓзÇÔ¤ÆڵĶÔÏó¡£" + AFX_IDP_ARCH_BADSCHEMA "%1 °üº¬´íÎóµÄģʽ¡£" + +#ifndef _AFX_NO_MAPI_RESOURCES + // MAPI strings / error messages + AFX_IDP_FAILED_MAPI_LOAD "ÎÞ·¨×°ÈëÓʼþϵͳ֧Ԯ¡£" + AFX_IDP_INVALID_MAPI_DLL "Óʼþϵͳ DLL ÎÞЧ¡£" + AFX_IDP_FAILED_MAPI_SEND "´«µÝÓʼþδÄÜ´«µÝÐÅÏ¢¡£" +#endif //!_AFX_NO_MAPI_RESOURCES + +#ifndef _AFX_NO_OCC_RESOURCES + AFX_IDS_OCC_SCALEUNITS_PIXELS "ÏóËØ" +#endif //!_AFX_NO_OCC_RESOURCES +END + +///////////////////////////////////////////////////////////////////////////// +// Cursors + +AFX_IDC_CONTEXTHELP CURSOR DISCARDABLE "res\\help.cur" + +#ifndef _AFX_NO_SPLITTER_RESOURCES +AFX_IDC_SMALLARROWS CURSOR DISCARDABLE "res\\sarrows.cur" +AFX_IDC_HSPLITBAR CURSOR DISCARDABLE "res\\splith.cur" +AFX_IDC_VSPLITBAR CURSOR DISCARDABLE "res\\splitv.cur" +AFX_IDC_NODROPCRSR CURSOR DISCARDABLE "res\\nodrop.cur" +#endif //!_AFX_NO_SPLITTER_RESOURCES + +#ifndef _AFX_NO_TRACKER_RESOURCES +AFX_IDC_TRACKNWSE CURSOR DISCARDABLE "res\\trcknwse.cur" +AFX_IDC_TRACKNESW CURSOR DISCARDABLE "res\\trcknesw.cur" +AFX_IDC_TRACKNS CURSOR DISCARDABLE "res\\trckns.cur" +AFX_IDC_TRACKWE CURSOR DISCARDABLE "res\\trckwe.cur" +AFX_IDC_TRACK4WAY CURSOR DISCARDABLE "res\\trck4way.cur" +AFX_IDC_MOVE4WAY CURSOR DISCARDABLE "res\\move4way.cur" +#endif //!_AFX_NO_TRACKER_RESOURCES + +#ifndef _AFX_NO_CTL3D_RESOURCES +26567 BITMAP "res\\3dcheck.bmp" // Note: 26567 comes from CTL3D.H +#endif + +///////////////////////////////////////////////////////////////////////////// +// Standard Dialogs + +#ifndef _AFX_NO_NEWTYPEDLG_RESOURCES +AFX_IDD_NEWTYPEDLG DIALOG DISCARDABLE 9, 26, 183, 70 +#ifndef _MAC +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | 0x04 +#else +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION +#endif +CAPTION "н¨" +FONT 8, "MS Sans Serif" +BEGIN + LTEXT "н¨(&N)",IDC_STATIC,6,5,123,8,NOT WS_GROUP + LISTBOX AFX_IDC_LISTBOX,6,15,125,49,WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "È·¶¨",IDOK,137,6,40,14 + PUSHBUTTON "È¡Ïû",IDCANCEL,137,23,40,14 + PUSHBUTTON "°ïÖú(&H)",ID_HELP,137,43,40,14 +END +#endif // !_AFX_NO_NEWTYPEDLG_RESOURCES + +///////////////////////////////////////////////////////////////////////////// +// CMiniFrameWnd Bitmap + +AFX_IDB_MINIFRAME_MENU BITMAP DISCARDABLE "res\\minifwnd.bmp" + +///////////////////////////////////////////////////////////////////////////// +// CCheckListBox Bitmaps + +AFX_IDB_CHECKLISTBOX_NT BITMAP DISCARDABLE "res\\ntcheck.bmp" +AFX_IDB_CHECKLISTBOX_95 BITMAP DISCARDABLE "res\\95check.bmp" + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //!__AFXRES_RC__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/l.cht/afxctl.rc b/public/sdk/inc/mfc42/l.cht/afxctl.rc new file mode 100644 index 000000000..ea73dab14 --- /dev/null +++ b/public/sdk/inc/mfc42/l.cht/afxctl.rc @@ -0,0 +1,284 @@ +// 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. + +#ifndef __AFXCTL_RC__ +#define __AFXCTL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< µLªk§ïÅܼзÇMFC¸ê·½! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Control Resources + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +AFX_IDB_TRUETYPE BITMAP DISCARDABLE "RES\\TRUETYPE.BMP" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +AFX_IDD_PROPPAGE_FONT DIALOG DISCARDABLE 13, 54, 250, 110 +STYLE WS_CHILD | 0x4 +FONT 8, "·s²Ó©úÅé" +BEGIN + LTEXT "ÄݩʦWºÙ(&N):",IDC_STATIC,3,5,61,8 + COMBOBOX AFX_IDC_FONTPROP,65,3,100,71,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + LTEXT "¦r«¬(&F):",IDC_STATIC,3,19,91,8 + COMBOBOX AFX_IDC_FONTNAMES,3,29,91,77,CBS_SIMPLE | + CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | + CBS_HASSTRINGS | CBS_DISABLENOSCROLL | WS_VSCROLL | + WS_TABSTOP + LTEXT "¦r«¬¼Ë¦¡(&y):",IDC_STATIC,102,19,53,8 + COMBOBOX AFX_IDC_FONTSTYLES,104,29,53,53,CBS_DROPDOWNLIST | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + LTEXT "¤j¤p(&S):",IDC_STATIC,167,19,40,8 + COMBOBOX AFX_IDC_FONTSIZES,167,29,36,53,CBS_DROPDOWN | CBS_SORT | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + GROUPBOX "®ÄªG",IDC_STATIC,104,44,142,24,WS_GROUP + CONTROL "¨ú®ø½u(&k)",AFX_IDC_STRIKEOUT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,109,55,65,10 + CONTROL "©³½u(&U)",AFX_IDC_UNDERLINE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,175,55,65,10 + GROUPBOX "½d¨Ò",IDC_STATIC,104,71,142,36,WS_GROUP + CTEXT "AaBbYyZz",AFX_IDC_SAMPLEBOX,110,80,130,22,SS_NOPREFIX | + NOT WS_VISIBLE +END + +AFX_IDD_PROPPAGE_COLOR DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "·s²Ó©úÅé" +BEGIN + LTEXT "ÄݩʦWºÙ(&N):",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_COLORPROP,3,13,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "¨t²ÎÃC¦â(&C):",IDC_STATIC,3,29,100,8 + COMBOBOX AFX_IDC_SYSTEMCOLORS,3,39,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + CONTROL "",AFX_IDC_COLOR_BLACK,"Button",BS_OWNERDRAW | WS_GROUP | + WS_TABSTOP,118,4,15,11 + CONTROL "",AFX_IDC_COLOR_BLUE,"Button",BS_OWNERDRAW,138,4,15,11 + CONTROL "",AFX_IDC_COLOR_CYAN,"Button",BS_OWNERDRAW,158,4,15,11 + CONTROL "",AFX_IDC_COLOR_DARKBLUE,"Button",BS_OWNERDRAW,178,4,15, + 11 + CONTROL "",AFX_IDC_COLOR_DARKCYAN,"Button",BS_OWNERDRAW,118,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKGREEN,"Button",BS_OWNERDRAW,138,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKMAGENTA,"Button",BS_OWNERDRAW,158, + 18,15,11 + CONTROL "",AFX_IDC_COLOR_GRAY,"Button",BS_OWNERDRAW,178,18,15,11 + CONTROL "",AFX_IDC_COLOR_DARKRED,"Button",BS_OWNERDRAW,118,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_GREEN,"Button",BS_OWNERDRAW,138,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_LIGHTBROWN,"Button",BS_OWNERDRAW,158,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_LIGHTGRAY,"Button",BS_OWNERDRAW,178,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_MAGENTA,"Button",BS_OWNERDRAW,118,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_RED,"Button",BS_OWNERDRAW,138,46,15,11 + CONTROL "",AFX_IDC_COLOR_WHITE,"Button",BS_OWNERDRAW,158,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_YELLOW,"Button",BS_OWNERDRAW,178,46,15, + 11 +END + +AFX_IDD_PROPPAGE_PICTURE DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "·s²Ó©úÅé" +BEGIN + LTEXT "ÄݩʦWºÙ(&N):",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_PROPNAME,3,13,100,30,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "ÂsÄý(&B)...",AFX_IDC_BROWSE,3,35,54,14 + PUSHBUTTON "²M°£(&C)",AFX_IDC_CLEAR,61,35,54,14 + RTEXT "¹wÄý:",IDC_STATIC,107,3,42,16 + CONTROL "",AFX_IDC_PICTURE,"Static",SS_BLACKFRAME,151,4,93,54 +END + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +AFX_IDD_PROPPAGE_FONT DLGINIT +BEGIN + 1002, 0x403, 12, 0 +0x6f42, 0x646c, 0x4920, 0x6174, 0x696c, 0x0063, + 0 +END + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PROPPAGE_UNKNOWN "(¥¼ª¾)" + AFX_IDS_COLOR_DESKTOP "®à±" + AFX_IDS_COLOR_APPWORKSPACE "À³¥Îµ{¦¡¤u§@°Ï" + AFX_IDS_COLOR_WNDBACKGND "µøµ¡I´º" + AFX_IDS_COLOR_WNDTEXT "µøµ¡¤å¦r" + AFX_IDS_COLOR_MENUBAR "¥\¯àªí¦C" + AFX_IDS_COLOR_MENUTEXT "¥\¯àªí¤å¦r" + AFX_IDS_COLOR_ACTIVEBAR "²{¥Î¼ÐÃD¦C" + AFX_IDS_COLOR_INACTIVEBAR "«D²{¥Î¼ÐÃD¦C" + AFX_IDS_COLOR_ACTIVETEXT "²{¥Î¼ÐÃD¦C¤å¦r" + AFX_IDS_COLOR_INACTIVETEXT "²{¥Î¼ÐÃD¦C¤å¦r" + AFX_IDS_COLOR_ACTIVEBORDER "²{¥ÎÃä¬É" + AFX_IDS_COLOR_INACTIVEBORDER "«D²{¥ÎÃä¬É" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_WNDFRAME "µøµ¡Ãä®Ø" + AFX_IDS_COLOR_SCROLLBARS "±²¶b" + AFX_IDS_COLOR_BTNFACE "«ö¶sªí±" + AFX_IDS_COLOR_BTNSHADOW "«ö¶s³±¼v" + AFX_IDS_COLOR_BTNTEXT "«ö¶s¤å¦r" + AFX_IDS_COLOR_BTNHIGHLIGHT "«ö¶s±j½Õ" + AFX_IDS_COLOR_DISABLEDTEXT "¥¢®Ä¤å¦r" + AFX_IDS_COLOR_HIGHLIGHT "±j½Õ" + AFX_IDS_COLOR_HIGHLIGHTTEXT "±j½Õ¤å¦r" + AFX_IDS_REGULAR "¤@¯ë" + AFX_IDS_BOLD "²ÊÅé" + AFX_IDS_ITALIC "±×Åé" + AFX_IDS_BOLDITALIC "²Ê±×Åé" + AFX_IDS_SAMPLETEXT "AaBbYyZz" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_DISPLAYSTRING_FONT "(¦r«¬)" + AFX_IDS_DISPLAYSTRING_COLOR "(ÃC¦â)" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_DISPLAYSTRING_PICTURE "(¹Ï¤ù - %s)" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTUREFILTER "All Picture Types|*.bmp;*.cur;*.dib;*.emf;*.ico;*.wmf|Bitmaps (*.bmp;*.dib)|*.bmp;*.dib|Icons/Cursors (*.ico;*.cur)|*.ico;*.cur|Metafiles (*.wmf;*.emf)|*.wmf;*.emf|All files (*.*)|*.*||" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTYPE_UNKNOWN "¥¼ª¾" + AFX_IDS_PICTYPE_NONE "None" + AFX_IDS_PICTYPE_BITMAP "ÂI°}¹Ï§Î" + AFX_IDS_PICTYPE_METAFILE "Metafile" + AFX_IDS_PICTYPE_ICON "¹Ï¥Ü" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_PPG "±m¦âÄݩʶ" + AFX_IDS_COLOR_PPG_CAPTION "±m¦â" + AFX_IDS_FONT_PPG "¦r«¬Äݩʶ" + AFX_IDS_FONT_PPG_CAPTION "¦r«¬" + AFX_IDS_PICTURE_PPG "¹Ï¤ùÄݩʶ" + AFX_IDS_PICTURE_PPG_CAPTION "¹Ï¤ù" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_BORDERSTYLE_0 "0 - None" + AFX_IDS_BORDERSTYLE_1 "1 - Fixed Single" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_VERB_EDIT "½s¿è(&E)" + AFX_IDS_VERB_PROPERTIES "ÄÝ©Ê(&P)..." +END + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_PICTURECANTOPEN "µLªk¸ü¤J¹Ï¤ùÀÉ®× %1. Àɮפ]³\©Î¤£¦s¦b, ©ÎµLªkŪ¨ú." + AFX_IDP_PICTURECANTLOAD "µLªk¸ü¤J¹Ï¤ùÀÉ®× %1. Àɮ׮榡¿ù»~." + AFX_IDP_PICTURETOOLARGE "µLªk¸ü¤J¹Ï¤ùÀÉ®× %1. ÀɮפӤj°O¾ÐÅ餣°÷." + AFX_IDP_PICTUREREADFAILED + "µLªk¸ü¤J¹Ï¤ùÀÉ®× %1. µLªk¸ÑÄÀªºÅª¨ú¥¢±Ñ." +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PICTUREBROWSETITLE "ÂsÄý¹Ï¤ù" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +#ifndef _AFX_NO_CTLERROR_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_ILLEGALFUNCTIONCALL "¤£¦Xªk¤§¥\¯à©I¥s" + AFX_IDP_E_OVERFLOW "·¸¥X(Overflow)" + AFX_IDP_E_OUTOFMEMORY "°O¾ÐÅé¥Î§¹" + AFX_IDP_E_DIVISIONBYZERO "°£¹s" + AFX_IDP_E_OUTOFSTRINGSPACE "¦r¦êªÅ¶¡¤wº¡" + AFX_IDP_E_OUTOFSTACKSPACE "°ïÅ|¤wº¡" + AFX_IDP_E_BADFILENAMEORNUMBER "ÃaªºÀɮצWºÙ©Î½s¸¹" + AFX_IDP_E_FILENOTFOUND "§ä¤£¨ìÀÉ®×" + AFX_IDP_E_BADFILEMODE "ÃaªºÀÉ®×¼ÒºA" + AFX_IDP_E_FILEALREADYOPEN "Àɮפw¶}±Ò" + AFX_IDP_E_DEVICEIOERROR "³]³Æ¿é¥X¤J¿ù»~" + AFX_IDP_E_FILEALREADYEXISTS "Àɮפw¦s¦b" + AFX_IDP_E_BADRECORDLENGTH "Ãaªº¬ö¿ýªø«×" + AFX_IDP_E_DISKFULL "ºÏºÐªÅ¶¡¤wº¡" + AFX_IDP_E_BADRECORDNUMBER "Ãaªº¬ö¿ý½s¸¹" + AFX_IDP_E_BADFILENAME "ÃaªºÀɮצWºÙ" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_TOOMANYFILES "¤Ó¦hÀÉ®×" + AFX_IDP_E_DEVICEUNAVAILABLE "³]³ÆµLªk¨Ï¥Î" + AFX_IDP_E_PERMISSIONDENIED "¤¹³\©Úµ´" + AFX_IDP_E_DISKNOTREADY "ºÏºÐ¾÷¥¼³Æ§´" + AFX_IDP_E_PATHFILEACCESSERROR "¸ô®|/Àɮצs¨ú¿ù»~" + AFX_IDP_E_PATHNOTFOUND "§ä¤£¨ì¸ô®|" + AFX_IDP_E_INVALIDPATTERNSTRING "¤£¦Xªkªº¼Ë¦¡¦r¦ê" + AFX_IDP_E_INVALIDUSEOFNULL "¤£¦Xªk¨Ï¥ÎªÅÈ(null)" + AFX_IDP_E_INVALIDFILEFORMAT "¤£¦XªkªºÀɮ׮榡" + AFX_IDP_E_INVALIDPROPERTYVALUE "¤£¦XªkªºÄÝ©ÊÈ" + AFX_IDP_E_INVALIDPROPERTYARRAYINDEX "¤£¦Xªkªº¯Á¤Þ" + AFX_IDP_E_SETNOTSUPPORTEDATRUNTIME "µLªk¦b°õ¦æ®É³]©wÄÝ©Ê" + AFX_IDP_E_SETNOTSUPPORTED "°ßŪÄÝ©Ê" + AFX_IDP_E_NEEDPROPERTYARRAYINDEX + "·í¨Ï¥ÎÄÝ©Ê°}¦C®É¥²¶·»¡©ú°}¦C¯Á¤Þ" + AFX_IDP_E_SETNOTPERMITTED "³oÓ±±¨î¶µ¤§ÄݩʵLªk³]©w" + AFX_IDP_E_GETNOTSUPPORTEDATRUNTIME "µLªk¦b°õ¦æ®ÉŪ¨úÄÝ©Ê" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_GETNOTSUPPORTED "°ß¼gÄÝ©Ê" + AFX_IDP_E_PROPERTYNOTFOUND "§ä¤£¨ìÄÝ©Ê" + AFX_IDP_E_INVALIDCLIPBOARDFORMAT "¤£¦Xªk¤§°Å¶Kï®æ¦¡" + AFX_IDP_E_INVALIDPICTURE "¤£¦Xªk¹Ï¤ù" + AFX_IDP_E_PRINTERERROR "¦Lªí¾÷¿ù»~" + AFX_IDP_E_CANTSAVEFILETOTEMP + "µLªk²£¥Í¥²¶·Àx¦s¤§¼È®ÉÀÉ®×" + AFX_IDP_E_SEARCHTEXTNOTFOUND "µLªk§ä¨ì·Q·j´M¤§¤å¦r" + AFX_IDP_E_REPLACEMENTSTOOLONG "¨ú¥N¤å¦r¹Lªø" +END +#endif //!_AFX_NO_CTLERROR_RESOURCES + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.cht/afxdb.rc b/public/sdk/inc/mfc42/l.cht/afxdb.rc new file mode 100644 index 000000000..efff95274 --- /dev/null +++ b/public/sdk/inc/mfc42/l.cht/afxdb.rc @@ -0,0 +1,103 @@ +// 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. + +#ifndef __AFXDB_RC__ +#define __AFXDB_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< µLªk§ïÅܼзÇMFC¸ê·½! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Database Resources + +// Database strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_SQL_CONNECT_FAIL + "¹Á¸Õ³sµ²¸ê®Æ¨Ó·½¥¢±Ñ" + AFX_IDP_SQL_RECORDSET_FORWARD_ONLY + "¸ê®Æ¶°¥u¤ä´©¦V«e²¾°Ê." + AFX_IDP_SQL_EMPTY_COLUMN_LIST + "¹Á¸Õ¶}±Òªí®æ¥¢±Ñ - µL¥ô¦ó¦s¨ú¸ê®ÆÄ满©ú." + AFX_IDP_SQL_FIELD_SCHEMA_MISMATCH + "¬d¸ß¶Ç¦^«D¹w´Á¸ê®ÆÄ櫬ºA." + AFX_IDP_SQL_ILLEGAL_MODE "קï©Î§R°£¹Á¸Õ¥¢±Ñ." + AFX_IDP_SQL_MULTIPLE_ROWS_AFFECTED "¦hÓ¸ê®Æ¦C³Qקï." + AFX_IDP_SQL_NO_CURRENT_RECORD "§@·~¥¢±Ñ, µL²{¦æ¸ê®Æ¬ö¿ý." + AFX_IDP_SQL_NO_ROWS_AFFECTED + "µL¥ô¦ó¸ê®Æ¦C¨üקï©Î§R°£§@·~¼vÅT." + AFX_IDP_SQL_RECORDSET_READONLY "¸ê®Æ¶°¬O°ßŪ" + AFX_IDP_SQL_SQL_NO_TOTAL + "ODBCÅX°Êµ{¦¡¤£¤ä´©MFCªø¤G¶i¦ì(LongBinary)¸ê®Æ¼Ò¦¡." + AFX_IDP_SQL_ODBC_LOAD_FAILED + "¹Á¸Õ¸ü¤J¥²n¤¸¥ó ODBC32.DLL ¥¢±Ñ." + AFX_IDP_SQL_DYNASET_NOT_SUPPORTED + "ODBCÅX°Êµ{¦¡¤£¤ä´© Dynasets." + AFX_IDP_SQL_SNAPSHOT_NOT_SUPPORTED + "ODBCÀRºA´å¼Ð»Ýnsnapshot¤ä´©." + AFX_IDP_SQL_API_CONFORMANCE + "ODBCÅX°Êµ{¦¡»PMFC ¸ê®Æ®wÃþ§O¤£¬Û®e(API_CONFORMANCE >= SQL_OAC_LEVEL1 required)." + AFX_IDP_SQL_SQL_CONFORMANCE + "ODBCÅX°Êµ{¦¡»PMFC¸ê®Æ®wÃþ§O¤£¬Û®e (SQL_CONFORMANCE >= SQL_OSC_MINIMUM required)." + AFX_IDP_SQL_NO_DATA_FOUND + "¹Á¸Õ¨Ï¥Î±²¶b±²°Ê¸ê®Æ¦C¶W¹L²Ä¤@µ§¸ê®Æ." + AFX_IDP_SQL_ROW_UPDATE_NOT_SUPPORTED + "ODBCÅX°Êµ{¦¡¤£¤ä´© Dynasets." + AFX_IDP_SQL_ODBC_V2_REQUIRED + "¶·nODBC¼h¦¸2¶¶À³ÅX°Êµ{¦¡(Level 2 compliant driver)." + AFX_IDP_SQL_NO_POSITIONED_UPDATES + "ODBCÅX°Êµ{¦¡¤£¤ä´©©w¦ìקï(Positioned updates)." + AFX_IDP_SQL_LOCK_MODE_NOT_SUPPORTED + "¤£¤ä´©½Ð¨DÂê©w¼ÒºA(Requested lock mode)." + AFX_IDP_SQL_DATA_TRUNCATED + "¸ê®ÆºI¨ú." + AFX_IDP_SQL_ROW_FETCH + "¿ù»~¦^´_¸ê®Æ¿ý." + AFX_IDP_SQL_INCORRECT_ODBC + "¤@Ó¥²¶·ªºODBC¶i¤JÂI¨S§ä¨ì. ½T©wODBC³Q¥¿½Tªº¦w¸Ë." + AFX_IDP_SQL_UPDATE_DELETE_FAILED + "קï©Î§R°£¥¢±Ñ." + AFX_IDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED + "ODBCÅX°Êµ{¦¡¨S¦³¤ä´©°ÊºA´å¼Ð." + AFX_IDP_SQL_FIELD_NOT_FOUND + "Invalid field name or field index." + AFX_IDP_SQL_BOOKMARKS_NOT_SUPPORTED + "Bookmarks not supported for ODBC driver." + AFX_IDP_SQL_BOOKMARKS_NOT_ENABLED + "Bookmarks not enabled on recordset." + AFX_IDP_DAO_ENGINE_INITIALIZATION + "µLªk¶i¦æDAO/Jet¸ê®Æ®w¤ÞÀº(db engin)ªì©l¤Æ." + AFX_IDP_DAO_DFX_BIND + "ÃaªºDFX°Ñ¼ÆÈ." + AFX_IDP_DAO_OBJECT_NOT_OPEN + "DAOªºTableDefª«¥ó©ÎQueryDefª«¥ó¥¼¶}±Ò." + AFX_IDP_DAO_ROWTOOSHORT + "GetRows¥¢±Ñ. ¨S¦³¨¬°÷°O¾ÐÅé°t¸mµ¹¸ê®Æ¦C." + AFX_IDP_DAO_BADBINDINFO + "GetRows³sµ²¥¢±Ñ. ¤]³\¬O¦]¸ê®Æ«¬ºA¤£¦X©ÒP." + AFX_IDP_DAO_COLUMNUNAVAILABLE + "GetRows¥¢±Ñ. ©Òn¨Dªº¸ê®ÆÄ椣¦b¸ê®Æ¶°(Recordset)¤¤." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXDB_RC__ diff --git a/public/sdk/inc/mfc42/l.cht/afxolecl.rc b/public/sdk/inc/mfc42/l.cht/afxolecl.rc new file mode 100644 index 000000000..995480e98 --- /dev/null +++ b/public/sdk/inc/mfc42/l.cht/afxolecl.rc @@ -0,0 +1,66 @@ +// 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. + +#ifndef __AFXOLECL_RC__ +#define __AFXOLECL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifndef _INC_DLGS + #include <dlgs.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< µLªk§ïÅܼзÇMFC¸ê·½! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Client Resources + +///////////////////////////////////////////////////////////////////////////// +// OLE strings + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_STATIC_OBJECT "µLªk¨ÏÀRºAOLEª«¥ó¦¨¬°²{¥Îª«¥ó." + AFX_IDP_FAILED_TO_CONNECT "³sµ²¥¢±Ñ.\n³sµ²¥i¯à³Q¯}Ãa." + AFX_IDP_SERVER_BUSY "µLªk³B²z«ü¥O, ¦øªA¾¹¦£¸L¤¤." + AFX_IDP_BAD_VERB "¦øªA¾¹§@·~°õ¦æ¥¢±Ñ." + AFX_IDP_FAILED_TO_LAUNCH "µLªk±Ò°Ê¦øªA¾¹À³¥Îµ{¦¡." + AFX_IDS_UPDATING_ITEMS "קïOLEª«¥ó" + AFX_IDP_FAILED_TO_CONVERT "OLEª«¥óÂà´«¥¢±Ñ." + AFX_IDP_ASK_TO_DISCARD "·íÂ÷¶}µøµ¡®ÉµLªkÀx¦sOLEª«¥ó!\n©ñ±ó¹ï1%ªº©Ò¦³×§ï?" + AFX_IDP_FAILED_TO_CREATE "²£¥Íª«¥ó¥¢±Ñ. ½T©wÀ³¥Îµ{¦¡¤wµn¿ý¦b¨t²Îµn¿ý¾¹¤¤(system registry)." + + AFX_IDS_METAFILE_FORMAT "¹Ï¤ù(Metafile)\na ¹Ï¤ù" + AFX_IDS_DIB_FORMAT "³]³Æ¿W¥ßÂI°}¹Ï(Device Independent Bitmap)\na ³]³Æ¿W¥ßÂI°}¹Ï(device independent bitmap)" + AFX_IDS_BITMAP_FORMAT "ÂI°}¹Ï\na ÂI°}¹Ï" + AFX_IDS_LINKSOURCE_FORMAT "%s\n%s" + AFX_IDS_EMBED_FORMAT "%s\n%s" + AFX_IDS_RTF_FORMAT "Rich Text (RTF)\nµL¦r«¬©M¬q¸¨®æ¦¡ªº¤å¦r" + AFX_IDS_TEXT_FORMAT "¥¼®æ¦¡¤Æ¤å¦r\n¤å¦r¨S¦³¥ô¦ó®æ¦¡" + + AFX_IDS_INVALID_CURRENCY "¤£¦Xªkªº³f¹ôÈ(Currency)." + AFX_IDS_INVALID_DATETIME "¤£¦Xªkªº¤é´Á®É¶¡(DateTime)." + AFX_IDS_INVALID_DATETIMESPAN "¤£¦XªkªºDateTimeSpan." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.cht/afxolesv.rc b/public/sdk/inc/mfc42/l.cht/afxolesv.rc new file mode 100644 index 000000000..481249b10 --- /dev/null +++ b/public/sdk/inc/mfc42/l.cht/afxolesv.rc @@ -0,0 +1,53 @@ +// 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. + +#ifndef __AFXOLESV_RC__ +#define __AFXOLESV_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< µLªk§ïÅܼзÇMFC¸ê·½! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Server Resources + +// OLE strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_ASK_TO_UPDATE, "¦b¶i¦æ«eקï %1?" + AFX_IDP_FAILED_TO_UPDATE, "µLªkקï«È¤á(client)." + + AFX_IDP_FAILED_TO_REGISTER, "µn¿ý¥¢±Ñ. OLE¥\¯à¥i¯àµLªk¥¿±`¤u§@." + AFX_IDP_FAILED_TO_AUTO_REGISTER, "קï¨t²Îµn¿ý¾¹(system registry)¥¢±Ñ.\n½Ð¹Á¸Õ¨Ï¥ÎREGEDIT." +END + +STRINGTABLE PRELOAD +BEGIN + AFX_IDS_APP_TITLE_EMBEDDING, "%1 in %2" + AFX_IDS_OBJ_TITLE_INPLACE, "%1 - %2" + AFX_IDS_EXIT_MENU, "Â÷¶}(&x) && ¸õ¦^¨ì%1" + AFX_IDS_UPDATE_MENU, "קï(&U)%1" + AFX_IDS_SAVEFILECOPY, "¥t¦s½Æ»s" +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLESV_RC__ diff --git a/public/sdk/inc/mfc42/l.cht/afxprint.rc b/public/sdk/inc/mfc42/l.cht/afxprint.rc new file mode 100644 index 000000000..87356548d --- /dev/null +++ b/public/sdk/inc/mfc42/l.cht/afxprint.rc @@ -0,0 +1,130 @@ +// 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. + +#ifndef __AFXPRINT_RC__ +#define __AFXPRINT_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"<µLªk§ïÅܼзÇMFC¸ê·½! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Printing Resources + +AFX_IDC_MAGNIFY CURSOR DISCARDABLE "res\\magnify.cur" + +#ifndef _MAC +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | 0x04 +#else +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 84 +STYLE DS_MODALFRAME | WS_POPUP +#endif +FONT 8, "·s²Ó©úÅé" +BEGIN + CTEXT "¦C¦L",IDC_STATIC,0,9,133,8 + CTEXT "",AFX_IDC_PRINT_DOCNAME,0,19,133,8 +#ifndef _MAC + CTEXT "¥¿¦b",IDC_STATIC,0,29,133,8 + CTEXT "",AFX_IDC_PRINT_PRINTERNAME,0,39,133,8 + CTEXT "",AFX_IDC_PRINT_PORTNAME,0,49,133,8 + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,59,133,8 + PUSHBUTTON "¨ú®ø",IDCANCEL,46,74,40,14 +#else + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,30,133,8 + PUSHBUTTON "¨ú®ø",IDCANCEL,46,45,40,15 + CTEXT "«ö¤U Cmd-. ¨ú®ø.",IDC_STATIC,0,63,133,16 +#endif +END + +// Preview Toolbar Dialog +#ifndef _MAC +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 330, 16 +STYLE WS_CHILD | 0x04 +FONT 8, "·s²Ó©úÅé" +BEGIN + PUSHBUTTON "¦C¦L(&P)...",AFX_ID_PREVIEW_PRINT,2,2,44,12 + PUSHBUTTON "¤U¤@¶(&N)",AFX_ID_PREVIEW_NEXT,48,2,44,12 + PUSHBUTTON "«e¤@¶(&v)",AFX_ID_PREVIEW_PREV,94,2,44,12 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,140,2,44,12 + PUSHBUTTON "©Ôªñ(&I)",AFX_ID_PREVIEW_ZOOMIN,186,2,44,12 + PUSHBUTTON "©Ô»·(&O)",AFX_ID_PREVIEW_ZOOMOUT,232,2,44,12 + PUSHBUTTON "Ãö³¬(&C)",AFX_ID_PREVIEW_CLOSE,278,2,44,12 +END +#else +// standard toolbar for 14 inch and larger screens +// width *must* be 320 or less so that this is used on 640x480 screens +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 320, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "¦C¦L(&P)...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "¤U¤@¶(&N)",AFX_ID_PREVIEW_NEXT,46,2,44,15 + PUSHBUTTON "«e¤@¶(&v)",AFX_ID_PREVIEW_PREV,91,2,44,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,136,2,44,15 + PUSHBUTTON "©Ôªñ(&I)",AFX_ID_PREVIEW_ZOOMIN,181,2,44,15 + PUSHBUTTON "©Ô»·(&O)",AFX_ID_PREVIEW_ZOOMOUT,226,2,44,15 + PUSHBUTTON "Ãö³¬(&C)",AFX_ID_PREVIEW_CLOSE,271,2,44,15 +END + +// short toolbar for 9 inch and 12 inch screens +AFX_IDD_PREVIEW_SHORTTOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 270, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "¦C¦L(&P)...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "¤U¤@Ó(&N)",AFX_ID_PREVIEW_NEXT,46,2,29,15 + PUSHBUTTON "«e¤@Ó(&v)",AFX_ID_PREVIEW_PREV,76,2,29,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,106,2,44,15 + PUSHBUTTON "ªñ(&I)",AFX_ID_PREVIEW_ZOOMIN,151,2,29,15 + PUSHBUTTON "»·(&O)",AFX_ID_PREVIEW_ZOOMOUT,181,2,29,15 + PUSHBUTTON "Ãö³¬(&C)",AFX_ID_PREVIEW_CLOSE,211,2,44,15 +END +#endif + +// Printing strings +STRINGTABLE DISCARDABLE +BEGIN + // print progress dialog strings + AFX_IDS_PRINTONPORT, "¦b %1" // for print output + AFX_IDS_ONEPAGE, "¤@¶(&O)" // for preview button + AFX_IDS_TWOPAGE, "¨â¶(&T)" // for preview button + AFX_IDS_PRINTPAGENUM, "¶ %u" // for print output + AFX_IDS_PREVIEWPAGEDESC, "¶ %u\n¶ %u-%u\n" + + // print to file dialog strings + AFX_IDS_PRINTDEFAULTEXT, "prn" // default extension + AFX_IDS_PRINTDEFAULT, "Output.prn" // default file + AFX_IDS_PRINTFILTER, + "¦Lªí¾÷ÀÉ®×(*.prn)|*.prn|All Files (*.*)|*.*||" + AFX_IDS_PRINTCAPTION, "¦C¦L¨ìÀÉ®×" // caption for browse dlg + AFX_IDS_PRINTTOFILE, "¨ì %1" // to file +END + +// Print Preview Accelerator Table +AFX_IDR_PREVIEW_ACCEL ACCELERATORS LOADONCALL MOVEABLE +BEGIN + VK_NEXT, AFX_ID_PREVIEW_NEXT, VIRTKEY, NOINVERT + VK_PRIOR, AFX_ID_PREVIEW_PREV, VIRTKEY, NOINVERT + VK_ESCAPE, AFX_ID_PREVIEW_CLOSE, VIRTKEY, NOINVERT +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXPRINT_RC__ diff --git a/public/sdk/inc/mfc42/l.cht/afxres.rc b/public/sdk/inc/mfc42/l.cht/afxres.rc new file mode 100644 index 000000000..a03837b43 --- /dev/null +++ b/public/sdk/inc/mfc42/l.cht/afxres.rc @@ -0,0 +1,223 @@ +// 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. + +#ifndef __AFXRES_RC__ +#define __AFXRES_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< µLªk§ïÅܼзÇMFC¸ê·½! >\0" +END +#endif //APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Default resource description for MFC applications +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// Strings + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_APPMENU_RESOURCES + AFX_IDS_OPENFILE, "¶}±ÒÂÂÀÉ" +#ifndef _MAC + AFX_IDS_SAVEFILE, "¥t¦s·sÀÉ" + AFX_IDS_ALLFILTER, "©Ò¦³¤å¥ó (*.*)" + AFX_IDS_UNTITLED, "¥¼©R¦W¼ÐÃD" +#else + AFX_IDS_SAVEFILE, "¥t¦s¤å¥ó:" + AFX_IDS_ALLFILTER, "©Ò¦³¤å¥ó" + AFX_IDS_UNTITLED, "¥¼©R¦W¼ÐÃD" + AFX_IDS_ABOUT, "Ãö©ó %1\205" +#endif + AFX_IDS_HIDE, "ÁôÂÃ(&H)" +#endif // !_AFX_NO_APPMENUSTRING_RESOURCES + + AFX_IDS_MEMORY_EXCEPTION, "°O¾ÐÅ餣¨¬." + AFX_IDS_NOT_SUPPORTED_EXCEPTION,"¸Õ¹Ï°õ¦æ¥¼¤ä´©ªº§@·~." + AFX_IDS_RESOURCE_EXCEPTION, "¦³¤@¶µ¥²nªº¸ê·½µLªk¨Ï¥Î." + AFX_IDS_USER_EXCEPTION, "²£¥Í¤@¥¼ª¾ªº¿ù»~." + + // General error prompts +#ifndef _AFX_NO_FILECMD_RESOURCES + AFX_IDP_INVALID_FILENAME, "¤£¦Xªk¤§ÀɮצWºÙ." + AFX_IDP_FAILED_TO_OPEN_DOC, "¶}±Ò¤å¥ó¥¢±Ñ." + AFX_IDP_FAILED_TO_SAVE_DOC, "Àx¦s¤å¥ó¥¢±Ñ." +#ifndef _MAC + AFX_IDP_ASK_TO_SAVE, "Àx¦sקï¨ì %1?" +#else + AFX_IDP_ASK_TO_SAVE, "Àx¦sקï¨ì %1 ¤å¥ó \042%2\042?" +#endif + AFX_IDP_FAILED_TO_CREATE_DOC, "²£¥ÍªÅ¥Õ¤å¥ó¥¢±Ñ." + AFX_IDP_FILE_TOO_LARGE, "ÀɮפӤjµLªk¶}±Ò." + AFX_IDP_FAILED_TO_START_PRINT, "¦C¦L¤u§@µLªk±Ò©l." +#endif // !_AFX_NO_FILECMD_RESOURCES + AFX_IDP_FAILED_TO_LAUNCH_HELP, "»¡©ú¶}±Ò¥¢±Ñ." + AFX_IDP_INTERNAL_FAILURE, "¤º³¡À³¥Îµ{¦¡¿ù»~." + AFX_IDP_COMMAND_FAILURE, "©R¥O¥¢±Ñ." + AFX_IDP_FAILED_MEMORY_ALLOC "°O¾ÐÅ餣°÷µLªk°õ¦æ§@·~." + AFX_IDP_GET_NOT_SUPPORTED, "µLªkŪ¨ú°ß¼gÄÝ©Ê." + AFX_IDP_SET_NOT_SUPPORTED, "µLªk¼g¤J°ßŪÄÝ©Ê." + AFX_IDP_UNREG_DONE, "System registry entries have been removed and the INI file (if any) was deleted." + AFX_IDP_UNREG_FAILURE, "Not all of the system registry entries (or INI file) were removed." + + // CFile/CArchive error strings for user failure +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FAILED_INVALID_FORMAT "Àɮ׮榡¿ù»~." +#ifndef _MAC + AFX_IDP_FAILED_INVALID_PATH "%1\n¨S¦³§ä¨ì³oÓÀÉ®×.\n½Ð½T»{¥¿½Tªº¸ô®|©MÀɮצWºÙ." + AFX_IDP_FAILED_DISK_FULL "¥Ø¼ÐºÏºÐ¾÷ªÅ¶¡¤wº¡." +#else + AFX_IDP_FAILED_INVALID_PATH "µLªk§ä¨ìÀÉ®× \042%1.\042 ½Ð½T»{¥¿½TªºÀɮצWºÙ." + AFX_IDP_FAILED_DISK_FULL "¥Ø¼ÐºÏºÐ¾÷ªÅ¶¡¤wº¡." +#endif + AFX_IDP_FAILED_ACCESS_READ "µLªkŪ¨ú %1, ¥¦¤w¸g³Q¬Y¤H¶}±Ò." + AFX_IDP_FAILED_ACCESS_WRITE "µLªk¼g¤J %1, ¥¦¬O°ßŪÀɩγQ¬Y¤H¶}±Ò." + AFX_IDP_FAILED_IO_ERROR_READ "·íŪ¨ú 1% ®É²£¥Í«D¹w´Á¿ù»~." + AFX_IDP_FAILED_IO_ERROR_WRITE "·í¼g¤J 1% ²£¥Í«D¹w´Á¿ù»~." +#endif // !_AFX_NO_CFILE_RESOURCES + + // Parsing error prompts + AFX_IDP_PARSE_INT, "½Ð¿é¤J¤@¾ã¼Æ." + AFX_IDP_PARSE_REAL, "½Ð¿é¤J¤@¼ÆÈ." + AFX_IDP_PARSE_INT_RANGE, "½Ð¿é¤J¤@Ó¦b 1% ¨ì 2% ¤§¶¡ªº¾ã¼Æ." + AFX_IDP_PARSE_REAL_RANGE, "½Ð¿é¤J¤@Ó¦b 1% ¨ì 2% ¤§¶¡ªº¼ÆÈ." + AFX_IDP_PARSE_STRING_SIZE, "½Ð¿é¤J¤Ö©ó %1Ó¤å¦r." + AFX_IDP_PARSE_RADIO_BUTTON, "½Ð¿ï¾Ü¤@«ö¶s." + AFX_IDP_PARSE_BYTE, "½Ð¿é¤J¤@Ó¦b 0 ¨ì 225 ¤§¶¡ªº¾ã¼Æ." + AFX_IDP_PARSE_UINT, "½Ð¿é¤J¤@¥¿¾ã¼Æ." + AFX_IDP_PARSE_DATETIME, "½Ð¿é¤J¤@¤é´Á ©M/©Î ®É¶¡." + AFX_IDP_PARSE_CURRENCY, "½Ð¿é¤J¤@³f¹ôÈ." + +#ifndef _AFX_NO_OLE_RESOURCES + // OLE strings required for both servers and containers + AFX_IDS_PASTELINKEDTYPE "³sµ² %s" + AFX_IDS_UNKNOWNTYPE "¥¼ª¾«¬ºA" +#ifndef _MAC + AFX_IDP_FAILED_TO_NOTIFY "%1\nµLªkµn¿ý¤å¥ó.\n³oÓ¤å¥ó¤w³Q¶}±Ò." +#else + AFX_IDP_FAILED_TO_NOTIFY "µLªkµn¿ý¤å¥ó \042%1.\042 T³oÓ¤å¥ó¤w³Q¶}±Ò." +#endif +#endif //!_AFX_NO_OLE_RESOURCES + + AFX_IDP_NO_ERROR_AVAILABLE "µL¥i¥Îªº¿ù»~°T®§." + +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FILE_NONE "µL¿ù»~²£¥Í." + AFX_IDP_FILE_GENERIC "·í¦s¨ú %1 ®Éµo¥Í¤£¥iª¾ªº¿ù»~." + AFX_IDP_FILE_NOT_FOUND "¨S¦³§ä¨ì %1 ." + AFX_IDP_FILE_BAD_PATH "%1 ¥]§t«D¦Xªk¸ô®|." + AFX_IDP_FILE_TOO_MANY_OPEN "%1 µLªk¶}±Ò,¦]¬°¤w¶}±Ò¤Ó¦hÀÉ®×." + AFX_IDP_FILE_ACCESS_DENIED "¦s¨ú %1 ¾D¨ü©Úµ´." + AFX_IDP_FILE_INVALID_FILE "¤@¤£¦XªkÀÉ®×¥N½X»P %1 ¦³ÃöÁp." + AFX_IDP_FILE_REMOVE_CURRENT "%1 µLªk³Q²¾°£¦]¬°¥¦¬O¨Ï¥Î¤¤¥Ø¿ý." + AFX_IDP_FILE_DIR_FULL "%1 µLªk²£¥Í¦]¬°¥Ø¿ýªÅ¶¡¤wº¡." + AFX_IDP_FILE_BAD_SEEK " 1% ·j´M¥¢±Ñ" + AFX_IDP_FILE_HARD_IO "·í¦s¨ú 1% ®É²£¥ÍµwÅé¿é¥X¤J¿ù»~." + AFX_IDP_FILE_SHARING "·í¦s¨ú 1% ®Éµo¥Í¤À¨É¹H¤Ï(Sharing Violation)." + AFX_IDP_FILE_LOCKING "·í¦s¨ú 1% ®É¦³²£¥ÍÂê©w¹H¤Ï(Locking Violation)." + AFX_IDP_FILE_DISKFULL "·í¦s¨ú 1% ®ÉºÏºÐªÅ¶¡¤wº¡." + AFX_IDP_FILE_EOF "¸Õ¹Ï¦s¨ú¶W¹L %1 ¤§ÀɧÀ." + AFX_IDS_UNNAMED_FILE "¥¼©R¦WÀÉ®×" +#endif // !_AFX_NO_CFILE_RESOURCES + + AFX_IDP_ARCH_NONE "µL¿ù»~²£¥Í." + AFX_IDP_ARCH_GENERIC "·í¦s¨ú %1 ®Éµo¥Í¤£¥iª¾ªº¿ù»~." + AFX_IDP_ARCH_READONLY "¸Õ¹Ï¼g¤J¥¿¦bŪ¨ú¤¤ªº %1." + AFX_IDP_ARCH_ENDOFFILE "¸Õ¹Ï¦s¨ú¶W¹L %1 ¤§ÀɧÀ." + AFX_IDP_ARCH_WRITEONLY "¸Õ¹ÏŪ¨ú¥¿¦b¼g¤J¤¤ªº %1." + AFX_IDP_ARCH_BADINDEX "%1 ¦³¤@Ãaªº®æ¦¡." + AFX_IDP_ARCH_BADCLASS "%1 ¥]§t¤@«D´Á±æª«¥ó." + AFX_IDP_ARCH_BADSCHEMA "%1 ¥]§t¤@¤£¥¿½TªºÆ[ÂI." + +#ifndef _AFX_NO_MAPI_RESOURCES + // MAPI strings / error messages + AFX_IDP_FAILED_MAPI_LOAD "µLªk¸ü¤J¹q¤l¶l¥ó¤ä´©." + AFX_IDP_INVALID_MAPI_DLL "¹q¤l¶l¥ó¨t²Î¤§DLL¬OµL®Äªº." + AFX_IDP_FAILED_MAPI_SEND "¹q¤l¶l¥ó¶Ç°eµLªk¶Ç°e°T®§." +#endif //!_AFX_NO_MAPI_RESOURCES + +#ifndef _AFX_NO_OCC_RESOURCES + AFX_IDS_OCC_SCALEUNITS_PIXELS "¹³¯À" +#endif //!_AFX_NO_OCC_RESOURCES +END + +///////////////////////////////////////////////////////////////////////////// +// Cursors + +AFX_IDC_CONTEXTHELP CURSOR DISCARDABLE "res\\help.cur" + +#ifndef _AFX_NO_SPLITTER_RESOURCES +AFX_IDC_SMALLARROWS CURSOR DISCARDABLE "res\\sarrows.cur" +AFX_IDC_HSPLITBAR CURSOR DISCARDABLE "res\\splith.cur" +AFX_IDC_VSPLITBAR CURSOR DISCARDABLE "res\\splitv.cur" +AFX_IDC_NODROPCRSR CURSOR DISCARDABLE "res\\nodrop.cur" +#endif //!_AFX_NO_SPLITTER_RESOURCES + +#ifndef _AFX_NO_TRACKER_RESOURCES +AFX_IDC_TRACKNWSE CURSOR DISCARDABLE "res\\trcknwse.cur" +AFX_IDC_TRACKNESW CURSOR DISCARDABLE "res\\trcknesw.cur" +AFX_IDC_TRACKNS CURSOR DISCARDABLE "res\\trckns.cur" +AFX_IDC_TRACKWE CURSOR DISCARDABLE "res\\trckwe.cur" +AFX_IDC_TRACK4WAY CURSOR DISCARDABLE "res\\trck4way.cur" +AFX_IDC_MOVE4WAY CURSOR DISCARDABLE "res\\move4way.cur" +#endif //!_AFX_NO_TRACKER_RESOURCES + +#ifndef _AFX_NO_CTL3D_RESOURCES +26567 BITMAP "res\\3dcheck.bmp" // Note: 26567 comes from CTL3D.H +#endif + +///////////////////////////////////////////////////////////////////////////// +// Standard Dialogs + +#ifndef _AFX_NO_NEWTYPEDLG_RESOURCES +AFX_IDD_NEWTYPEDLG DIALOG DISCARDABLE 9, 26, 183, 70 +#ifndef _MAC +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | 0x04 +#else +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION +#endif +CAPTION "¶}±Ò·sÀÉ" +FONT 8, "·s²Ó©úÅé" +BEGIN + LTEXT "¶}±Ò·sÀÉ(&N) ",IDC_STATIC,6,5,123,8,NOT WS_GROUP + LISTBOX AFX_IDC_LISTBOX,6,15,125,49,WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "½T©w",IDOK,137,6,40,14 + PUSHBUTTON "¨ú®ø",IDCANCEL,137,23,40,14 + PUSHBUTTON "»¡©ú(&H)",ID_HELP,137,43,40,14 +END +#endif // !_AFX_NO_NEWTYPEDLG_RESOURCES + +///////////////////////////////////////////////////////////////////////////// +// CMiniFrameWnd Bitmap + +AFX_IDB_MINIFRAME_MENU BITMAP DISCARDABLE "res\\minifwnd.bmp" + +///////////////////////////////////////////////////////////////////////////// +// CCheckListBox Bitmaps + +AFX_IDB_CHECKLISTBOX_NT BITMAP DISCARDABLE "res\\ntcheck.bmp" +AFX_IDB_CHECKLISTBOX_95 BITMAP DISCARDABLE "res\\95check.bmp" + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //!__AFXRES_RC__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/l.deu/afxctl.rc b/public/sdk/inc/mfc42/l.deu/afxctl.rc new file mode 100644 index 000000000..fd262ed33 --- /dev/null +++ b/public/sdk/inc/mfc42/l.deu/afxctl.rc @@ -0,0 +1,284 @@ +// 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. + +#ifndef __AFXCTL_RC__ +#define __AFXCTL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Control Resources + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +AFX_IDB_TRUETYPE BITMAP DISCARDABLE "RES\\TRUETYPE.BMP" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +AFX_IDD_PROPPAGE_FONT DIALOG DISCARDABLE 13, 54, 250, 110 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Eigenschafts&name:",IDC_STATIC,3,5,61,8 + COMBOBOX AFX_IDC_FONTPROP,65,3,100,71,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + LTEXT "&Schriftart:",IDC_STATIC,3,19,91,8 + COMBOBOX AFX_IDC_FONTNAMES,3,29,91,77,CBS_SIMPLE | + CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | + CBS_HASSTRINGS | CBS_DISABLENOSCROLL | WS_VSCROLL | + WS_TABSTOP + LTEXT "Schriftst&il:",IDC_STATIC,102,19,53,8 + COMBOBOX AFX_IDC_FONTSTYLES,104,29,53,53,CBS_DROPDOWNLIST | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + LTEXT "&Größe:",IDC_STATIC,167,19,40,8 + COMBOBOX AFX_IDC_FONTSIZES,167,29,36,53,CBS_DROPDOWN | CBS_SORT | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Effekte",IDC_STATIC,104,44,142,24,WS_GROUP + CONTROL "&Durchgestrichen",AFX_IDC_STRIKEOUT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,109,55,65,10 + CONTROL "&Unterstrichen",AFX_IDC_UNDERLINE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,175,55,65,10 + GROUPBOX "Beispiel",IDC_STATIC,104,71,142,36,WS_GROUP + CTEXT "AaBbYyZz",AFX_IDC_SAMPLEBOX,110,80,130,22,SS_NOPREFIX | + NOT WS_VISIBLE +END + +AFX_IDD_PROPPAGE_COLOR DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Eigenschafts&name:",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_COLORPROP,3,13,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "System&farbe:",IDC_STATIC,3,29,100,8 + COMBOBOX AFX_IDC_SYSTEMCOLORS,3,39,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + CONTROL "",AFX_IDC_COLOR_BLACK,"Button",BS_OWNERDRAW | WS_GROUP | + WS_TABSTOP,118,4,15,11 + CONTROL "",AFX_IDC_COLOR_BLUE,"Button",BS_OWNERDRAW,138,4,15,11 + CONTROL "",AFX_IDC_COLOR_CYAN,"Button",BS_OWNERDRAW,158,4,15,11 + CONTROL "",AFX_IDC_COLOR_DARKBLUE,"Button",BS_OWNERDRAW,178,4,15, + 11 + CONTROL "",AFX_IDC_COLOR_DARKCYAN,"Button",BS_OWNERDRAW,118,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKGREEN,"Button",BS_OWNERDRAW,138,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKMAGENTA,"Button",BS_OWNERDRAW,158, + 18,15,11 + CONTROL "",AFX_IDC_COLOR_GRAY,"Button",BS_OWNERDRAW,178,18,15,11 + CONTROL "",AFX_IDC_COLOR_DARKRED,"Button",BS_OWNERDRAW,118,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_GREEN,"Button",BS_OWNERDRAW,138,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_LIGHTBROWN,"Button",BS_OWNERDRAW,158,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_LIGHTGRAY,"Button",BS_OWNERDRAW,178,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_MAGENTA,"Button",BS_OWNERDRAW,118,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_RED,"Button",BS_OWNERDRAW,138,46,15,11 + CONTROL "",AFX_IDC_COLOR_WHITE,"Button",BS_OWNERDRAW,158,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_YELLOW,"Button",BS_OWNERDRAW,178,46,15, + 11 +END + +AFX_IDD_PROPPAGE_PICTURE DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Eigenschafts&name:",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_PROPNAME,3,13,100,30,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "&Durchsuchen...",AFX_IDC_BROWSE,3,35,54,14 + PUSHBUTTON "&Löschen",AFX_IDC_CLEAR,61,35,54,14 + RTEXT "Vorschau:",IDC_STATIC,107,3,42,16 + CONTROL "",AFX_IDC_PICTURE,"Static",SS_BLACKFRAME,151,4,93,54 +END + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +AFX_IDD_PROPPAGE_FONT DLGINIT +BEGIN + 1002, 0x403, 12, 0 +0x6f42, 0x646c, 0x4920, 0x6174, 0x696c, 0x0063, + 0 +END + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PROPPAGE_UNKNOWN "(Unbekannt)" + AFX_IDS_COLOR_DESKTOP "Desktop" + AFX_IDS_COLOR_APPWORKSPACE "Anwendungsarbeitsbereich" + AFX_IDS_COLOR_WNDBACKGND "Fensterhintergrund" + AFX_IDS_COLOR_WNDTEXT "Fenstertext" + AFX_IDS_COLOR_MENUBAR "Menüleiste" + AFX_IDS_COLOR_MENUTEXT "Menütext" + AFX_IDS_COLOR_ACTIVEBAR "Aktive Titelleiste" + AFX_IDS_COLOR_INACTIVEBAR "Inaktive Titelleiste" + AFX_IDS_COLOR_ACTIVETEXT "Aktiver Titelleistentext" + AFX_IDS_COLOR_INACTIVETEXT "Inaktiver Titelleistentext" + AFX_IDS_COLOR_ACTIVEBORDER "Aktiver Rahmen" + AFX_IDS_COLOR_INACTIVEBORDER "Inaktiver Rahmen" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_WNDFRAME "Fensterrahmen" + AFX_IDS_COLOR_SCROLLBARS "Bildlaufleisten" + AFX_IDS_COLOR_BTNFACE "Schaltfläche" + AFX_IDS_COLOR_BTNSHADOW "Schaltflächenschatten" + AFX_IDS_COLOR_BTNTEXT "Schaltflächentext" + AFX_IDS_COLOR_BTNHIGHLIGHT "Schaltflächenhervorhebung" + AFX_IDS_COLOR_DISABLEDTEXT "Deaktivierter Text" + AFX_IDS_COLOR_HIGHLIGHT "Markierung" + AFX_IDS_COLOR_HIGHLIGHTTEXT "Markierter Text" + AFX_IDS_REGULAR "Normal" + AFX_IDS_BOLD "Fett" + AFX_IDS_ITALIC "Kursiv" + AFX_IDS_BOLDITALIC "Fett-kursiv" + AFX_IDS_SAMPLETEXT "AaBbYyZz" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_DISPLAYSTRING_FONT "(Schriftart)" + AFX_IDS_DISPLAYSTRING_COLOR "(Farbe)" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_DISPLAYSTRING_PICTURE "(Bild - %s)" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTUREFILTER "All Picture Types|*.bmp;*.cur;*.dib;*.emf;*.ico;*.wmf|Bitmaps (*.bmp;*.dib)|*.bmp;*.dib|Icons/Cursors (*.ico;*.cur)|*.ico;*.cur|Metafiles (*.wmf;*.emf)|*.wmf;*.emf|All files (*.*)|*.*||" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTYPE_UNKNOWN "Unbekannt" + AFX_IDS_PICTYPE_NONE "Kein" + AFX_IDS_PICTYPE_BITMAP "Bitmap" + AFX_IDS_PICTYPE_METAFILE "Metadatei" + AFX_IDS_PICTYPE_ICON "Symbol" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_PPG "Farbeigenschaften" + AFX_IDS_COLOR_PPG_CAPTION "Farben" + AFX_IDS_FONT_PPG "Schrifteigenschaften" + AFX_IDS_FONT_PPG_CAPTION "Schriftarten" + AFX_IDS_PICTURE_PPG "Bildeigenschaften" + AFX_IDS_PICTURE_PPG_CAPTION "Bilder" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_BORDERSTYLE_0 "0 - Keiner" + AFX_IDS_BORDERSTYLE_1 "1 - Fester einzelner" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_VERB_EDIT "&Bearbeiten" + AFX_IDS_VERB_PROPERTIES "&Eigenschaften..." +END + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_PICTURECANTOPEN "Bilddatei %1 konnte nicht geöffnet werden. Die Datei existiert möglicherweise nicht oder ist nicht lesbar." + AFX_IDP_PICTURECANTLOAD "Bilddatei %1 konnte nicht geladen werden. Die Datei hat möglicherweise ein ungültiges Format." + AFX_IDP_PICTURETOOLARGE "Bilddatei %1 konnte nicht geladen werden, da sie nicht in den Speicher paßt." + AFX_IDP_PICTUREREADFAILED + "Bilddatei %1 konnte nicht geladen werden, da ein unbekannter Lesefehler auftrat." +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PICTUREBROWSETITLE "Bilder durchsuchen" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +#ifndef _AFX_NO_CTLERROR_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_ILLEGALFUNCTIONCALL "Ungültiger Funktionsaufruf" + AFX_IDP_E_OVERFLOW "Überlauf" + AFX_IDP_E_OUTOFMEMORY "Nicht genügend Speicher" + AFX_IDP_E_DIVISIONBYZERO "Division durch Null" + AFX_IDP_E_OUTOFSTRINGSPACE "Nicht genügend Zeichenfolgenspeicher" + AFX_IDP_E_OUTOFSTACKSPACE "Nicht genügend Stack-Speicher" + AFX_IDP_E_BADFILENAMEORNUMBER "Ungültiger Dateiname oder -nummer" + AFX_IDP_E_FILENOTFOUND "Datei nicht gefunden" + AFX_IDP_E_BADFILEMODE "Falscher Dateimodus" + AFX_IDP_E_FILEALREADYOPEN "Datei bereits geöffnet" + AFX_IDP_E_DEVICEIOERROR "Geräte-E/A-Fehler" + AFX_IDP_E_FILEALREADYEXISTS "Datei besteht bereits" + AFX_IDP_E_BADRECORDLENGTH "Ungültige Datensatzlänge" + AFX_IDP_E_DISKFULL "Datenträger voll" + AFX_IDP_E_BADRECORDNUMBER "Ungültige Datensatznummer" + AFX_IDP_E_BADFILENAME "Ungültiger Dateiname" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_TOOMANYFILES "Zu viele Dateien" + AFX_IDP_E_DEVICEUNAVAILABLE "Gerät nicht verfügbar" + AFX_IDP_E_PERMISSIONDENIED "Zugriff verweigert" + AFX_IDP_E_DISKNOTREADY "Laufwerk nicht bereit" + AFX_IDP_E_PATHFILEACCESSERROR "Pfad-/Dateizugriffsfehler" + AFX_IDP_E_PATHNOTFOUND "Pfad nicht gefunden" + AFX_IDP_E_INVALIDPATTERNSTRING "Ungültige Musterzeichenfolge" + AFX_IDP_E_INVALIDUSEOFNULL "Ungültige Verwendung von Null" + AFX_IDP_E_INVALIDFILEFORMAT "Ungültiges Dateiformat" + AFX_IDP_E_INVALIDPROPERTYVALUE "Ungültiger Eigenschaftswert" + AFX_IDP_E_INVALIDPROPERTYARRAYINDEX "Ungültiger Feldindex" + AFX_IDP_E_SETNOTSUPPORTEDATRUNTIME "Eigenschaft kann nicht zur Laufzeit gesetzt werden" + AFX_IDP_E_SETNOTSUPPORTED "Eigenschaft ist schreibgeschützt" + AFX_IDP_E_NEEDPROPERTYARRAYINDEX + "Ein Feldindex muß angegeben sein, wenn ein Eigenschaftsfeld verwendet wird" + AFX_IDP_E_SETNOTPERMITTED "Eigenschaft kann für dieses Steuerelement nicht gesetzt werden" + AFX_IDP_E_GETNOTSUPPORTEDATRUNTIME "Eigenschaft kann nicht zur Laufzeit gelesen werden" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_GETNOTSUPPORTED "Eigenschaft ist lesegeschützt" + AFX_IDP_E_PROPERTYNOTFOUND "Eigenschaft nicht gefunden" + AFX_IDP_E_INVALIDCLIPBOARDFORMAT "Ungültiges Zwischenablageformat" + AFX_IDP_E_INVALIDPICTURE "Ungültiges Bild" + AFX_IDP_E_PRINTERERROR "Druckerfehler" + AFX_IDP_E_CANTSAVEFILETOTEMP + "Zum Speichern notwendige temporäre Datei kann nicht erstellt werden" + AFX_IDP_E_SEARCHTEXTNOTFOUND "Suchtext nicht gefunden" + AFX_IDP_E_REPLACEMENTSTOOLONG "Ersetzungstext zu lang" +END +#endif //!_AFX_NO_CTLERROR_RESOURCES + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.deu/afxdb.rc b/public/sdk/inc/mfc42/l.deu/afxdb.rc new file mode 100644 index 000000000..f3d555795 --- /dev/null +++ b/public/sdk/inc/mfc42/l.deu/afxdb.rc @@ -0,0 +1,103 @@ +// 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. + +#ifndef __AFXDB_RC__ +#define __AFXDB_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Database Resources + +// Database strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_SQL_CONNECT_FAIL + "Der Verbindungsversuch zur Datenquelle ist gescheitert." + AFX_IDP_SQL_RECORDSET_FORWARD_ONLY + "Datensatzgruppe unterstützt nur Vorwärtsbewegung." + AFX_IDP_SQL_EMPTY_COLUMN_LIST + "Der Versuch, eine Tabelle zu öffnen, ist fehlgeschlagen, da am angegebenen Ort keine Spalten abgerufen werden konnten." + AFX_IDP_SQL_FIELD_SCHEMA_MISMATCH + "Von einer Abfrage wurden unerwartete Spaltendatentypen zurückgegeben." + AFX_IDP_SQL_ILLEGAL_MODE "Versuch zu aktualisieren oder zu löschen ist fehlgeschlagen." + AFX_IDP_SQL_MULTIPLE_ROWS_AFFECTED "Es wurden mehrere Zeilen aktualisiert." + AFX_IDP_SQL_NO_CURRENT_RECORD "Operation ist fehlgeschlagen; es gibt keinen aktuellen Datensatz." + AFX_IDP_SQL_NO_ROWS_AFFECTED + "Es waren keine Zeilen von der Aktualisierungs- oder Löschoperation betroffen." + AFX_IDP_SQL_RECORDSET_READONLY "Datensatzgruppe kann nur gelesen werden." + AFX_IDP_SQL_SQL_NO_TOTAL + "Der ODBC-Treiber unterstützt das MFC-LongBinary-Datenmodell nicht." + AFX_IDP_SQL_ODBC_LOAD_FAILED + "Der Versuch, die benötigte Komponente ODBC32.DLL zu laden, ist fehlgeschlagen." + AFX_IDP_SQL_DYNASET_NOT_SUPPORTED + "Der ODBC-Treiber unterstützt keine Dynasets." + AFX_IDP_SQL_SNAPSHOT_NOT_SUPPORTED + "Statische ODBC-Cursor werden zur Unterstützung von Snapshots benötigt." + AFX_IDP_SQL_API_CONFORMANCE + "Der ODBC-Treiber ist inkompatibel zu den MFC-Datenbankklassen (API_CONFORMANCE >= SQL_OAC_LEVEL1 wird benötigt)." + AFX_IDP_SQL_SQL_CONFORMANCE + "Der ODBC-Treiber ist inkompatibel zu den MFC-Datenbankklassen (SQL_CONFORMANCE >= SQL_OSC_MINIMUM wird benötigt)." + AFX_IDP_SQL_NO_DATA_FOUND + "Es wurde versucht, hinter das Ende oder vor den Anfang der Daten zu gelangen." + AFX_IDP_SQL_ROW_UPDATE_NOT_SUPPORTED + "Dynasets werden vom ODBC-Treiber nicht unterstützt." + AFX_IDP_SQL_ODBC_V2_REQUIRED + "Treiber gemäß ODBC Level 2 wird benötigt." + AFX_IDP_SQL_NO_POSITIONED_UPDATES + "Positionierte Aktualisierungen werden vom ODBC-Treiber nicht unterstützt." + AFX_IDP_SQL_LOCK_MODE_NOT_SUPPORTED + "Der angeforderte Sperrmodus wird nicht unterstützt." + AFX_IDP_SQL_DATA_TRUNCATED + "Daten abgeschnitten." + AFX_IDP_SQL_ROW_FETCH + "Fehler beim Abruf eines Datensatzes." + AFX_IDP_SQL_INCORRECT_ODBC + "Ein benötigter ODBC-Einsprungspunkt konnte nicht gefunden werden. Überprüfen Sie, ob OBDC korrekt installiert ist." + AFX_IDP_SQL_UPDATE_DELETE_FAILED + "Fehler bei der Aktualisierungs- oder Löschoperation." + AFX_IDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED + "Dynamische Cursor werden vom ODBC-Treiber nicht unterstützt." + AFX_IDP_SQL_FIELD_NOT_FOUND + "Invalid field name or field index." + AFX_IDP_SQL_BOOKMARKS_NOT_SUPPORTED + "Bookmarks not supported for ODBC driver." + AFX_IDP_SQL_BOOKMARKS_NOT_ENABLED + "Bookmarks not enabled on recordset." + AFX_IDP_DAO_ENGINE_INITIALIZATION + "Initialisierung des DAO/Jet-Datenbankmoduls nicht möglich." + AFX_IDP_DAO_DFX_BIND + "Ungültiger DFX-Werteparameter." + AFX_IDP_DAO_OBJECT_NOT_OPEN + "DAO-TableDef oder DAO-QueryDef nicht offen." + AFX_IDP_DAO_ROWTOOSHORT + "Fehler bei GetRows-Operation. Für die Zeile ist nicht genügend Speicher reserviert." + AFX_IDP_DAO_BADBINDINFO + "GetRows-Bindungsfehler. Nicht übereinstimmende Datentypen sind wahrscheinlich die Ursache." + AFX_IDP_DAO_COLUMNUNAVAILABLE + "Fehler bei GetRows-Operation. Die angeforderte Spalte ist kein Element der Datensatzgruppe." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXDB_RC__ diff --git a/public/sdk/inc/mfc42/l.deu/afxolecl.rc b/public/sdk/inc/mfc42/l.deu/afxolecl.rc new file mode 100644 index 000000000..ad4df58c8 --- /dev/null +++ b/public/sdk/inc/mfc42/l.deu/afxolecl.rc @@ -0,0 +1,66 @@ +// 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. + +#ifndef __AFXOLECL_RC__ +#define __AFXOLECL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifndef _INC_DLGS + #include <dlgs.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Client Resources + +///////////////////////////////////////////////////////////////////////////// +// OLE strings + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_STATIC_OBJECT "Ein statisches OLE-Objekt kann nicht aktiviert werden." + AFX_IDP_FAILED_TO_CONNECT "Fehler beim Verbindungsversuch.\nDie Verbindung ist vielleicht unterbrochen." + AFX_IDP_SERVER_BUSY "Der Befehl kann nicht verarbeitet werden, weil der Server beschäftigt ist." + AFX_IDP_BAD_VERB "Fehler beim Ausführen der Server-Operation." + AFX_IDP_FAILED_TO_LAUNCH "Die Server-Anwendung konnte nicht gestartet werden." + AFX_IDS_UPDATING_ITEMS "Aktualisiere OLE-Objekte." + AFX_IDP_FAILED_TO_CONVERT "Das OLE-Objekt konnte nicht umgewandelt werden." + AFX_IDP_ASK_TO_DISCARD "OLE-Objekte können nicht beim Beenden von Windows gespeichert werden!\nSollen alle Änderungen an %1 verworfen werden?" + AFX_IDP_FAILED_TO_CREATE "Fehler beim Erzeugen des Objekts. Stellen Sie sicher, daß das Objekt in der Systemregistrierung eingetragen ist." + + AFX_IDS_METAFILE_FORMAT "Bild (Metadatei)\nein Bild" + AFX_IDS_DIB_FORMAT "Geräteunabhängiges Bitmap\nein geräteunabhängiges Bitmap" + AFX_IDS_BITMAP_FORMAT "Bitmap\nein Bitmap" + AFX_IDS_LINKSOURCE_FORMAT "%s\n%s" + AFX_IDS_EMBED_FORMAT "%s\n%s" + AFX_IDS_RTF_FORMAT "Rich Text (RTF)\nText mit Schrift- und Absatzformatierung" + AFX_IDS_TEXT_FORMAT "Unformatierter Text\nText ohne Formatierung" + + AFX_IDS_INVALID_CURRENCY "Ungültige Währung." + AFX_IDS_INVALID_DATETIME "Ungültiges Datum oder ungültige Zeit." + AFX_IDS_INVALID_DATETIMESPAN "Ungültige Datums- oder Zeitspanne." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.deu/afxolesv.rc b/public/sdk/inc/mfc42/l.deu/afxolesv.rc new file mode 100644 index 000000000..323fc96a1 --- /dev/null +++ b/public/sdk/inc/mfc42/l.deu/afxolesv.rc @@ -0,0 +1,53 @@ +// 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. + +#ifndef __AFXOLESV_RC__ +#define __AFXOLESV_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Server Resources + +// OLE strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_ASK_TO_UPDATE, "%1 vor dem Fortfahren aktualisieren?" + AFX_IDP_FAILED_TO_UPDATE, "Client konnte nicht aktualisiert werden." + + AFX_IDP_FAILED_TO_REGISTER, "Fehler bei der Registrierung. Die OLE-Funktionen arbeiten eventuell nicht richtig." + AFX_IDP_FAILED_TO_AUTO_REGISTER, "Fehler bei der Aktualisierung der Systemregistrierung.\nVersuchen Sie REGEDIT zu benutzen." +END + +STRINGTABLE PRELOAD +BEGIN + AFX_IDS_APP_TITLE_EMBEDDING, "%1 in %2" + AFX_IDS_OBJ_TITLE_INPLACE, "%1 - %2" + AFX_IDS_EXIT_MENU, "&Beenden und zu %1 zurückkehren" + AFX_IDS_UPDATE_MENU, "&Aktualisiere %1" + AFX_IDS_SAVEFILECOPY, "Kopie speichern unter" +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLESV_RC__ diff --git a/public/sdk/inc/mfc42/l.deu/afxprint.rc b/public/sdk/inc/mfc42/l.deu/afxprint.rc new file mode 100644 index 000000000..a3cc74f3f --- /dev/null +++ b/public/sdk/inc/mfc42/l.deu/afxprint.rc @@ -0,0 +1,130 @@ +// 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. + +#ifndef __AFXPRINT_RC__ +#define __AFXPRINT_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Printing Resources + +AFX_IDC_MAGNIFY CURSOR DISCARDABLE "res\\magnify.cur" + +#ifndef _MAC +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | 0x04 +#else +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 84 +STYLE DS_MODALFRAME | WS_POPUP +#endif +FONT 8, "MS Shell Dlg" +BEGIN + CTEXT "Drucke",IDC_STATIC,0,9,133,8 + CTEXT "",AFX_IDC_PRINT_DOCNAME,0,19,133,8 +#ifndef _MAC + CTEXT "auf",IDC_STATIC,0,29,133,8 + CTEXT "",AFX_IDC_PRINT_PRINTERNAME,0,39,133,8 + CTEXT "",AFX_IDC_PRINT_PORTNAME,0,49,133,8 + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,59,133,8 + PUSHBUTTON "Abbrechen",IDCANCEL,46,74,40,14 +#else + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,30,133,8 + PUSHBUTTON "Abbrechen",IDCANCEL,46,45,40,15 + CTEXT "Drücken Sie Cmd-., um abzubrechen.",IDC_STATIC,0,63,133,16 +#endif +END + +// Preview Toolbar Dialog +#ifndef _MAC +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 330, 16 +STYLE WS_CHILD | 0x04 +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "&Drucken...",AFX_ID_PREVIEW_PRINT,2,2,44,12 + PUSHBUTTON "&Nächste",AFX_ID_PREVIEW_NEXT,48,2,44,12 + PUSHBUTTON "&Vorherige",AFX_ID_PREVIEW_PREV,94,2,44,12 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,140,2,44,12 + PUSHBUTTON "Ver&größern",AFX_ID_PREVIEW_ZOOMIN,186,2,44,12 + PUSHBUTTON "Ver&kleinern",AFX_ID_PREVIEW_ZOOMOUT,232,2,44,12 + PUSHBUTTON "&Schließen",AFX_ID_PREVIEW_CLOSE,278,2,44,12 +END +#else +// standard toolbar for 14 inch and larger screens +// width *must* be 320 or less so that this is used on 640x480 screens +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 320, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "&Drucken...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "&Nächste",AFX_ID_PREVIEW_NEXT,46,2,44,15 + PUSHBUTTON "&Vorherige",AFX_ID_PREVIEW_PREV,91,2,44,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,136,2,44,15 + PUSHBUTTON "Ver&größern",AFX_ID_PREVIEW_ZOOMIN,181,2,44,15 + PUSHBUTTON "Ver&kleinern",AFX_ID_PREVIEW_ZOOMOUT,226,2,44,15 + PUSHBUTTON "&Schließen",AFX_ID_PREVIEW_CLOSE,271,2,44,15 +END + +// short toolbar for 9 inch and 12 inch screens +AFX_IDD_PREVIEW_SHORTTOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 270, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "&Drucken...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "&Nächste",AFX_ID_PREVIEW_NEXT,46,2,29,15 + PUSHBUTTON "&Vorh.",AFX_ID_PREVIEW_PREV,76,2,29,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,106,2,44,15 + PUSHBUTTON "&Größer",AFX_ID_PREVIEW_ZOOMIN,151,2,29,15 + PUSHBUTTON "&Kleiner",AFX_ID_PREVIEW_ZOOMOUT,181,2,29,15 + PUSHBUTTON "&Schließen",AFX_ID_PREVIEW_CLOSE,211,2,44,15 +END +#endif + +// Printing strings +STRINGTABLE DISCARDABLE +BEGIN + // print progress dialog strings + AFX_IDS_PRINTONPORT, "auf %1" // for print output + AFX_IDS_ONEPAGE, "&Eine Seite" // for preview button + AFX_IDS_TWOPAGE, "&Zwei Seiten" // for preview button + AFX_IDS_PRINTPAGENUM, "Seite %u" // for print output + AFX_IDS_PREVIEWPAGEDESC, "Seite %u\nSeiten %u-%u\n" + + // print to file dialog strings + AFX_IDS_PRINTDEFAULTEXT, "prn" // default extension + AFX_IDS_PRINTDEFAULT, "Ausgabe.prn" // default file + AFX_IDS_PRINTFILTER, + "Drucker-Dateien (*.prn)|*.prn|Alle Dateien (*.*)|*.*||" + AFX_IDS_PRINTCAPTION, "In Datei drucken" // caption for browse dlg + AFX_IDS_PRINTTOFILE, "in %1" // to file +END + +// Print Preview Accelerator Table +AFX_IDR_PREVIEW_ACCEL ACCELERATORS LOADONCALL MOVEABLE +BEGIN + VK_NEXT, AFX_ID_PREVIEW_NEXT, VIRTKEY, NOINVERT + VK_PRIOR, AFX_ID_PREVIEW_PREV, VIRTKEY, NOINVERT + VK_ESCAPE, AFX_ID_PREVIEW_CLOSE, VIRTKEY, NOINVERT +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXPRINT_RC__ diff --git a/public/sdk/inc/mfc42/l.deu/afxres.rc b/public/sdk/inc/mfc42/l.deu/afxres.rc new file mode 100644 index 000000000..d01a25668 --- /dev/null +++ b/public/sdk/inc/mfc42/l.deu/afxres.rc @@ -0,0 +1,223 @@ +// 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. + +#ifndef __AFXRES_RC__ +#define __AFXRES_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif //APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Default resource description for MFC applications +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// Strings + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_APPMENU_RESOURCES + AFX_IDS_OPENFILE, "Öffnen" +#ifndef _MAC + AFX_IDS_SAVEFILE, "Speichern unter" + AFX_IDS_ALLFILTER, "Alle Dateien (*.*)" + AFX_IDS_UNTITLED, "Unbenannt" +#else + AFX_IDS_SAVEFILE, "Dokument speichern unter:" + AFX_IDS_ALLFILTER, "Alle Dateien" + AFX_IDS_UNTITLED, "unbenannt" + AFX_IDS_ABOUT, "Info über %1\205" +#endif + AFX_IDS_HIDE, "&Verbergen" +#endif // !_AFX_NO_APPMENUSTRING_RESOURCES + + AFX_IDS_MEMORY_EXCEPTION, "Nicht genügend Speicher." + AFX_IDS_NOT_SUPPORTED_EXCEPTION,"Es wurde versucht, eine nicht unterstützte Operation auszuführen." + AFX_IDS_RESOURCE_EXCEPTION, "Eine benötigte Ressource ist nicht verfügbar." + AFX_IDS_USER_EXCEPTION, "Ein unerwarteter Fehler ist aufgetreten." + + // General error prompts +#ifndef _AFX_NO_FILECMD_RESOURCES + AFX_IDP_INVALID_FILENAME, "Ungültiger Dateiname." + AFX_IDP_FAILED_TO_OPEN_DOC, "Fehler beim Öffnen des Dokuments." + AFX_IDP_FAILED_TO_SAVE_DOC, "Fehler beim Speichern des Dokuments." +#ifndef _MAC + AFX_IDP_ASK_TO_SAVE, "Änderungen in %1 speichern?" +#else + AFX_IDP_ASK_TO_SAVE, "Änderungen im %1-Dokument \042%2\042 speichern?" +#endif + AFX_IDP_FAILED_TO_CREATE_DOC, "Fehler beim Erzeugen eines leeren Dokuments." + AFX_IDP_FILE_TOO_LARGE, "Die Datei ist zu groß zum Öffnen." + AFX_IDP_FAILED_TO_START_PRINT, "Der Druckauftrag konnte nicht gestartet werden." +#endif // !_AFX_NO_FILECMD_RESOURCES + AFX_IDP_FAILED_TO_LAUNCH_HELP, "Die Hilfe konnte nicht aufgerufen werden." + AFX_IDP_INTERNAL_FAILURE, "Interner Anwendungsfehler." + AFX_IDP_COMMAND_FAILURE, "Befehl fehlgeschlagen." + AFX_IDP_FAILED_MEMORY_ALLOC "Nicht genügend Speicher vorhanden, um Operation auszuführen." + AFX_IDP_GET_NOT_SUPPORTED, "Lesen ist wegen der Eigenschaft Nur-Schreiben nicht möglich." + AFX_IDP_SET_NOT_SUPPORTED, "Schreiben ist wegen der Eigenschaft Nur-Lesen nicht möglich." + AFX_IDP_UNREG_DONE, "System registry entries have been removed and the INI file (if any) was deleted." + AFX_IDP_UNREG_FAILURE, "Not all of the system registry entries (or INI file) were removed." + + // CFile/CArchive error strings for user failure +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FAILED_INVALID_FORMAT "Unerwartetes Dateiformat." +#ifndef _MAC + AFX_IDP_FAILED_INVALID_PATH "%1\nDiese Datei konnte nicht gefunden werden.\nÜberprüfen Sie, ob der korrekte Pfad und Dateiname angegeben wurde." + AFX_IDP_FAILED_DISK_FULL "Das Ziellaufwerk ist voll." +#else + AFX_IDP_FAILED_INVALID_PATH "Die Datei \042%1\042 konnte nicht gefunden werden. Überprüfen Sie, ob der korrekte Dateiname angegeben wurde." + AFX_IDP_FAILED_DISK_FULL "Das Ziel-Volume ist voll." +#endif + AFX_IDP_FAILED_ACCESS_READ "Lesen von %1 ist nicht möglich, da von anderem Anwender geöffnet." + AFX_IDP_FAILED_ACCESS_WRITE "Schreiben auf %1 ist nicht möglich, da schreibgeschützt oder von anderem Anwender geöffnet." + AFX_IDP_FAILED_IO_ERROR_READ "Beim Lesen von %1 ist ein unerwarteter Fehler aufgetreten." + AFX_IDP_FAILED_IO_ERROR_WRITE "Beim Schreiben von %1 ist ein unerwarteter Fehler aufgetreten." +#endif // !_AFX_NO_CFILE_RESOURCES + + // Parsing error prompts + AFX_IDP_PARSE_INT, "Geben Sie bitte eine ganze Zahl ein." + AFX_IDP_PARSE_REAL, "Geben Sie bitte eine Zahl ein." + AFX_IDP_PARSE_INT_RANGE, "Geben Sie bitte eine ganze Zahl zwischen %1 und %2 ein." + AFX_IDP_PARSE_REAL_RANGE, "Geben Sie bitte eine Zahl zwischen %1 und %2 ein." + AFX_IDP_PARSE_STRING_SIZE, "Geben Sie bitte nicht mehr als %1 Zeichen ein." + AFX_IDP_PARSE_RADIO_BUTTON, "Wählen Sie bitte eine Schaltfläche." + AFX_IDP_PARSE_BYTE, "Geben Sie bitte eine ganze Zahl zwischen 0 und 255 ein." + AFX_IDP_PARSE_UINT, "Geben Sie bitte eine positive ganze Zahl ein." + AFX_IDP_PARSE_DATETIME, "Geben Sie bitte ein Datum und/oder eine Zeit ein." + AFX_IDP_PARSE_CURRENCY, "Geben Sie bitte eine Währung ein." + +#ifndef _AFX_NO_OLE_RESOURCES + // OLE strings required for both servers and containers + AFX_IDS_PASTELINKEDTYPE "Verknüpft: %s" + AFX_IDS_UNKNOWNTYPE "Unbekannter Typ" +#ifndef _MAC + AFX_IDP_FAILED_TO_NOTIFY "%1\nRegistrierung des Dokuments nicht möglich.\nDas Dokument ist vielleicht schon geöffnet." +#else + AFX_IDP_FAILED_TO_NOTIFY "Registrierung des Dokuments \042%1\042 nicht möglich.\nDas Dokument ist vielleicht schon geöffnet." +#endif +#endif //!_AFX_NO_OLE_RESOURCES + + AFX_IDP_NO_ERROR_AVAILABLE "Keine Fehlermeldung verfügbar." + +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FILE_NONE "Kein Fehler aufgetreten." + AFX_IDP_FILE_GENERIC "Ein unbekannter Fehler ist beim Zugriff auf %1 aufgetreten." + AFX_IDP_FILE_NOT_FOUND "%1 wurde nicht gefunden." + AFX_IDP_FILE_BAD_PATH "%1 enthält eine ungültige Pfadangabe." + AFX_IDP_FILE_TOO_MANY_OPEN "%1 konnte nicht geöffnet werden, da zu viele Dateien geöffnet sind." + AFX_IDP_FILE_ACCESS_DENIED "Zugriff auf %1 wurde verwehrt." + AFX_IDP_FILE_INVALID_FILE "Eine ungültige Dateikennung war mit %1 verbunden." + AFX_IDP_FILE_REMOVE_CURRENT "Das Verzeichnis %1 konnte nicht entfernt werden, da es das aktuelle Verzeichnis ist. " + AFX_IDP_FILE_DIR_FULL "%1 konnte nicht erstellt werden, da das Verzeichnis voll ist." + AFX_IDP_FILE_BAD_SEEK "Positionierungsfehler auf %1." + AFX_IDP_FILE_HARD_IO "Ein Hardware-E/A-Fehler wurde während des Zugriffs auf %1 gemeldet." + AFX_IDP_FILE_SHARING "Eine Zugriffsverletzung ist während des Zugriffs auf %1 aufgetreten." + AFX_IDP_FILE_LOCKING "Eine Sperrverletzung ist während des Zugriffs auf %1 aufgetreten." + AFX_IDP_FILE_DISKFULL "Beim Zugriff auf %1 wurde ein voller Datenträger gemeldet." + AFX_IDP_FILE_EOF "Es wurde versucht, auf eine Stelle hinter dem Ende von %1 zuzugreifen." + AFX_IDS_UNNAMED_FILE "eine unbenannte Datei" +#endif // !_AFX_NO_CFILE_RESOURCES + + AFX_IDP_ARCH_NONE "Kein Fehler aufgetreten." + AFX_IDP_ARCH_GENERIC "Ein unbekannter Fehler ist beim Zugriff auf %1 aufgetreten." + AFX_IDP_ARCH_READONLY "%1 ist nur lesbar. Es wurde versucht, darauf zu schreiben." + AFX_IDP_ARCH_ENDOFFILE "Es wurde versucht, auf eine Stelle hinter dem Ende von %1 zuzugreifen." + AFX_IDP_ARCH_WRITEONLY "%1 ist lesegeschützt. Es wurde versucht, davon zu lesen." + AFX_IDP_ARCH_BADINDEX "%1 besitzt ein falsches Format." + AFX_IDP_ARCH_BADCLASS "%1 enthielt ein unerwartetes Objekt." + AFX_IDP_ARCH_BADSCHEMA "%1 enthält ein falsches Schema." + +#ifndef _AFX_NO_MAPI_RESOURCES + // MAPI strings / error messages + AFX_IDP_FAILED_MAPI_LOAD "Systemunterstützung für elektronische Post kann nicht geladen werden." + AFX_IDP_INVALID_MAPI_DLL "Die System-DLL für elektronische Post ist ungültig." + AFX_IDP_FAILED_MAPI_SEND "\042Nachricht senden\042 scheiterte beim Senden der Nachricht." +#endif //!_AFX_NO_MAPI_RESOURCES + +#ifndef _AFX_NO_OCC_RESOURCES + AFX_IDS_OCC_SCALEUNITS_PIXELS "Pixel" +#endif //!_AFX_NO_OCC_RESOURCES +END + +///////////////////////////////////////////////////////////////////////////// +// Cursors + +AFX_IDC_CONTEXTHELP CURSOR DISCARDABLE "res\\help.cur" + +#ifndef _AFX_NO_SPLITTER_RESOURCES +AFX_IDC_SMALLARROWS CURSOR DISCARDABLE "res\\sarrows.cur" +AFX_IDC_HSPLITBAR CURSOR DISCARDABLE "res\\splith.cur" +AFX_IDC_VSPLITBAR CURSOR DISCARDABLE "res\\splitv.cur" +AFX_IDC_NODROPCRSR CURSOR DISCARDABLE "res\\nodrop.cur" +#endif //!_AFX_NO_SPLITTER_RESOURCES + +#ifndef _AFX_NO_TRACKER_RESOURCES +AFX_IDC_TRACKNWSE CURSOR DISCARDABLE "res\\trcknwse.cur" +AFX_IDC_TRACKNESW CURSOR DISCARDABLE "res\\trcknesw.cur" +AFX_IDC_TRACKNS CURSOR DISCARDABLE "res\\trckns.cur" +AFX_IDC_TRACKWE CURSOR DISCARDABLE "res\\trckwe.cur" +AFX_IDC_TRACK4WAY CURSOR DISCARDABLE "res\\trck4way.cur" +AFX_IDC_MOVE4WAY CURSOR DISCARDABLE "res\\move4way.cur" +#endif //!_AFX_NO_TRACKER_RESOURCES + +#ifndef _AFX_NO_CTL3D_RESOURCES +26567 BITMAP "res\\3dcheck.bmp" // Note: 26567 comes from CTL3D.H +#endif + +///////////////////////////////////////////////////////////////////////////// +// Standard Dialogs + +#ifndef _AFX_NO_NEWTYPEDLG_RESOURCES +AFX_IDD_NEWTYPEDLG DIALOG DISCARDABLE 9, 26, 183, 70 +#ifndef _MAC +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | 0x04 +#else +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION +#endif +CAPTION "Neu" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Neu",IDC_STATIC,6,5,123,8,NOT WS_GROUP + LISTBOX AFX_IDC_LISTBOX,6,15,125,49,WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,137,6,40,14 + PUSHBUTTON "Abbrechen",IDCANCEL,137,23,40,14 + PUSHBUTTON "&Hilfe",ID_HELP,137,43,40,14 +END +#endif // !_AFX_NO_NEWTYPEDLG_RESOURCES + +///////////////////////////////////////////////////////////////////////////// +// CMiniFrameWnd Bitmap + +AFX_IDB_MINIFRAME_MENU BITMAP DISCARDABLE "res\\minifwnd.bmp" + +///////////////////////////////////////////////////////////////////////////// +// CCheckListBox Bitmaps + +AFX_IDB_CHECKLISTBOX_NT BITMAP DISCARDABLE "res\\ntcheck.bmp" +AFX_IDB_CHECKLISTBOX_95 BITMAP DISCARDABLE "res\\95check.bmp" + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //!__AFXRES_RC__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/l.esp/afxctl.rc b/public/sdk/inc/mfc42/l.esp/afxctl.rc new file mode 100644 index 000000000..2992e8e96 --- /dev/null +++ b/public/sdk/inc/mfc42/l.esp/afxctl.rc @@ -0,0 +1,284 @@ +// 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. + +#ifndef __AFXCTL_RC__ +#define __AFXCTL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< ¡No se pueden cambiar recursos MFC estándar! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Control Resources + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +AFX_IDB_TRUETYPE BITMAP DISCARDABLE "RES\\TRUETYPE.BMP" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +AFX_IDD_PROPPAGE_FONT DIALOG DISCARDABLE 13, 54, 250, 110 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Propiedad:",IDC_STATIC,3,5,61,8 + COMBOBOX AFX_IDC_FONTPROP,65,3,100,71,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + LTEXT "&Fuente:",IDC_STATIC,3,19,91,8 + COMBOBOX AFX_IDC_FONTNAMES,3,29,91,77,CBS_SIMPLE | + CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | + CBS_HASSTRINGS | CBS_DISABLENOSCROLL | WS_VSCROLL | + WS_TABSTOP + LTEXT "Estilo de &fuente:",IDC_STATIC,102,19,53,8 + COMBOBOX AFX_IDC_FONTSTYLES,104,29,53,53,CBS_DROPDOWNLIST | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + LTEXT "&Tamaño:",IDC_STATIC,167,19,40,8 + COMBOBOX AFX_IDC_FONTSIZES,167,29,36,53,CBS_DROPDOWN | CBS_SORT | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Efectos",IDC_STATIC,104,44,142,24,WS_GROUP + CONTROL "Ta&chado",AFX_IDC_STRIKEOUT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,109,55,65,10 + CONTROL "S&ubrayado",AFX_IDC_UNDERLINE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,175,55,65,10 + GROUPBOX "Ejemplo",IDC_STATIC,104,71,142,36,WS_GROUP + CTEXT "AaBbYyZz",AFX_IDC_SAMPLEBOX,110,80,130,22,SS_NOPREFIX | + NOT WS_VISIBLE +END + +AFX_IDD_PROPPAGE_COLOR DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Propiedad:",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_COLORPROP,3,13,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "&Color del sistema:",IDC_STATIC,3,29,100,8 + COMBOBOX AFX_IDC_SYSTEMCOLORS,3,39,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + CONTROL "",AFX_IDC_COLOR_BLACK,"Button",BS_OWNERDRAW | WS_GROUP | + WS_TABSTOP,118,4,15,11 + CONTROL "",AFX_IDC_COLOR_BLUE,"Button",BS_OWNERDRAW,138,4,15,11 + CONTROL "",AFX_IDC_COLOR_CYAN,"Button",BS_OWNERDRAW,158,4,15,11 + CONTROL "",AFX_IDC_COLOR_DARKBLUE,"Button",BS_OWNERDRAW,178,4,15, + 11 + CONTROL "",AFX_IDC_COLOR_DARKCYAN,"Button",BS_OWNERDRAW,118,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKGREEN,"Button",BS_OWNERDRAW,138,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKMAGENTA,"Button",BS_OWNERDRAW,158, + 18,15,11 + CONTROL "",AFX_IDC_COLOR_GRAY,"Button",BS_OWNERDRAW,178,18,15,11 + CONTROL "",AFX_IDC_COLOR_DARKRED,"Button",BS_OWNERDRAW,118,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_GREEN,"Button",BS_OWNERDRAW,138,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_LIGHTBROWN,"Button",BS_OWNERDRAW,158,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_LIGHTGRAY,"Button",BS_OWNERDRAW,178,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_MAGENTA,"Button",BS_OWNERDRAW,118,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_RED,"Button",BS_OWNERDRAW,138,46,15,11 + CONTROL "",AFX_IDC_COLOR_WHITE,"Button",BS_OWNERDRAW,158,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_YELLOW,"Button",BS_OWNERDRAW,178,46,15, + 11 +END + +AFX_IDD_PROPPAGE_PICTURE DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Propiedad:",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_PROPNAME,3,13,100,30,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "&Examinar...",AFX_IDC_BROWSE,3,35,54,14 + PUSHBUTTON "&Borrar",AFX_IDC_CLEAR,61,35,54,14 + RTEXT "Presentación preliminar:",IDC_STATIC,107,3,42,16 + CONTROL "",AFX_IDC_PICTURE,"Static",SS_BLACKFRAME,151,4,93,54 +END + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +AFX_IDD_PROPPAGE_FONT DLGINIT +BEGIN + 1002, 0x403, 12, 0 +0x6f42, 0x646c, 0x4920, 0x6174, 0x696c, 0x0063, + 0 +END + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PROPPAGE_UNKNOWN "(Desconocido)" + AFX_IDS_COLOR_DESKTOP "Escritorio" + AFX_IDS_COLOR_APPWORKSPACE "Area de trabajo de la aplicación" + AFX_IDS_COLOR_WNDBACKGND "Fondo de la ventana" + AFX_IDS_COLOR_WNDTEXT "Texto de la ventana" + AFX_IDS_COLOR_MENUBAR "Barra del menú" + AFX_IDS_COLOR_MENUTEXT "Texto del menú" + AFX_IDS_COLOR_ACTIVEBAR "Barra de títulos activa" + AFX_IDS_COLOR_INACTIVEBAR "Barra de títulos inactiva" + AFX_IDS_COLOR_ACTIVETEXT "Texto de barra de títulos activa" + AFX_IDS_COLOR_INACTIVETEXT "Texto de barra de títulos inactiva" + AFX_IDS_COLOR_ACTIVEBORDER "Borde activo" + AFX_IDS_COLOR_INACTIVEBORDER "Borde inactivo" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_WNDFRAME "Marco de la ventana" + AFX_IDS_COLOR_SCROLLBARS "Barras de desplazamiento" + AFX_IDS_COLOR_BTNFACE "Aspecto del botón" + AFX_IDS_COLOR_BTNSHADOW "Sombra del botón" + AFX_IDS_COLOR_BTNTEXT "Texto del botón" + AFX_IDS_COLOR_BTNHIGHLIGHT "Resalte de botón" + AFX_IDS_COLOR_DISABLEDTEXT "Texto deshabilitado" + AFX_IDS_COLOR_HIGHLIGHT "Resaltar" + AFX_IDS_COLOR_HIGHLIGHTTEXT "Texto resaltado" + AFX_IDS_REGULAR "Normal" + AFX_IDS_BOLD "Negrita" + AFX_IDS_ITALIC "Cursiva" + AFX_IDS_BOLDITALIC "Negrita cursiva" + AFX_IDS_SAMPLETEXT "AaBbYyZz" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_DISPLAYSTRING_FONT "(Fuente)" + AFX_IDS_DISPLAYSTRING_COLOR "(Color)" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_DISPLAYSTRING_PICTURE "(Imagen - %s)" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTUREFILTER "All Picture Types|*.bmp;*.cur;*.dib;*.emf;*.ico;*.wmf|Bitmaps (*.bmp;*.dib)|*.bmp;*.dib|Icons/Cursors (*.ico;*.cur)|*.ico;*.cur|Metafiles (*.wmf;*.emf)|*.wmf;*.emf|All files (*.*)|*.*||" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTYPE_UNKNOWN "Desconocido" + AFX_IDS_PICTYPE_NONE "Ninguno" + AFX_IDS_PICTYPE_BITMAP "Mapa de bits" + AFX_IDS_PICTYPE_METAFILE "Metaarchivo" + AFX_IDS_PICTYPE_ICON "Icono" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_PPG "Página de propiedades de colores" + AFX_IDS_COLOR_PPG_CAPTION "Colores" + AFX_IDS_FONT_PPG "Página de propiedades de fuentes" + AFX_IDS_FONT_PPG_CAPTION "Fuentes" + AFX_IDS_PICTURE_PPG "Página de propiedades de imágenes" + AFX_IDS_PICTURE_PPG_CAPTION "Imágenes" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_BORDERSTYLE_0 "0 - Ninguno" + AFX_IDS_BORDERSTYLE_1 "1 - Simple fijo " +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_VERB_EDIT "&Editar" + AFX_IDS_VERB_PROPERTIES "&Propiedades..." +END + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_PICTURECANTOPEN "Imposible abrir el archivo de imágenes %1. Puede que el archivo no exista o no se pueda leer." + AFX_IDP_PICTURECANTLOAD "Imposible cargar el archivo de imágenes %1. Puede que el archivo tenga un formato no válido." + AFX_IDP_PICTURETOOLARGE "Imposible cargar el archivo de imágenes %1. El archivo es demasiado grande para caber en la memoria." + AFX_IDP_PICTUREREADFAILED + "Imposible cargar el archivo de imágenes %1. Error de lectura desconocido." +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PICTUREBROWSETITLE "Examinar imágenes" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +#ifndef _AFX_NO_CTLERROR_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_ILLEGALFUNCTIONCALL "Llamada no válida a función" + AFX_IDP_E_OVERFLOW "Desbordamiento" + AFX_IDP_E_OUTOFMEMORY "No hay suficiente memoria" + AFX_IDP_E_DIVISIONBYZERO "División por cero" + AFX_IDP_E_OUTOFSTRINGSPACE "No hay suficiente espacio para cadenas" + AFX_IDP_E_OUTOFSTACKSPACE "No hay suficiente espacio de pila" + AFX_IDP_E_BADFILENAMEORNUMBER "Nombre o número de archivo incorrecto" + AFX_IDP_E_FILENOTFOUND "No se ha encontrado el archivo" + AFX_IDP_E_BADFILEMODE "Modo de archivo incorrecto" + AFX_IDP_E_FILEALREADYOPEN "El archivo ya está abierto" + AFX_IDP_E_DEVICEIOERROR "Error de E/S de dispositivo" + AFX_IDP_E_FILEALREADYEXISTS "El archivo ya existe" + AFX_IDP_E_BADRECORDLENGTH "La longitud de registro es incorrecta" + AFX_IDP_E_DISKFULL "El disco está lleno" + AFX_IDP_E_BADRECORDNUMBER "El número de registro es incorrecto" + AFX_IDP_E_BADFILENAME "Nombre de archivo incorrecto" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_TOOMANYFILES "Demasiados archivos" + AFX_IDP_E_DEVICEUNAVAILABLE "El dispositivo no está disponible" + AFX_IDP_E_PERMISSIONDENIED "Permiso denegado" + AFX_IDP_E_DISKNOTREADY "El disco no está listo" + AFX_IDP_E_PATHFILEACCESSERROR "Error de acceso a la ruta o el archivo" + AFX_IDP_E_PATHNOTFOUND "No se ha encontrado la ruta de acceso" + AFX_IDP_E_INVALIDPATTERNSTRING "La cadena modelo no es válida" + AFX_IDP_E_INVALIDUSEOFNULL "Uso no válido de Null" + AFX_IDP_E_INVALIDFILEFORMAT "Formato de archivo no válido" + AFX_IDP_E_INVALIDPROPERTYVALUE "El valor de la propiedad no es válido" + AFX_IDP_E_INVALIDPROPERTYARRAYINDEX "Índice de matriz no válido" + AFX_IDP_E_SETNOTSUPPORTEDATRUNTIME "No se puede establecer la propiedad en tiempo de ejecución" + AFX_IDP_E_SETNOTSUPPORTED "La propiedad es de sólo lectura" + AFX_IDP_E_NEEDPROPERTYARRAYINDEX + "Se debe especificar el índice de matriz cuando se usa una matriz de propiedades" + AFX_IDP_E_SETNOTPERMITTED "No se puede establecer la propiedad en este control" + AFX_IDP_E_GETNOTSUPPORTEDATRUNTIME "No se puede leer la propiedad en tiempo de ejecución" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_GETNOTSUPPORTED "La propiedad es de sólo escritura" + AFX_IDP_E_PROPERTYNOTFOUND "No se ha encontrado la propiedad" + AFX_IDP_E_INVALIDCLIPBOARDFORMAT "El formato del portapapeles no es válido" + AFX_IDP_E_INVALIDPICTURE "La imagen no es válida" + AFX_IDP_E_PRINTERERROR "Error de la impresora" + AFX_IDP_E_CANTSAVEFILETOTEMP + "No se puede crear el archivo temporal necesario para guardar" + AFX_IDP_E_SEARCHTEXTNOTFOUND "No se encontró el texto de búsqueda" + AFX_IDP_E_REPLACEMENTSTOOLONG "El texto de reemplazo es demasiado largo" +END +#endif //!_AFX_NO_CTLERROR_RESOURCES + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.esp/afxdb.rc b/public/sdk/inc/mfc42/l.esp/afxdb.rc new file mode 100644 index 000000000..833c375eb --- /dev/null +++ b/public/sdk/inc/mfc42/l.esp/afxdb.rc @@ -0,0 +1,103 @@ +// 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. + +#ifndef __AFXDB_RC__ +#define __AFXDB_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< No se pueden cambiar recursos MFC estándar. >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Database Resources + +// Database strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_SQL_CONNECT_FAIL + "Imposible conectarse al origen de datos" + AFX_IDP_SQL_RECORDSET_FORWARD_ONLY + "Recordset sólo admite movimiento hacia adelante." + AFX_IDP_SQL_EMPTY_COLUMN_LIST + "Imposible abrir tabla, no hay columnas en la posición especificada." + AFX_IDP_SQL_FIELD_SCHEMA_MISMATCH + "Se obtuvieron tipos de datos inesperados de la consulta." + AFX_IDP_SQL_ILLEGAL_MODE "Imposible Actualizar o Eliminar." + AFX_IDP_SQL_MULTIPLE_ROWS_AFFECTED "Filas actualizadas." + AFX_IDP_SQL_NO_CURRENT_RECORD "La operación ha fallado, no hay registro actual." + AFX_IDP_SQL_NO_ROWS_AFFECTED + "La operación de actualización o de eliminación no afectó a ninguna fila." + AFX_IDP_SQL_RECORDSET_READONLY "Recordset es de sólo lectura" + AFX_IDP_SQL_SQL_NO_TOTAL + "El controlador ODBC no admite el modelo de datos MFC LongBinary." + AFX_IDP_SQL_ODBC_LOAD_FAILED + "Imposible cargar ODBC32.DLL." + AFX_IDP_SQL_DYNASET_NOT_SUPPORTED + "El controlador ODBC no admite dynasets." + AFX_IDP_SQL_SNAPSHOT_NOT_SUPPORTED + "Se requieren cursores estáticos ODBC para compatibilidad con snapshot." + AFX_IDP_SQL_API_CONFORMANCE + "Controlador ODBC incompatible con clases de bases de datos MFC (se requiere que API_CONFORMANCE >=SQL_OAC_LEVEL1)." + AFX_IDP_SQL_SQL_CONFORMANCE + "Controlador ODBC incompatible con clases de bases de datos MFC (se requiere que API_CONFORMANCE >=SQL_OAC_LEVEL1)." + AFX_IDP_SQL_NO_DATA_FOUND + "Se intentó desplazarse más allá del fin o antes del inicio de los datos." + AFX_IDP_SQL_ROW_UPDATE_NOT_SUPPORTED + "El controlador ODBC no admite dynasets." + AFX_IDP_SQL_ODBC_V2_REQUIRED + "Se requiere un controlador ODBC que cumpla con el Nivel 2." + AFX_IDP_SQL_NO_POSITIONED_UPDATES + "El controlador ODBC no admite actualizaciones posicionadas." + AFX_IDP_SQL_LOCK_MODE_NOT_SUPPORTED + "No se admite el modo de bloqueo solicitado." + AFX_IDP_SQL_DATA_TRUNCATED + "Datos truncados." + AFX_IDP_SQL_ROW_FETCH + "Error al recuperar registro." + AFX_IDP_SQL_INCORRECT_ODBC + "No se encontró un punto de entrada ODBC requerido. Compruebe que ODBC esté instalado correctamente." + AFX_IDP_SQL_UPDATE_DELETE_FAILED + "Falló actualización o eliminación." + AFX_IDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED + "El controlador ODBC no admite cursores dinámicos." + AFX_IDP_SQL_FIELD_NOT_FOUND + "Invalid field name or field index." + AFX_IDP_SQL_BOOKMARKS_NOT_SUPPORTED + "Bookmarks not supported for ODBC driver." + AFX_IDP_SQL_BOOKMARKS_NOT_ENABLED + "Bookmarks not enabled on recordset." + AFX_IDP_DAO_ENGINE_INITIALIZATION + "Imposible inicializar motor de base de datos DAO/Jet." + AFX_IDP_DAO_DFX_BIND + "Parámetro de valor DFX incorrecto." + AFX_IDP_DAO_OBJECT_NOT_OPEN + "DAO TableDef o QueryDef no está abierto." + AFX_IDP_DAO_ROWTOOSHORT + "Falló GetRows. No hay suficiente memoria asignada a la fila." + AFX_IDP_DAO_BADBINDINFO + "Error de enlace de GetRows; es posible que algún tipo de datos no coincida." + AFX_IDP_DAO_COLUMNUNAVAILABLE + "Falló GetRows. La solicitud de columna no es miembro de este recordset." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXDB_RC__ diff --git a/public/sdk/inc/mfc42/l.esp/afxolecl.rc b/public/sdk/inc/mfc42/l.esp/afxolecl.rc new file mode 100644 index 000000000..78589cf24 --- /dev/null +++ b/public/sdk/inc/mfc42/l.esp/afxolecl.rc @@ -0,0 +1,66 @@ +// 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. + +#ifndef __AFXOLECL_RC__ +#define __AFXOLECL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifndef _INC_DLGS + #include <dlgs.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Imposible cambiar recursos MFC estándar. >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Client Resources + +///////////////////////////////////////////////////////////////////////////// +// OLE strings + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_STATIC_OBJECT "Imposible activar un objeto OLE estático." + AFX_IDP_FAILED_TO_CONNECT "Imposible conectar.\nVínculo puede estar roto." + AFX_IDP_SERVER_BUSY "Imposible procesar el comando, servidor ocupado." + AFX_IDP_BAD_VERB "Imposible efectuar operación del servidor." + AFX_IDP_FAILED_TO_LAUNCH "Imposible ejecutar la aplicación del servidor." + AFX_IDS_UPDATING_ITEMS "Actualizando objetos OLE" + AFX_IDP_FAILED_TO_CONVERT "Imposible convertir objeto OLE." + AFX_IDP_ASK_TO_DISCARD "¡Imposible guardar objetos OLE al salir de Windows!\n¿Descartar todos los cambios a %1?" + AFX_IDP_FAILED_TO_CREATE "Failed to create object. Make sure the application is entered in the system registry." + + AFX_IDS_METAFILE_FORMAT "Imagen (Metarchivo)\nuna imagen" + AFX_IDS_DIB_FORMAT "Mapa de bits independiente de dispositivos\nun mapa de bits independiente de dispositivos" + AFX_IDS_BITMAP_FORMAT "Mapa de bits\nun mapa de bits" + AFX_IDS_LINKSOURCE_FORMAT "%s\n%s" + AFX_IDS_EMBED_FORMAT "%s\n%s" + AFX_IDS_RTF_FORMAT "Formato de texto enriquecido (RTF)\ntexto con formato de fuentes y párrafos" + AFX_IDS_TEXT_FORMAT "Texto sin formato\ntexto sin ningún tipo de formato" + + AFX_IDS_INVALID_CURRENCY "Moneda no válida." + AFX_IDS_INVALID_DATETIME "DateTime no válido." + AFX_IDS_INVALID_DATETIMESPAN "DateTimeSpan no válido." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.esp/afxolesv.rc b/public/sdk/inc/mfc42/l.esp/afxolesv.rc new file mode 100644 index 000000000..cf80c0958 --- /dev/null +++ b/public/sdk/inc/mfc42/l.esp/afxolesv.rc @@ -0,0 +1,53 @@ +// 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. + +#ifndef __AFXOLESV_RC__ +#define __AFXOLESV_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< No se pueden cambiar recursos MFC estándar. >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Server Resources + +// OLE strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_ASK_TO_UPDATE, "¿Actualizar %1 antes de continuar?" + AFX_IDP_FAILED_TO_UPDATE, "Imposible actualizar el cliente." + + AFX_IDP_FAILED_TO_REGISTER, "Imposible registrar. Puede que las funciones OLE no funcionen debidamente." + AFX_IDP_FAILED_TO_AUTO_REGISTER, "Imposible actualizar el registro del sistema.\nIntente con REGEDIT." +END + +STRINGTABLE PRELOAD +BEGIN + AFX_IDS_APP_TITLE_EMBEDDING, "%1 en %2" + AFX_IDS_OBJ_TITLE_INPLACE, "%1 - %2" + AFX_IDS_EXIT_MENU, "&Salir y volvera %1" + AFX_IDS_UPDATE_MENU, "&Actualizar %1" + AFX_IDS_SAVEFILECOPY, "Guardar copia como" +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLESV_RC__ diff --git a/public/sdk/inc/mfc42/l.esp/afxprint.rc b/public/sdk/inc/mfc42/l.esp/afxprint.rc new file mode 100644 index 000000000..52d914857 --- /dev/null +++ b/public/sdk/inc/mfc42/l.esp/afxprint.rc @@ -0,0 +1,130 @@ +// 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. + +#ifndef __AFXPRINT_RC__ +#define __AFXPRINT_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< No se pueden cambiar recursos MFC estándar >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Printing Resources + +AFX_IDC_MAGNIFY CURSOR DISCARDABLE "res\\magnify.cur" + +#ifndef _MAC +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | 0x04 +#else +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 84 +STYLE DS_MODALFRAME | WS_POPUP +#endif +FONT 8, "MS Shell Dlg" +BEGIN + CTEXT "Imprimiendo",IDC_STATIC,0,9,133,8 + CTEXT "",AFX_IDC_PRINT_DOCNAME,0,19,133,8 +#ifndef _MAC + CTEXT "en la",IDC_STATIC,0,29,133,8 + CTEXT "",AFX_IDC_PRINT_PRINTERNAME,0,39,133,8 + CTEXT "",AFX_IDC_PRINT_PORTNAME,0,49,133,8 + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,59,133,8 + PUSHBUTTON "Cancelar",IDCANCEL,46,74,40,14 +#else + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,30,133,8 + PUSHBUTTON "Cancelar",IDCANCEL,46,45,40,15 + CTEXT "Presione Cmd-. para cancelar.",IDC_STATIC,0,63,133,16 +#endif +END + +// Preview Toolbar Dialog +#ifndef _MAC +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 330, 16 +STYLE WS_CHILD | 0x04 +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "&Imprimir...",AFX_ID_PREVIEW_PRINT,2,2,44,12 + PUSHBUTTON "&Siguiente",AFX_ID_PREVIEW_NEXT,48,2,44,12 + PUSHBUTTON "&Anterior",AFX_ID_PREVIEW_PREV,94,2,44,12 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,140,2,44,12 + PUSHBUTTON "Ac&ercar",AFX_ID_PREVIEW_ZOOMIN,186,2,44,12 + PUSHBUTTON "A&lejar",AFX_ID_PREVIEW_ZOOMOUT,232,2,44,12 + PUSHBUTTON "&Cerrar",AFX_ID_PREVIEW_CLOSE,278,2,44,12 +END +#else +// standard toolbar for 14 inch and larger screens +// width *must* be 320 or less so that this is used on 640x480 screens +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 320, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "&Imprimir...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "&Siguiente",AFX_ID_PREVIEW_NEXT,46,2,44,15 + PUSHBUTTON "&Anterior",AFX_ID_PREVIEW_PREV,91,2,44,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,136,2,44,15 + PUSHBUTTON "Ac&ercar",AFX_ID_PREVIEW_ZOOMIN,181,2,44,15 + PUSHBUTTON "A&lejar",AFX_ID_PREVIEW_ZOOMOUT,226,2,44,15 + PUSHBUTTON "&Cerrar",AFX_ID_PREVIEW_CLOSE,271,2,44,15 +END + +// short toolbar for 9 inch and 12 inch screens +AFX_IDD_PREVIEW_SHORTTOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 270, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "&Imprimir...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "&Sig.",AFX_ID_PREVIEW_NEXT,46,2,29,15 + PUSHBUTTON "&Ant.",AFX_ID_PREVIEW_PREV,76,2,29,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,106,2,44,15 + PUSHBUTTON "Ac&ercar",AFX_ID_PREVIEW_ZOOMIN,151,2,29,15 + PUSHBUTTON "A&lejar",AFX_ID_PREVIEW_ZOOMOUT,181,2,29,15 + PUSHBUTTON "&Cerrar",AFX_ID_PREVIEW_CLOSE,211,2,44,15 +END +#endif + +// Printing strings +STRINGTABLE DISCARDABLE +BEGIN + // print progress dialog strings + AFX_IDS_PRINTONPORT, "en %1" // for print output + AFX_IDS_ONEPAGE, "&Una página" // for preview button + AFX_IDS_TWOPAGE, "&Dos páginas" // for preview button + AFX_IDS_PRINTPAGENUM, "Página %u" // for print output + AFX_IDS_PREVIEWPAGEDESC, "Página %u\nPáginas %u-%u\n" + + // print to file dialog strings + AFX_IDS_PRINTDEFAULTEXT, "prn" // default extension + AFX_IDS_PRINTDEFAULT, "Output.prn" // default file + AFX_IDS_PRINTFILTER, + "Archivos de impresora (*.prn)|*.prn|Todos los archivos (*.*)|*.*||" + AFX_IDS_PRINTCAPTION, "Imprimir a archivo" // caption for browse dlg + AFX_IDS_PRINTTOFILE, "a %1" // to file +END + +// Print Preview Accelerator Table +AFX_IDR_PREVIEW_ACCEL ACCELERATORS LOADONCALL MOVEABLE +BEGIN + VK_NEXT, AFX_ID_PREVIEW_NEXT, VIRTKEY, NOINVERT + VK_PRIOR, AFX_ID_PREVIEW_PREV, VIRTKEY, NOINVERT + VK_ESCAPE, AFX_ID_PREVIEW_CLOSE, VIRTKEY, NOINVERT +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXPRINT_RC__ diff --git a/public/sdk/inc/mfc42/l.esp/afxres.rc b/public/sdk/inc/mfc42/l.esp/afxres.rc new file mode 100644 index 000000000..613c833ed --- /dev/null +++ b/public/sdk/inc/mfc42/l.esp/afxres.rc @@ -0,0 +1,223 @@ +// 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. + +#ifndef __AFXRES_RC__ +#define __AFXRES_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< No se pueden cambiar recursos MFC estándar. >\0" +END +#endif //APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Default resource description for MFC applications +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// Strings + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_APPMENU_RESOURCES + AFX_IDS_OPENFILE, "Abrir" +#ifndef _MAC + AFX_IDS_SAVEFILE, "Guardar como" + AFX_IDS_ALLFILTER, "Todos los archivos (*.*)" + AFX_IDS_UNTITLED, "Sin título" +#else + AFX_IDS_SAVEFILE, "Guardar documento como:" + AFX_IDS_ALLFILTER, "Todos los archivos" + AFX_IDS_UNTITLED, "sin título" + AFX_IDS_ABOUT, "Acerca de %1\205" +#endif + AFX_IDS_HIDE, "&Ocultar" +#endif // !_AFX_NO_APPMENUSTRING_RESOURCES + + AFX_IDS_MEMORY_EXCEPTION, "No hay suficiente memoria." + AFX_IDS_NOT_SUPPORTED_EXCEPTION,"Se intentó una operación no permitida." + AFX_IDS_RESOURCE_EXCEPTION, "Rcurso necesario no disponible." + AFX_IDS_USER_EXCEPTION, "Se encontr¢ un error desconocido." + + // General error prompts +#ifndef _AFX_NO_FILECMD_RESOURCES + AFX_IDP_INVALID_FILENAME, "Nombre de archivo no válido." + AFX_IDP_FAILED_TO_OPEN_DOC, "Imposible abrir documento." + AFX_IDP_FAILED_TO_SAVE_DOC, "Imposible guardar documento." +#ifndef _MAC + AFX_IDP_ASK_TO_SAVE, "¿Guardar cambios a %1?" +#else + AFX_IDP_ASK_TO_SAVE, "¿Guardar cambios al documento %1 \042%2\042?" +#endif + AFX_IDP_FAILED_TO_CREATE_DOC, "Imposible crear el documento vacío." + AFX_IDP_FILE_TOO_LARGE, "Archivo demasiado grande." + AFX_IDP_FAILED_TO_START_PRINT, "Imposible iniciar impresión." +#endif // !_AFX_NO_FILECMD_RESOURCES + AFX_IDP_FAILED_TO_LAUNCH_HELP, "Imposible ejecutar la ayuda." + AFX_IDP_INTERNAL_FAILURE, "Error interno de la aplicación." + AFX_IDP_COMMAND_FAILURE, "Falló el comando." + AFX_IDP_FAILED_MEMORY_ALLOC "No hay suficiente memoria para efectuar la operación." + AFX_IDP_GET_NOT_SUPPORTED, "Imposible leer una propiedad de sólo escritura." + AFX_IDP_SET_NOT_SUPPORTED, "Imposible escribir en una propiedad de sólo lectura." + AFX_IDP_UNREG_DONE, "System registry entries have been removed and the INI file (if any) was deleted." + AFX_IDP_UNREG_FAILURE, "Not all of the system registry entries (or INI file) were removed." + + // CFile/CArchive error strings for user failure +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FAILED_INVALID_FORMAT "Formato de archivo no esperado." +#ifndef _MAC + AFX_IDP_FAILED_INVALID_PATH "%1\nImposible encontrar este archivo.\nCompruebe que la ruta y el nombre de archivo son correctos" + AFX_IDP_FAILED_DISK_FULL "La unidad de disco de destino está llena." +#else + AFX_IDP_FAILED_INVALID_PATH "Imposible encontrar el archivo \042%1.\042 Compruebe que el nombre de archivo es correcto." + AFX_IDP_FAILED_DISK_FULL "El disco de destino está lleno." +#endif + AFX_IDP_FAILED_ACCESS_READ "Imposible leer de %1, alguien más lo ha abierto." + AFX_IDP_FAILED_ACCESS_WRITE "Imposible escribir en %1, es de sólo lectura o alguien más lo ha abierto." + AFX_IDP_FAILED_IO_ERROR_READ "Error inesperado al leer %1." + AFX_IDP_FAILED_IO_ERROR_WRITE "Error inesperado al escribir en %1." +#endif // !_AFX_NO_CFILE_RESOURCES + + // Parsing error prompts + AFX_IDP_PARSE_INT, "Introduzca un número entero." + AFX_IDP_PARSE_REAL, "Introduzca un número." + AFX_IDP_PARSE_INT_RANGE, "Introduzca un número entero entre %1 y %2." + AFX_IDP_PARSE_REAL_RANGE, "Introduzca un número entre %1 y %2." + AFX_IDP_PARSE_STRING_SIZE, "No introduzca más de %1 caracteres." + AFX_IDP_PARSE_RADIO_BUTTON, "Seleccione un botón." + AFX_IDP_PARSE_BYTE, "Introduzca un número entero entre 0 y 255." + AFX_IDP_PARSE_UINT, "Introduzca un número entero positivo." + AFX_IDP_PARSE_DATETIME, "Introduzca una fecha y/o una hora." + AFX_IDP_PARSE_CURRENCY, "Introduzca una moneda." + +#ifndef _AFX_NO_OLE_RESOURCES + // OLE strings required for both servers and containers + AFX_IDS_PASTELINKEDTYPE "%s vinculado" + AFX_IDS_UNKNOWNTYPE "Tipo desconocido" +#ifndef _MAC + AFX_IDP_FAILED_TO_NOTIFY "%1\nImposible registrar el documento.\nPuede que el documento ya esté abierto." +#else + AFX_IDP_FAILED_TO_NOTIFY "Imposible registrar el documento. \042%1.\042 Puede que el documento ya esté abierto." +#endif +#endif //!_AFX_NO_OLE_RESOURCES + + AFX_IDP_NO_ERROR_AVAILABLE "No hay ningún mensaje de error disponible." + +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FILE_NONE "No ha ocurrido ningún error." + AFX_IDP_FILE_GENERIC "Error desconocido al acceder a %1." + AFX_IDP_FILE_NOT_FOUND "No se encontró %1." + AFX_IDP_FILE_BAD_PATH "%1 contiene una ruta no válida." + AFX_IDP_FILE_TOO_MANY_OPEN "Imposible abrir %1, hay demasiados archivos abiertos." + AFX_IDP_FILE_ACCESS_DENIED "Acceso denegado a %1." + AFX_IDP_FILE_INVALID_FILE "Controlador no válido asociado a %1." + AFX_IDP_FILE_REMOVE_CURRENT "Imposible eliminar %1 porque es el directorio actual." + AFX_IDP_FILE_DIR_FULL "Imposible crear %1 porque el directorio está lleno." + AFX_IDP_FILE_BAD_SEEK "Fin de búsqueda en %1 " + AFX_IDP_FILE_HARD_IO "Error de E/S de hardware al acceder a %1." + AFX_IDP_FILE_SHARING "Violación de acceso compartido al acceder a %1." + AFX_IDP_FILE_LOCKING "Violación de bloqueo al acceder %1. " + AFX_IDP_FILE_DISKFULL "Disco lleno al acceder a %1." + AFX_IDP_FILE_EOF "Se intentó acceder a %1 más allá del final." + AFX_IDS_UNNAMED_FILE "un archivo sin nombre" +#endif // !_AFX_NO_CFILE_RESOURCES + + AFX_IDP_ARCH_NONE "No ha ocurrido ningún error." + AFX_IDP_ARCH_GENERIC "Error desconocido al acceder a %1." + AFX_IDP_ARCH_READONLY "Se intentó escribir en %1 mientras se lo estaba leyendo." + AFX_IDP_ARCH_ENDOFFILE "Se intentó acceder a %1 más allá del final." + AFX_IDP_ARCH_WRITEONLY "Se intentó leer de %1 mientras estaba escribiendo." + AFX_IDP_ARCH_BADINDEX "%1 tiene un formato incorrecto." + AFX_IDP_ARCH_BADCLASS "%1 contiene un objeto inesperado." + AFX_IDP_ARCH_BADSCHEMA "%1 contiene un esquema incorrecto." + +#ifndef _AFX_NO_MAPI_RESOURCES + // MAPI strings / error messages + AFX_IDP_FAILED_MAPI_LOAD "Imposible cargar el soporte del sistema de correo." + AFX_IDP_INVALID_MAPI_DLL "La DLL del sistema de correo no es válida." + AFX_IDP_FAILED_MAPI_SEND "Enviar correo no envió el mensaje." +#endif //!_AFX_NO_MAPI_RESOURCES + +#ifndef _AFX_NO_OCC_RESOURCES + AFX_IDS_OCC_SCALEUNITS_PIXELS "píxeles" +#endif //!_AFX_NO_OCC_RESOURCES +END + +///////////////////////////////////////////////////////////////////////////// +// Cursors + +AFX_IDC_CONTEXTHELP CURSOR DISCARDABLE "res\\help.cur" + +#ifndef _AFX_NO_SPLITTER_RESOURCES +AFX_IDC_SMALLARROWS CURSOR DISCARDABLE "res\\sarrows.cur" +AFX_IDC_HSPLITBAR CURSOR DISCARDABLE "res\\splith.cur" +AFX_IDC_VSPLITBAR CURSOR DISCARDABLE "res\\splitv.cur" +AFX_IDC_NODROPCRSR CURSOR DISCARDABLE "res\\nodrop.cur" +#endif //!_AFX_NO_SPLITTER_RESOURCES + +#ifndef _AFX_NO_TRACKER_RESOURCES +AFX_IDC_TRACKNWSE CURSOR DISCARDABLE "res\\trcknwse.cur" +AFX_IDC_TRACKNESW CURSOR DISCARDABLE "res\\trcknesw.cur" +AFX_IDC_TRACKNS CURSOR DISCARDABLE "res\\trckns.cur" +AFX_IDC_TRACKWE CURSOR DISCARDABLE "res\\trckwe.cur" +AFX_IDC_TRACK4WAY CURSOR DISCARDABLE "res\\trck4way.cur" +AFX_IDC_MOVE4WAY CURSOR DISCARDABLE "res\\move4way.cur" +#endif //!_AFX_NO_TRACKER_RESOURCES + +#ifndef _AFX_NO_CTL3D_RESOURCES +26567 BITMAP "res\\3dcheck.bmp" // Note: 26567 comes from CTL3D.H +#endif + +///////////////////////////////////////////////////////////////////////////// +// Standard Dialogs + +#ifndef _AFX_NO_NEWTYPEDLG_RESOURCES +AFX_IDD_NEWTYPEDLG DIALOG DISCARDABLE 9, 26, 183, 70 +#ifndef _MAC +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | 0x04 +#else +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION +#endif +CAPTION "Nuevo" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Nuevo ",IDC_STATIC,6,5,123,8,NOT WS_GROUP + LISTBOX AFX_IDC_LISTBOX,6,15,125,49,WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Aceptar",IDOK,137,6,40,14 + PUSHBUTTON "Cancelar",IDCANCEL,137,23,40,14 + PUSHBUTTON "&Ayuda",ID_HELP,137,43,40,14 +END +#endif // !_AFX_NO_NEWTYPEDLG_RESOURCES + +///////////////////////////////////////////////////////////////////////////// +// CMiniFrameWnd Bitmap + +AFX_IDB_MINIFRAME_MENU BITMAP DISCARDABLE "res\\minifwnd.bmp" + +///////////////////////////////////////////////////////////////////////////// +// CCheckListBox Bitmaps + +AFX_IDB_CHECKLISTBOX_NT BITMAP DISCARDABLE "res\\ntcheck.bmp" +AFX_IDB_CHECKLISTBOX_95 BITMAP DISCARDABLE "res\\95check.bmp" + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //!__AFXRES_RC__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/l.fra/afxctl.rc b/public/sdk/inc/mfc42/l.fra/afxctl.rc new file mode 100644 index 000000000..8d7cc8996 --- /dev/null +++ b/public/sdk/inc/mfc42/l.fra/afxctl.rc @@ -0,0 +1,284 @@ +// 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. + +#ifndef __AFXCTL_RC__ +#define __AFXCTL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Control Resources + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +AFX_IDB_TRUETYPE BITMAP DISCARDABLE "RES\\TRUETYPE.BMP" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +AFX_IDD_PROPPAGE_FONT DIALOG DISCARDABLE 13, 54, 250, 110 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Nom de propriété:",IDC_STATIC,3,5,61,8 + COMBOBOX AFX_IDC_FONTPROP,65,3,100,71,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + LTEXT "Po&lice:",IDC_STATIC,3,19,91,8 + COMBOBOX AFX_IDC_FONTNAMES,3,29,91,77,CBS_SIMPLE | + CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | + CBS_HASSTRINGS | CBS_DISABLENOSCROLL | WS_VSCROLL | + WS_TABSTOP + LTEXT "St&yle de police:",IDC_STATIC,102,19,53,8 + COMBOBOX AFX_IDC_FONTSTYLES,104,29,53,53,CBS_DROPDOWNLIST | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + LTEXT "&Taille:",IDC_STATIC,167,19,40,8 + COMBOBOX AFX_IDC_FONTSIZES,167,29,36,53,CBS_DROPDOWN | CBS_SORT | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Effets",IDC_STATIC,104,44,142,24,WS_GROUP + CONTROL "&Barré",AFX_IDC_STRIKEOUT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,109,55,65,10 + CONTROL "&Souligné",AFX_IDC_UNDERLINE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,175,55,65,10 + GROUPBOX "Exemple",IDC_STATIC,104,71,142,36,WS_GROUP + CTEXT "AaBbYyZz",AFX_IDC_SAMPLEBOX,110,80,130,22,SS_NOPREFIX | + NOT WS_VISIBLE +END + +AFX_IDD_PROPPAGE_COLOR DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Nom de propriété:",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_COLORPROP,3,13,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "&Couleur système:",IDC_STATIC,3,29,100,8 + COMBOBOX AFX_IDC_SYSTEMCOLORS,3,39,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + CONTROL "",AFX_IDC_COLOR_BLACK,"Button",BS_OWNERDRAW | WS_GROUP | + WS_TABSTOP,118,4,15,11 + CONTROL "",AFX_IDC_COLOR_BLUE,"Button",BS_OWNERDRAW,138,4,15,11 + CONTROL "",AFX_IDC_COLOR_CYAN,"Button",BS_OWNERDRAW,158,4,15,11 + CONTROL "",AFX_IDC_COLOR_DARKBLUE,"Button",BS_OWNERDRAW,178,4,15, + 11 + CONTROL "",AFX_IDC_COLOR_DARKCYAN,"Button",BS_OWNERDRAW,118,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKGREEN,"Button",BS_OWNERDRAW,138,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKMAGENTA,"Button",BS_OWNERDRAW,158, + 18,15,11 + CONTROL "",AFX_IDC_COLOR_GRAY,"Button",BS_OWNERDRAW,178,18,15,11 + CONTROL "",AFX_IDC_COLOR_DARKRED,"Button",BS_OWNERDRAW,118,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_GREEN,"Button",BS_OWNERDRAW,138,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_LIGHTBROWN,"Button",BS_OWNERDRAW,158,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_LIGHTGRAY,"Button",BS_OWNERDRAW,178,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_MAGENTA,"Button",BS_OWNERDRAW,118,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_RED,"Button",BS_OWNERDRAW,138,46,15,11 + CONTROL "",AFX_IDC_COLOR_WHITE,"Button",BS_OWNERDRAW,158,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_YELLOW,"Button",BS_OWNERDRAW,178,46,15, + 11 +END + +AFX_IDD_PROPPAGE_PICTURE DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Nom de propriété:",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_PROPNAME,3,13,100,30,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Pa&rcourir...",AFX_IDC_BROWSE,3,35,54,14 + PUSHBUTTON "&Effacer",AFX_IDC_CLEAR,61,35,54,14 + RTEXT "Aperçu:",IDC_STATIC,107,3,42,16 + CONTROL "",AFX_IDC_PICTURE,"Static",SS_BLACKFRAME,151,4,93,54 +END + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +AFX_IDD_PROPPAGE_FONT DLGINIT +BEGIN + 1002, 0x403, 12, 0 +0x6f42, 0x646c, 0x4920, 0x6174, 0x696c, 0x0063, + 0 +END + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PROPPAGE_UNKNOWN "(Inconnu)" + AFX_IDS_COLOR_DESKTOP "Bureau" + AFX_IDS_COLOR_APPWORKSPACE "Espace de travail de l'application" + AFX_IDS_COLOR_WNDBACKGND "Arrière-plan de la fenêtre" + AFX_IDS_COLOR_WNDTEXT "Texte de la fenêtre" + AFX_IDS_COLOR_MENUBAR "Barre de menu" + AFX_IDS_COLOR_MENUTEXT "Texte de menu" + AFX_IDS_COLOR_ACTIVEBAR "Barre de titre active" + AFX_IDS_COLOR_INACTIVEBAR "Barre de titre inactive" + AFX_IDS_COLOR_ACTIVETEXT "Texte de la barre de titre active" + AFX_IDS_COLOR_INACTIVETEXT "Texte de la barre de titre inactive" + AFX_IDS_COLOR_ACTIVEBORDER "Bordure active" + AFX_IDS_COLOR_INACTIVEBORDER "Bordure inactive" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_WNDFRAME "Cadre de la fenêtre" + AFX_IDS_COLOR_SCROLLBARS "Barres de défilement" + AFX_IDS_COLOR_BTNFACE "Face du bouton" + AFX_IDS_COLOR_BTNSHADOW "Ombre du bouton" + AFX_IDS_COLOR_BTNTEXT "Texte du bouton" + AFX_IDS_COLOR_BTNHIGHLIGHT "Surbrillance du bouton" + AFX_IDS_COLOR_DISABLEDTEXT "Texte désactivé" + AFX_IDS_COLOR_HIGHLIGHT "Surbrillance" + AFX_IDS_COLOR_HIGHLIGHTTEXT "Texte en surbrillance" + AFX_IDS_REGULAR "Normal" + AFX_IDS_BOLD "Gras" + AFX_IDS_ITALIC "Italique" + AFX_IDS_BOLDITALIC "Italique gras" + AFX_IDS_SAMPLETEXT "AaBbYyZz" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_DISPLAYSTRING_FONT "(Police)" + AFX_IDS_DISPLAYSTRING_COLOR "(Couleur)" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_DISPLAYSTRING_PICTURE "(Image - %s)" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTUREFILTER "All Picture Types|*.bmp;*.cur;*.dib;*.emf;*.ico;*.wmf|Bitmaps (*.bmp;*.dib)|*.bmp;*.dib|Icons/Cursors (*.ico;*.cur)|*.ico;*.cur|Metafiles (*.wmf;*.emf)|*.wmf;*.emf|All files (*.*)|*.*||" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTYPE_UNKNOWN "Inconnu" + AFX_IDS_PICTYPE_NONE "Aucun" + AFX_IDS_PICTYPE_BITMAP "Image en mode point" + AFX_IDS_PICTYPE_METAFILE "Métafichier" + AFX_IDS_PICTYPE_ICON "Icône" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_PPG "Page de propriété de couleur" + AFX_IDS_COLOR_PPG_CAPTION "Couleurs" + AFX_IDS_FONT_PPG "Page de propriété de police" + AFX_IDS_FONT_PPG_CAPTION "Polices" + AFX_IDS_PICTURE_PPG "Page de propriété d'image" + AFX_IDS_PICTURE_PPG_CAPTION "Images" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_BORDERSTYLE_0 "0 - Aucun" + AFX_IDS_BORDERSTYLE_1 "1 - Trait simple" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_VERB_EDIT "&Modifier" + AFX_IDS_VERB_PROPERTIES "&Propriétés..." +END + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_PICTURECANTOPEN "Impossible d'ouvrir le fichier image %1. Le fichier peut ne pas exister, ou peut ne pas être lisible." + AFX_IDP_PICTURECANTLOAD "Impossible de charger le fichier image %1. Le fichier peut avoir un format incorrect." + AFX_IDP_PICTURETOOLARGE "Impossible de charger le fichier image %1. Le fichier est trop grand pour tenir en mémoire." + AFX_IDP_PICTUREREADFAILED + "Impossible de charger le fichier image %1. Echec à la lecture." +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PICTUREBROWSETITLE "Parcourir les images" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +#ifndef _AFX_NO_CTLERROR_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_ILLEGALFUNCTIONCALL "Appel de fonction incorrect" + AFX_IDP_E_OVERFLOW "Dépassement de capacité" + AFX_IDP_E_OUTOFMEMORY "Mémoire épuisée" + AFX_IDP_E_DIVISIONBYZERO "Division par zéro" + AFX_IDP_E_OUTOFSTRINGSPACE "Espace de chaîne insuffisant" + AFX_IDP_E_OUTOFSTACKSPACE "Espace pile insuffisant" + AFX_IDP_E_BADFILENAMEORNUMBER "Nom ou numéro de fichier incorrect" + AFX_IDP_E_FILENOTFOUND "Fichier introuvable" + AFX_IDP_E_BADFILEMODE "Mode d'accès au fichier incorrect" + AFX_IDP_E_FILEALREADYOPEN "Fichier déjà ouvert" + AFX_IDP_E_DEVICEIOERROR "Erreur d'entrée/sortie de périphérique" + AFX_IDP_E_FILEALREADYEXISTS "Ce fichier existe déjà" + AFX_IDP_E_BADRECORDLENGTH "Longueur d'enregistrement incorrecte" + AFX_IDP_E_DISKFULL "Disque plein" + AFX_IDP_E_BADRECORDNUMBER "Numéro d'enregistrement incorrect" + AFX_IDP_E_BADFILENAME "Nom de fichier incorrect" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_TOOMANYFILES "Trop de fichiers" + AFX_IDP_E_DEVICEUNAVAILABLE "Périphérique non disponible" + AFX_IDP_E_PERMISSIONDENIED "Permission refusée" + AFX_IDP_E_DISKNOTREADY "Disque non prêt" + AFX_IDP_E_PATHFILEACCESSERROR "Erreur dans le chemin d'accès" + AFX_IDP_E_PATHNOTFOUND "Chemin d'accès introuvable" + AFX_IDP_E_INVALIDPATTERNSTRING "Chaîne de motif incorrecte" + AFX_IDP_E_INVALIDUSEOFNULL "Utilisation incorrecte de NULL" + AFX_IDP_E_INVALIDFILEFORMAT "Format de fichier incorrect" + AFX_IDP_E_INVALIDPROPERTYVALUE "Valeur de propriété incorrecte" + AFX_IDP_E_INVALIDPROPERTYARRAYINDEX "Index de tableau incorrect" + AFX_IDP_E_SETNOTSUPPORTEDATRUNTIME "La propriété ne peut pas être définie au moment de l'exécution" + AFX_IDP_E_SETNOTSUPPORTED "Propriété en lecture seule" + AFX_IDP_E_NEEDPROPERTYARRAYINDEX + "Vous devez spécifier un index de tableau lorsque vous utilisez un tableau de propriété" + AFX_IDP_E_SETNOTPERMITTED "Cette propriété ne peut pas être définie pour ce contrôle" + AFX_IDP_E_GETNOTSUPPORTEDATRUNTIME "La propriété ne peut pas être lue au moment de l'exécution" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_GETNOTSUPPORTED "Propriété en écriture seule" + AFX_IDP_E_PROPERTYNOTFOUND "Propriété introuvable" + AFX_IDP_E_INVALIDCLIPBOARDFORMAT "Format de Presse-papiers incorrect" + AFX_IDP_E_INVALIDPICTURE "Image incorrecte" + AFX_IDP_E_PRINTERERROR "Erreur d'imprimante" + AFX_IDP_E_CANTSAVEFILETOTEMP + "Impossible de créer le fichier temporaire nécessaire pour l'enregistrement" + AFX_IDP_E_SEARCHTEXTNOTFOUND "Texte recherché introuvable" + AFX_IDP_E_REPLACEMENTSTOOLONG "Texte de remplacement trop long" +END +#endif //!_AFX_NO_CTLERROR_RESOURCES + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.fra/afxdb.rc b/public/sdk/inc/mfc42/l.fra/afxdb.rc new file mode 100644 index 000000000..ac937e9a5 --- /dev/null +++ b/public/sdk/inc/mfc42/l.fra/afxdb.rc @@ -0,0 +1,103 @@ +// 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. + +#ifndef __AFXDB_RC__ +#define __AFXDB_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Database Resources + +// Database strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_SQL_CONNECT_FAIL + "Tentative infructueuse de connexion à la source de données" + AFX_IDP_SQL_RECORDSET_FORWARD_ONLY + "Le jeu d'enregistrements n'accepte que les déplacements vers l'avant." + AFX_IDP_SQL_EMPTY_COLUMN_LIST + "Tentative infructueuse d'ouverture de table - colonnes à extraire introuvables à l'endroit spécifié." + AFX_IDP_SQL_FIELD_SCHEMA_MISMATCH + "La requête a renvoyé des types de données de colonnes inattendus." + AFX_IDP_SQL_ILLEGAL_MODE "Tentative infructueuse de Mise à jour ou de Suppression." + AFX_IDP_SQL_MULTIPLE_ROWS_AFFECTED "Plusieurs lignes ont été mises à jour." + AFX_IDP_SQL_NO_CURRENT_RECORD "L'opération a échoué, pas d'enregistrement en cours" + AFX_IDP_SQL_NO_ROWS_AFFECTED + "Aucune ligne n'a été affectée par l'opération de mise à jour ou de suppression." + AFX_IDP_SQL_RECORDSET_READONLY "Le jeu d'enregistrements est en lecture seule" + AFX_IDP_SQL_SQL_NO_TOTAL + "Le pilote ODBC ne prend pas en charge le modèle de données LongBinary MFC." + AFX_IDP_SQL_ODBC_LOAD_FAILED + "Tentative infructueuse de chargement de l'élément ODBC32.DLL." + AFX_IDP_SQL_DYNASET_NOT_SUPPORTED + "Le gestionnaire ODBC ne prend pas en charge les feuilles de réponses dynamiques." + AFX_IDP_SQL_SNAPSHOT_NOT_SUPPORTED + "Curseurs ODBC statiques requis pour la prise en charge des instantanés." + AFX_IDP_SQL_API_CONFORMANCE + "Gestionnaire ODBC incompatible avec les classes de bases de données MFC (API_CONFORMANCE >= SQL_OAC_LEVEL1 requis)." + AFX_IDP_SQL_SQL_CONFORMANCE + "Gestionnaire ODBC incompatible avec les classes de bases de données MFC (SQL_CONFORMANCE >= SQL_OSC_MINIMUM requis)." + AFX_IDP_SQL_NO_DATA_FOUND + "Tentative de défilement après la fin ou avant le début des données." + AFX_IDP_SQL_ROW_UPDATE_NOT_SUPPORTED + "Feuilles de réponses dynamiques non prises en charge par le gestionnaire ODBC." + AFX_IDP_SQL_ODBC_V2_REQUIRED + "Gestionnaire ODBC conforme Niveau 2 (Level 2) requis." + AFX_IDP_SQL_NO_POSITIONED_UPDATES + "Les mises à jour programmées ne sont pas prises en charge par le gestionnaire ODBC." + AFX_IDP_SQL_LOCK_MODE_NOT_SUPPORTED + "Le mode de verrouillage requis n'est pas accepté." + AFX_IDP_SQL_DATA_TRUNCATED + "Données tronquées." + AFX_IDP_SQL_ROW_FETCH + "Erreur de récupération de l'enregistrement." + AFX_IDP_SQL_INCORRECT_ODBC + "Un point d'entrée ODBC requis est introuvable. Vérifiez qu'ODBC est correctement installé." + AFX_IDP_SQL_UPDATE_DELETE_FAILED + "Echec de la mise à jour ou de la suppression." + AFX_IDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED + "Curseurs dynamiques non pris en charge par le pilote ODBC." + AFX_IDP_SQL_FIELD_NOT_FOUND + "Invalid field name or field index." + AFX_IDP_SQL_BOOKMARKS_NOT_SUPPORTED + "Bookmarks not supported for ODBC driver." + AFX_IDP_SQL_BOOKMARKS_NOT_ENABLED + "Bookmarks not enabled on recordset." + AFX_IDP_DAO_ENGINE_INITIALIZATION + "Impossible d'initialiser le moteur de base de données DAO/Jet." + AFX_IDP_DAO_DFX_BIND + "Valeur du paramètre DFX incorrecte." + AFX_IDP_DAO_OBJECT_NOT_OPEN + "DAO TableDef ou QueryDef non ouverts." + AFX_IDP_DAO_ROWTOOSHORT + "Echec de GetRows. Mémoire allouée insuffisante pour la ligne." + AFX_IDP_DAO_BADBINDINFO + "Erreur de liens GetRows. Ceci est probablement du à une mauvaise correspondance de types de données." + AFX_IDP_DAO_COLUMNUNAVAILABLE + "Echec de GetRows. La colonne demandée n'est pas un membre de ce jeu d'enregistrements." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXDB_RC__ diff --git a/public/sdk/inc/mfc42/l.fra/afxolecl.rc b/public/sdk/inc/mfc42/l.fra/afxolecl.rc new file mode 100644 index 000000000..99d33dac0 --- /dev/null +++ b/public/sdk/inc/mfc42/l.fra/afxolecl.rc @@ -0,0 +1,66 @@ +// 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. + +#ifndef __AFXOLECL_RC__ +#define __AFXOLECL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifndef _INC_DLGS + #include <dlgs.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Client Resources + +///////////////////////////////////////////////////////////////////////////// +// OLE strings + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_STATIC_OBJECT "Impossible d'activer un objet OLE statique." + AFX_IDP_FAILED_TO_CONNECT "La connexion a échoué. \nLa liaison est peut être rompue." + AFX_IDP_SERVER_BUSY "Impossible d'exécuter la commande, le serveur est occupé." + AFX_IDP_BAD_VERB "Erreur lors de l'exécution de l'opération par l'application serveur." + AFX_IDP_FAILED_TO_LAUNCH "Erreur lors du démarrage d'une application serveur." + AFX_IDS_UPDATING_ITEMS "Mise à jour des objets OLE" + AFX_IDP_FAILED_TO_CONVERT "La conversion de l'objet OLE a échoué." + AFX_IDP_ASK_TO_DISCARD "Impossible d'enregistrer des objets OLE lorsque vous quittez Windows!\nSupprimer toutes les modifications apportées à %1?" + AFX_IDP_FAILED_TO_CREATE "Echec de création de l'objet. Vérifiez que l'application est entrée dans le registre du système." + + AFX_IDS_METAFILE_FORMAT "Image (métafichier)\na image" + AFX_IDS_DIB_FORMAT "Image en mode point indépendante du périphérique\na image en mode point indépendante du périphérique" + AFX_IDS_BITMAP_FORMAT "Image en mode point\na image en mode point" + AFX_IDS_LINKSOURCE_FORMAT "%s\n%s" + AFX_IDS_EMBED_FORMAT "%s\n%s" + AFX_IDS_RTF_FORMAT "Rich Text (RTF)\ntexte avec du formatage de police et de paragraphe" + AFX_IDS_TEXT_FORMAT "Texte non formaté\ntexte sans aucun formatage" + + AFX_IDS_INVALID_CURRENCY "Monnaie non valide." + AFX_IDS_INVALID_DATETIME "DateTime non valide." + AFX_IDS_INVALID_DATETIMESPAN "DateTimeSpan non valide." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.fra/afxolesv.rc b/public/sdk/inc/mfc42/l.fra/afxolesv.rc new file mode 100644 index 000000000..8d29df2b7 --- /dev/null +++ b/public/sdk/inc/mfc42/l.fra/afxolesv.rc @@ -0,0 +1,53 @@ +// 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. + +#ifndef __AFXOLESV_RC__ +#define __AFXOLESV_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Server Resources + +// OLE strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_ASK_TO_UPDATE, "Mettre à jour %1 avant de continuer?" + AFX_IDP_FAILED_TO_UPDATE, "Impossible de mettre à jour le client." + + AFX_IDP_FAILED_TO_REGISTER, "L'enregistrement a échoué. Il se peut que les fonctions OLE ne fonctionnent pas correctement." + AFX_IDP_FAILED_TO_AUTO_REGISTER, "La mise à jour du registre du système a échoué. \nEssayez d'utiliser REGEDIT." +END + +STRINGTABLE PRELOAD +BEGIN + AFX_IDS_APP_TITLE_EMBEDDING, "%1 dans %2" + AFX_IDS_OBJ_TITLE_INPLACE, "%1 - %2" + AFX_IDS_EXIT_MENU, "&Quitter et retourner à %1" + AFX_IDS_UPDATE_MENU, "Mise à jo&ur de %1" + AFX_IDS_SAVEFILECOPY, "Enregistrer la copie sous" +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLESV_RC__ diff --git a/public/sdk/inc/mfc42/l.fra/afxprint.rc b/public/sdk/inc/mfc42/l.fra/afxprint.rc new file mode 100644 index 000000000..d8572b05c --- /dev/null +++ b/public/sdk/inc/mfc42/l.fra/afxprint.rc @@ -0,0 +1,130 @@ +// 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. + +#ifndef __AFXPRINT_RC__ +#define __AFXPRINT_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Printing Resources + +AFX_IDC_MAGNIFY CURSOR DISCARDABLE "res\\magnify.cur" + +#ifndef _MAC +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | 0x04 +#else +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 84 +STYLE DS_MODALFRAME | WS_POPUP +#endif +FONT 8, "MS Shell Dlg" +BEGIN + CTEXT "Impression",IDC_STATIC,0,9,133,8 + CTEXT "",AFX_IDC_PRINT_DOCNAME,0,19,133,8 +#ifndef _MAC + CTEXT "sur",IDC_STATIC,0,29,133,8 + CTEXT "",AFX_IDC_PRINT_PRINTERNAME,0,39,133,8 + CTEXT "",AFX_IDC_PRINT_PORTNAME,0,49,133,8 + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,59,133,8 + PUSHBUTTON "Annuler",IDCANCEL,46,74,40,14 +#else + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,30,133,8 + PUSHBUTTON "Annuler",IDCANCEL,46,45,40,15 + CTEXT "Appuyer sur Cmd-. pour annuler l'impression.",IDC_STATIC,0,63,133,16 +#endif +END + +// Preview Toolbar Dialog +#ifndef _MAC +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 330, 16 +STYLE WS_CHILD | 0x04 +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "&Imprimer...",AFX_ID_PREVIEW_PRINT,2,2,44,12 + PUSHBUTTON "&Suivante",AFX_ID_PREVIEW_NEXT,48,2,44,12 + PUSHBUTTON "&Précédente",AFX_ID_PREVIEW_PREV,94,2,44,12 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,140,2,44,12 + PUSHBUTTON "Zoom ava&nt",AFX_ID_PREVIEW_ZOOMIN,186,2,44,12 + PUSHBUTTON "Zoom a&rrière",AFX_ID_PREVIEW_ZOOMOUT,232,2,44,12 + PUSHBUTTON "&Fermer",AFX_ID_PREVIEW_CLOSE,278,2,44,12 +END +#else +// standard toolbar for 14 inch and larger screens +// width *must* be 320 or less so that this is used on 640x480 screens +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 320, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "&Imprimer...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "&Suivante",AFX_ID_PREVIEW_NEXT,46,2,44,15 + PUSHBUTTON "&Précédente",AFX_ID_PREVIEW_PREV,91,2,44,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,136,2,44,15 + PUSHBUTTON "Zoom ava&nt",AFX_ID_PREVIEW_ZOOMIN,181,2,44,15 + PUSHBUTTON "Zoom a&rrière",AFX_ID_PREVIEW_ZOOMOUT,226,2,44,15 + PUSHBUTTON "&Fermer",AFX_ID_PREVIEW_CLOSE,271,2,44,15 +END + +// short toolbar for 9 inch and 12 inch screens +AFX_IDD_PREVIEW_SHORTTOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 270, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "&Imprimer...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "&Suivant",AFX_ID_PREVIEW_NEXT,46,2,29,15 + PUSHBUTTON "&Précédent",AFX_ID_PREVIEW_PREV,76,2,29,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,106,2,44,15 + PUSHBUTTON "&Avant",AFX_ID_PREVIEW_ZOOMIN,151,2,29,15 + PUSHBUTTON "A&rrière",AFX_ID_PREVIEW_ZOOMOUT,181,2,29,15 + PUSHBUTTON "&Fermer",AFX_ID_PREVIEW_CLOSE,211,2,44,15 +END +#endif + +// Printing strings +STRINGTABLE DISCARDABLE +BEGIN + // print progress dialog strings + AFX_IDS_PRINTONPORT, "sur %1" // for print output + AFX_IDS_ONEPAGE, "&Une page" // for preview button + AFX_IDS_TWOPAGE, "&Deux pages" // for preview button + AFX_IDS_PRINTPAGENUM, "Page %u" // for print output + AFX_IDS_PREVIEWPAGEDESC, "Page %u\nPages %u-%u\n" + + // print to file dialog strings + AFX_IDS_PRINTDEFAULTEXT, "prn" // default extension + AFX_IDS_PRINTDEFAULT, "Output.prn" // default file + AFX_IDS_PRINTFILTER, + "Fichiers imprimante (*.prn)|*.prn|Tous (*.*)|*.*||" + AFX_IDS_PRINTCAPTION, "Imprime vers un fichier" // caption for browse dlg + AFX_IDS_PRINTTOFILE, "vers %1" // to file +END + +// Print Preview Accelerator Table +AFX_IDR_PREVIEW_ACCEL ACCELERATORS LOADONCALL MOVEABLE +BEGIN + VK_NEXT, AFX_ID_PREVIEW_NEXT, VIRTKEY, NOINVERT + VK_PRIOR, AFX_ID_PREVIEW_PREV, VIRTKEY, NOINVERT + VK_ESCAPE, AFX_ID_PREVIEW_CLOSE, VIRTKEY, NOINVERT +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXPRINT_RC__ diff --git a/public/sdk/inc/mfc42/l.fra/afxres.rc b/public/sdk/inc/mfc42/l.fra/afxres.rc new file mode 100644 index 000000000..46400816b --- /dev/null +++ b/public/sdk/inc/mfc42/l.fra/afxres.rc @@ -0,0 +1,223 @@ +// 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. + +#ifndef __AFXRES_RC__ +#define __AFXRES_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Cannot change standard MFC resources! >\0" +END +#endif //APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Default resource description for MFC applications +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// Strings + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_APPMENU_RESOURCES + AFX_IDS_OPENFILE, "Ouvrir" +#ifndef _MAC + AFX_IDS_SAVEFILE, "Enregistrer sous" + AFX_IDS_ALLFILTER, "Tous les fichiers (*.*)" + AFX_IDS_UNTITLED, "sans nom" +#else + AFX_IDS_SAVEFILE, "Enregistrer le document sous :" + AFX_IDS_ALLFILTER, "Tous les fichiers" + AFX_IDS_UNTITLED, "sans nom" + AFX_IDS_ABOUT, "A propos de %1\205" +#endif + AFX_IDS_HIDE, "&Masquer" +#endif // !_AFX_NO_APPMENUSTRING_RESOURCES + + AFX_IDS_MEMORY_EXCEPTION, "Mémoire insuffisante." + AFX_IDS_NOT_SUPPORTED_EXCEPTION,"Une opération non prise en charge a été tentée." + AFX_IDS_RESOURCE_EXCEPTION, "Une ressource requise était non disponible." + AFX_IDS_USER_EXCEPTION, "Une erreur inconnue s'est produite." + + // General error prompts +#ifndef _AFX_NO_FILECMD_RESOURCES + AFX_IDP_INVALID_FILENAME, "Nom de fichier non valide." + AFX_IDP_FAILED_TO_OPEN_DOC, "L'ouverture du document a échoué." + AFX_IDP_FAILED_TO_SAVE_DOC, "L'enregistrement du document a échoué." +#ifndef _MAC + AFX_IDP_ASK_TO_SAVE, "Enregistrer les modifications apportées à %1?" +#else + AFX_IDP_ASK_TO_SAVE, "Enregistrer les modifications apportées au document %1 \042%2\042?" +#endif + AFX_IDP_FAILED_TO_CREATE_DOC, "La création d'un document vide a échoué." + AFX_IDP_FILE_TOO_LARGE, "Le fichier est trop volumineux pour être ouvert." + AFX_IDP_FAILED_TO_START_PRINT, "Impossible de lancer l'impression." +#endif // !_AFX_NO_FILECMD_RESOURCES + AFX_IDP_FAILED_TO_LAUNCH_HELP, "Le démarrage de l'aide a échoué." + AFX_IDP_INTERNAL_FAILURE, "Erreur d'application interne." + AFX_IDP_COMMAND_FAILURE, "La commande a échoué." + AFX_IDP_FAILED_MEMORY_ALLOC "Mémoire insuffisante pour exécuter l'opération." + AFX_IDP_GET_NOT_SUPPORTED, "Impossible de lire une propriété en écriture seule." + AFX_IDP_SET_NOT_SUPPORTED, "Impossible d'écrire une propriété en lecture seule." + AFX_IDP_UNREG_DONE, "System registry entries have been removed and the INI file (if any) was deleted." + AFX_IDP_UNREG_FAILURE, "Not all of the system registry entries (or INI file) were removed." + + // CFile/CArchive error strings for user failure +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FAILED_INVALID_FORMAT "Format de fichier inattendu." +#ifndef _MAC + AFX_IDP_FAILED_INVALID_PATH "%1\nImpossible de trouver ce fichier. Vérifiez que le chemin et le nom du fichier sont corrects." + AFX_IDP_FAILED_DISK_FULL "Le lecteur de disque de destination est plein." +#else + AFX_IDP_FAILED_INVALID_PATH "Impossible de trouver le fichier \042%1.\042. Vérifiez que le nom du fichier est correct." + AFX_IDP_FAILED_DISK_FULL "Le disque de destination est plein." +#endif + AFX_IDP_FAILED_ACCESS_READ "Impossible de lire à partir de %1, il est en cours d'utilisation." + AFX_IDP_FAILED_ACCESS_WRITE "Impossible d'écrire sur %1, il est en lecture seule ou en cours d'utilisation." + AFX_IDP_FAILED_IO_ERROR_READ "Une erreur inattendue s'est produite lors de la lecture de %1." + AFX_IDP_FAILED_IO_ERROR_WRITE "Une erreur inattendue s'est produite lors de l'écriture de %1." +#endif // !_AFX_NO_CFILE_RESOURCES + + // Parsing error prompts + AFX_IDP_PARSE_INT, "Tapez un nombre entier." + AFX_IDP_PARSE_REAL, "Tapez un nombre." + AFX_IDP_PARSE_INT_RANGE, "Tapez un nombre entier compris entre %1 et %2." + AFX_IDP_PARSE_REAL_RANGE, "Tapez un nombre compris entre %1 et %2." + AFX_IDP_PARSE_STRING_SIZE, "Tapez %1 caractères au maximum." + AFX_IDP_PARSE_RADIO_BUTTON, "Choisissez un bouton." + AFX_IDP_PARSE_BYTE, "Veuillez entrer un entier compris entre 0 et 255." + AFX_IDP_PARSE_UINT, "Veuillez entrer un entier positif." + AFX_IDP_PARSE_DATETIME, "Veuillez entrer une date et/ou une heure." + AFX_IDP_PARSE_CURRENCY, "Veuillez entrer une monnaie." + +#ifndef _AFX_NO_OLE_RESOURCES + // OLE strings required for both servers and containers + AFX_IDS_PASTELINKEDTYPE "%s lié(e)" + AFX_IDS_UNKNOWNTYPE "Type inconnu" +#ifndef _MAC + AFX_IDP_FAILED_TO_NOTIFY "%1\nImpossible d'enregistrer le document. \nLe document est peut-être déjà ouvert." +#else + AFX_IDP_FAILED_TO_NOTIFY "Impossible d'enregistrer le document \042%1.\042. Le document est peut-être déjà ouvert." +#endif +#endif //!_AFX_NO_OLE_RESOURCES + + AFX_IDP_NO_ERROR_AVAILABLE "Aucun message d'erreur n'est disponible." + +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FILE_NONE "Aucune erreur ne s'est produite." + AFX_IDP_FILE_GENERIC "Une erreur inconnue s'est produite lors de l'accès à %1." + AFX_IDP_FILE_NOT_FOUND "Impossible de trouver %1." + AFX_IDP_FILE_BAD_PATH "%1 contient un chemin non valide." + AFX_IDP_FILE_TOO_MANY_OPEN "Impossible d'ouvrir %1 car il y a trop de fichiers ouverts." + AFX_IDP_FILE_ACCESS_DENIED "L'accès à %1 a été refusé." + AFX_IDP_FILE_INVALID_FILE "Un descripteur de fichier non valide a été associé à %1." + AFX_IDP_FILE_REMOVE_CURRENT "Impossible d'enlever %1 car c'est le répertoire courant." + AFX_IDP_FILE_DIR_FULL "Impossible de créer %1 car le répertoire est plein." + AFX_IDP_FILE_BAD_SEEK "Echec de la recherche sur %1" + AFX_IDP_FILE_HARD_IO "Une erreur d'E/S matérielle a été reportée lors de l'accès à %1." + AFX_IDP_FILE_SHARING "Une violation de partage s'est produite lors de l'accès à %1." + AFX_IDP_FILE_LOCKING "Une violation de verrouillage s'est produite lors de l'accès à %1." + AFX_IDP_FILE_DISKFULL "Disque plein lors de l'accès à %1." + AFX_IDP_FILE_EOF "Tentative d'accès à %1 après sa fin." + AFX_IDS_UNNAMED_FILE "un fichier non nommé" +#endif // !_AFX_NO_CFILE_RESOURCES + + AFX_IDP_ARCH_NONE "Aucune erreur ne s'est produite." + AFX_IDP_ARCH_GENERIC "Une erreur inconnue s'est produite lors de l'accès à %1." + AFX_IDP_ARCH_READONLY "Tentative d'écriture de %1 ouvert pour la lecture." + AFX_IDP_ARCH_ENDOFFILE "Tentative d'accès à %1 après sa fin." + AFX_IDP_ARCH_WRITEONLY "Tentative de lecture de %1 ouvert pour l'écriture." + AFX_IDP_ARCH_BADINDEX "%1 a un mauvais format." + AFX_IDP_ARCH_BADCLASS "%1 contient un objet inattendu." + AFX_IDP_ARCH_BADSCHEMA "%1 contient un schéma incorrect." + +#ifndef _AFX_NO_MAPI_RESOURCES + // MAPI strings / error messages + AFX_IDP_FAILED_MAPI_LOAD "Impossible de charger la prise en charge du système de messagerie électronique." + AFX_IDP_INVALID_MAPI_DLL "La DLL système de la messagerie n'est pas valide." + AFX_IDP_FAILED_MAPI_SEND "La messagerie électronique n'a pas pu envoyer le message." +#endif //!_AFX_NO_MAPI_RESOURCES + +#ifndef _AFX_NO_OCC_RESOURCES + AFX_IDS_OCC_SCALEUNITS_PIXELS "pixels" +#endif //!_AFX_NO_OCC_RESOURCES +END + +///////////////////////////////////////////////////////////////////////////// +// Cursors + +AFX_IDC_CONTEXTHELP CURSOR DISCARDABLE "res\\help.cur" + +#ifndef _AFX_NO_SPLITTER_RESOURCES +AFX_IDC_SMALLARROWS CURSOR DISCARDABLE "res\\sarrows.cur" +AFX_IDC_HSPLITBAR CURSOR DISCARDABLE "res\\splith.cur" +AFX_IDC_VSPLITBAR CURSOR DISCARDABLE "res\\splitv.cur" +AFX_IDC_NODROPCRSR CURSOR DISCARDABLE "res\\nodrop.cur" +#endif //!_AFX_NO_SPLITTER_RESOURCES + +#ifndef _AFX_NO_TRACKER_RESOURCES +AFX_IDC_TRACKNWSE CURSOR DISCARDABLE "res\\trcknwse.cur" +AFX_IDC_TRACKNESW CURSOR DISCARDABLE "res\\trcknesw.cur" +AFX_IDC_TRACKNS CURSOR DISCARDABLE "res\\trckns.cur" +AFX_IDC_TRACKWE CURSOR DISCARDABLE "res\\trckwe.cur" +AFX_IDC_TRACK4WAY CURSOR DISCARDABLE "res\\trck4way.cur" +AFX_IDC_MOVE4WAY CURSOR DISCARDABLE "res\\move4way.cur" +#endif //!_AFX_NO_TRACKER_RESOURCES + +#ifndef _AFX_NO_CTL3D_RESOURCES +26567 BITMAP "res\\3dcheck.bmp" // Note: 26567 comes from CTL3D.H +#endif + +///////////////////////////////////////////////////////////////////////////// +// Standard Dialogs + +#ifndef _AFX_NO_NEWTYPEDLG_RESOURCES +AFX_IDD_NEWTYPEDLG DIALOG DISCARDABLE 9, 26, 183, 70 +#ifndef _MAC +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | 0x04 +#else +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION +#endif +CAPTION "Nouveau" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Nouveau",IDC_STATIC,6,5,123,8,NOT WS_GROUP + LISTBOX AFX_IDC_LISTBOX,6,15,125,49,WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,137,6,40,14 + PUSHBUTTON "Annuler",IDCANCEL,137,23,40,14 + PUSHBUTTON "&Aide",ID_HELP,137,43,40,14 +END +#endif // !_AFX_NO_NEWTYPEDLG_RESOURCES + +///////////////////////////////////////////////////////////////////////////// +// CMiniFrameWnd Bitmap + +AFX_IDB_MINIFRAME_MENU BITMAP DISCARDABLE "res\\minifwnd.bmp" + +///////////////////////////////////////////////////////////////////////////// +// CCheckListBox Bitmaps + +AFX_IDB_CHECKLISTBOX_NT BITMAP DISCARDABLE "res\\ntcheck.bmp" +AFX_IDB_CHECKLISTBOX_95 BITMAP DISCARDABLE "res\\95check.bmp" + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //!__AFXRES_RC__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/l.ita/afxctl.rc b/public/sdk/inc/mfc42/l.ita/afxctl.rc new file mode 100644 index 000000000..4d3dd63ef --- /dev/null +++ b/public/sdk/inc/mfc42/l.ita/afxctl.rc @@ -0,0 +1,284 @@ +// 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. + +#ifndef __AFXCTL_RC__ +#define __AFXCTL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Impossibile modificare le risorse standard MFC >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Control Resources + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +AFX_IDB_TRUETYPE BITMAP DISCARDABLE "RES\\TRUETYPE.BMP" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +AFX_IDD_PROPPAGE_FONT DIALOG DISCARDABLE 13, 54, 250, 110 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Proprietà:",IDC_STATIC,3,5,61,8 + COMBOBOX AFX_IDC_FONTPROP,65,3,100,71,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + LTEXT "&Tipo di carattere:",IDC_STATIC,3,19,91,8 + COMBOBOX AFX_IDC_FONTNAMES,3,29,91,77,CBS_SIMPLE | + CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | + CBS_HASSTRINGS | CBS_DISABLENOSCROLL | WS_VSCROLL | + WS_TABSTOP + LTEXT "St&ile:",IDC_STATIC,102,19,53,8 + COMBOBOX AFX_IDC_FONTSTYLES,104,29,53,53,CBS_DROPDOWNLIST | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + LTEXT "&Dimensione:",IDC_STATIC,167,19,40,8 + COMBOBOX AFX_IDC_FONTSIZES,167,29,36,53,CBS_DROPDOWN | CBS_SORT | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Effetti",IDC_STATIC,104,44,142,24,WS_GROUP + CONTROL "Bar&rato",AFX_IDC_STRIKEOUT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,109,55,65,10 + CONTROL "&Sottolineato",AFX_IDC_UNDERLINE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,175,55,65,10 + GROUPBOX "Esempio",IDC_STATIC,104,71,142,36,WS_GROUP + CTEXT "AaBbYyZz",AFX_IDC_SAMPLEBOX,110,80,130,22,SS_NOPREFIX | + NOT WS_VISIBLE +END + +AFX_IDD_PROPPAGE_COLOR DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Proprietà:",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_COLORPROP,3,13,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "&Colore di sistema:",IDC_STATIC,3,29,100,8 + COMBOBOX AFX_IDC_SYSTEMCOLORS,3,39,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + CONTROL "",AFX_IDC_COLOR_BLACK,"Button",BS_OWNERDRAW | WS_GROUP | + WS_TABSTOP,118,4,15,11 + CONTROL "",AFX_IDC_COLOR_BLUE,"Button",BS_OWNERDRAW,138,4,15,11 + CONTROL "",AFX_IDC_COLOR_CYAN,"Button",BS_OWNERDRAW,158,4,15,11 + CONTROL "",AFX_IDC_COLOR_DARKBLUE,"Button",BS_OWNERDRAW,178,4,15, + 11 + CONTROL "",AFX_IDC_COLOR_DARKCYAN,"Button",BS_OWNERDRAW,118,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKGREEN,"Button",BS_OWNERDRAW,138,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKMAGENTA,"Button",BS_OWNERDRAW,158, + 18,15,11 + CONTROL "",AFX_IDC_COLOR_GRAY,"Button",BS_OWNERDRAW,178,18,15,11 + CONTROL "",AFX_IDC_COLOR_DARKRED,"Button",BS_OWNERDRAW,118,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_GREEN,"Button",BS_OWNERDRAW,138,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_LIGHTBROWN,"Button",BS_OWNERDRAW,158,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_LIGHTGRAY,"Button",BS_OWNERDRAW,178,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_MAGENTA,"Button",BS_OWNERDRAW,118,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_RED,"Button",BS_OWNERDRAW,138,46,15,11 + CONTROL "",AFX_IDC_COLOR_WHITE,"Button",BS_OWNERDRAW,158,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_YELLOW,"Button",BS_OWNERDRAW,178,46,15, + 11 +END + +AFX_IDD_PROPPAGE_PICTURE DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Proprietà:",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_PROPNAME,3,13,100,30,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "&Sfoglia...",AFX_IDC_BROWSE,3,35,54,14 + PUSHBUTTON "&Cancella",AFX_IDC_CLEAR,61,35,54,14 + RTEXT "Anteprima:",IDC_STATIC,107,3,42,16 + CONTROL "",AFX_IDC_PICTURE,"Static",SS_BLACKFRAME,151,4,93,54 +END + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +AFX_IDD_PROPPAGE_FONT DLGINIT +BEGIN + 1002, 0x403, 12, 0 +0x6f42, 0x646c, 0x4920, 0x6174, 0x696c, 0x0063, + 0 +END + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PROPPAGE_UNKNOWN "(Sconosciuto)" + AFX_IDS_COLOR_DESKTOP "Desktop" + AFX_IDS_COLOR_APPWORKSPACE "Area di lavoro dell'applicazione" + AFX_IDS_COLOR_WNDBACKGND "Sfondo della finestra" + AFX_IDS_COLOR_WNDTEXT "Testo della finestra" + AFX_IDS_COLOR_MENUBAR "Barra dei menu" + AFX_IDS_COLOR_MENUTEXT "Testo dei menu" + AFX_IDS_COLOR_ACTIVEBAR "Barra del titolo attiva" + AFX_IDS_COLOR_INACTIVEBAR "Barra del titolo inattiva" + AFX_IDS_COLOR_ACTIVETEXT "Testo della barra del titolo attiva" + AFX_IDS_COLOR_INACTIVETEXT "Testo della barra del titolo inattiva" + AFX_IDS_COLOR_ACTIVEBORDER "Bordo attivo" + AFX_IDS_COLOR_INACTIVEBORDER "Bordo inattivo" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_WNDFRAME "Cornice della finestra" + AFX_IDS_COLOR_SCROLLBARS "Barre di scorrimento" + AFX_IDS_COLOR_BTNFACE "Aspetto pulsante" + AFX_IDS_COLOR_BTNSHADOW "Ombreggiatura pulsante" + AFX_IDS_COLOR_BTNTEXT "Testo del pulsante" + AFX_IDS_COLOR_BTNHIGHLIGHT "Evidenziazione del pulsante" + AFX_IDS_COLOR_DISABLEDTEXT "Testo disattivato" + AFX_IDS_COLOR_HIGHLIGHT "Evidenziazione" + AFX_IDS_COLOR_HIGHLIGHTTEXT "Testo evidenziato" + AFX_IDS_REGULAR "Normale" + AFX_IDS_BOLD "Grassetto" + AFX_IDS_ITALIC "Corsivo" + AFX_IDS_BOLDITALIC "Grassetto corsivo" + AFX_IDS_SAMPLETEXT "AaBbYyZz" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_DISPLAYSTRING_FONT "(Tipo di carattere)" + AFX_IDS_DISPLAYSTRING_COLOR "(Colore)" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_DISPLAYSTRING_PICTURE "(Immagine - %s)" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTUREFILTER "All Picture Types|*.bmp;*.cur;*.dib;*.emf;*.ico;*.wmf|Bitmaps (*.bmp;*.dib)|*.bmp;*.dib|Icons/Cursors (*.ico;*.cur)|*.ico;*.cur|Metafiles (*.wmf;*.emf)|*.wmf;*.emf|All files (*.*)|*.*||" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTYPE_UNKNOWN "Sconosciuto" + AFX_IDS_PICTYPE_NONE "Nessuno" + AFX_IDS_PICTYPE_BITMAP "Bitmap" + AFX_IDS_PICTYPE_METAFILE "Metafile" + AFX_IDS_PICTYPE_ICON "Icona" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_PPG "Scheda delle proprietà del colore" + AFX_IDS_COLOR_PPG_CAPTION "Colori" + AFX_IDS_FONT_PPG "Scheda delle proprietà dei caratteri" + AFX_IDS_FONT_PPG_CAPTION "Caratteri" + AFX_IDS_PICTURE_PPG "Scheda delle proprietà delle immagini" + AFX_IDS_PICTURE_PPG_CAPTION "Immagini" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_BORDERSTYLE_0 "0 - None" + AFX_IDS_BORDERSTYLE_1 "1 - Fixed Single" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_VERB_EDIT "&Modifica" + AFX_IDS_VERB_PROPERTIES "&Proprietà..." +END + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_PICTURECANTOPEN "Impossibile aprire il file immagine %1. Il file non esiste o è illeggibile." + AFX_IDP_PICTURECANTLOAD "Impossibile caricare il file immagine %1. È possibile che il formato del file non sia valido." + AFX_IDP_PICTURETOOLARGE "Impossibile caricare l'immagine %1. Il file è troppo grande per essere contenuto in memoria." + AFX_IDP_PICTUREREADFAILED + "Impossibile caricare l'immagine %1. Errore di lettura non definito. " +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PICTUREBROWSETITLE "Sfoglia immagini" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +#ifndef _AFX_NO_CTLERROR_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_ILLEGALFUNCTIONCALL "Chiamata di funzione non valida" + AFX_IDP_E_OVERFLOW "Overflow" + AFX_IDP_E_OUTOFMEMORY "Memoria esaurita" + AFX_IDP_E_DIVISIONBYZERO "Divisione per zero" + AFX_IDP_E_OUTOFSTRINGSPACE "Spazio della stringa esaurito" + AFX_IDP_E_OUTOFSTACKSPACE "Spazio dello stack esaurito" + AFX_IDP_E_BADFILENAMEORNUMBER "Nome o numero di file non valido" + AFX_IDP_E_FILENOTFOUND "Impossibile trovare il file" + AFX_IDP_E_BADFILEMODE "Modalità file non valida" + AFX_IDP_E_FILEALREADYOPEN "File già aperto" + AFX_IDP_E_DEVICEIOERROR "Errore di I/O sulla periferica" + AFX_IDP_E_FILEALREADYEXISTS "File già esistente" + AFX_IDP_E_BADRECORDLENGTH "Lunghezza record non valida" + AFX_IDP_E_DISKFULL "Disco pieno" + AFX_IDP_E_BADRECORDNUMBER "Numero record non valido" + AFX_IDP_E_BADFILENAME "Nome file non valido" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_TOOMANYFILES "Troppi file" + AFX_IDP_E_DEVICEUNAVAILABLE "Periferica non disponibile" + AFX_IDP_E_PERMISSIONDENIED "Permesso negato" + AFX_IDP_E_DISKNOTREADY "Disco non pronto" + AFX_IDP_E_PATHFILEACCESSERROR "Errore di accesso al percorso o al file" + AFX_IDP_E_PATHNOTFOUND "Impossibile trovare il percorso" + AFX_IDP_E_INVALIDPATTERNSTRING "Stringa di ricerca non valida" + AFX_IDP_E_INVALIDUSEOFNULL "Utilizzo di Null non valido" + AFX_IDP_E_INVALIDFILEFORMAT "Formato file non valido" + AFX_IDP_E_INVALIDPROPERTYVALUE "Valore della proprietà non valido" + AFX_IDP_E_INVALIDPROPERTYARRAYINDEX "Indice della matrice non valido" + AFX_IDP_E_SETNOTSUPPORTEDATRUNTIME "Impossibile impostare la proprietà in fase di esecuzione" + AFX_IDP_E_SETNOTSUPPORTED "La proprietà è di sola lettura" + AFX_IDP_E_NEEDPROPERTYARRAYINDEX + "È necessario specificare un indice di matrice quando si utilizza una matrice di proprietà" + AFX_IDP_E_SETNOTPERMITTED "Impossibile impostare la proprietà per questo controllo" + AFX_IDP_E_GETNOTSUPPORTEDATRUNTIME "Impossibile leggere la proprietà in fase di esecuzione" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_GETNOTSUPPORTED "La proprietà è di sola scrittura" + AFX_IDP_E_PROPERTYNOTFOUND "Impossibile trovare la proprietà" + AFX_IDP_E_INVALIDCLIPBOARDFORMAT "Formato Appunti non valido" + AFX_IDP_E_INVALIDPICTURE "Immagine non valida" + AFX_IDP_E_PRINTERERROR "Errore della stampante" + AFX_IDP_E_CANTSAVEFILETOTEMP + "Impossibile creare un file temporaneo necessario per il salvataggio" + AFX_IDP_E_SEARCHTEXTNOTFOUND "Testo della ricerca non trovato" + AFX_IDP_E_REPLACEMENTSTOOLONG "Testo sostitutivo troppo lungo" +END +#endif //!_AFX_NO_CTLERROR_RESOURCES + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.ita/afxdb.rc b/public/sdk/inc/mfc42/l.ita/afxdb.rc new file mode 100644 index 000000000..c0689bbed --- /dev/null +++ b/public/sdk/inc/mfc42/l.ita/afxdb.rc @@ -0,0 +1,103 @@ +// 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. + +#ifndef __AFXDB_RC__ +#define __AFXDB_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Impossibile modificare le risorse standard MFC >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Database Resources + +// Database strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_SQL_CONNECT_FAIL + "Tentativo di connessione alla fonte dati esterna non riuscito" + AFX_IDP_SQL_RECORDSET_FORWARD_ONLY + "Il set di record supporta solo il movimento in avanti." + AFX_IDP_SQL_EMPTY_COLUMN_LIST + "Tentativo di aprire una tabella non riuscito. Non c'erano colonne da recuperare dove specificato. " + AFX_IDP_SQL_FIELD_SCHEMA_MISMATCH + "La ricerca ha fornito tipi di dati inattesi per le colonne." + AFX_IDP_SQL_ILLEGAL_MODE "Tentativo di aggiornamento o di cancellazione non riuscito." + AFX_IDP_SQL_MULTIPLE_ROWS_AFFECTED "Sono state aggiornate righe multiple." + AFX_IDP_SQL_NO_CURRENT_RECORD "Operazione non riuscita, nessun record corrente." + AFX_IDP_SQL_NO_ROWS_AFFECTED + "Nessuna riga è stata influenzata dall'operazione di aggiornamento o di cancellazione." + AFX_IDP_SQL_RECORDSET_READONLY "Il set di record è di sola lettura" + AFX_IDP_SQL_SQL_NO_TOTAL + "Il driver ODBC non supporta il modello dati MFC LongBinary." + AFX_IDP_SQL_ODBC_LOAD_FAILED + "Tentativo di caricare la componente richiesta ODBC32.DLL non riuscito." + AFX_IDP_SQL_DYNASET_NOT_SUPPORTED + "Il driver ODBC non supporta i dynaset." + AFX_IDP_SQL_SNAPSHOT_NOT_SUPPORTED + "Puntatori statici ODBC richiesti per il supporto dell'anteprima." + AFX_IDP_SQL_API_CONFORMANCE + "Il driver ODBC è incompatibile con le classi di database MFC (utilizzare API_CONFORMANCE >= SQL_OAC_LEVEL1)" + AFX_IDP_SQL_SQL_CONFORMANCE + "Il driver ODBC è incompatibile con le classi di database MFC (utilizzare SQL_CONFORMANCE >= SQL_OSC_MINIMUM)" + AFX_IDP_SQL_NO_DATA_FOUND + "Tentativo di scorrere i dati oltre la fine o prima dell'inizio." + AFX_IDP_SQL_ROW_UPDATE_NOT_SUPPORTED + "Il driver ODBC non supporta i dynaset." + AFX_IDP_SQL_ODBC_V2_REQUIRED + "È richiesto un driver conforme al livello 2 di ODBC." + AFX_IDP_SQL_NO_POSITIONED_UPDATES + "Il driver ODBC non supporta gli aggiornamenti dipendenti dalla posizione." + AFX_IDP_SQL_LOCK_MODE_NOT_SUPPORTED + "La modalità blocco richiesta non è supportata." + AFX_IDP_SQL_DATA_TRUNCATED + "Dati troncati." + AFX_IDP_SQL_ROW_FETCH + "Errore nel recupero di record." + AFX_IDP_SQL_INCORRECT_ODBC + "Non è stato trovato un punto di ingresso ODBC richiesto. Assicurarsi che ODBC sia installato correttamente." + AFX_IDP_SQL_UPDATE_DELETE_FAILED + "Aggiornamento o cancellazione non riusciti." + AFX_IDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED + "Cursore dinamico non supportato dal driver ODBC." + AFX_IDP_SQL_FIELD_NOT_FOUND + "Invalid field name or field index." + AFX_IDP_SQL_BOOKMARKS_NOT_SUPPORTED + "Bookmarks not supported for ODBC driver." + AFX_IDP_SQL_BOOKMARKS_NOT_ENABLED + "Bookmarks not enabled on recordset." + AFX_IDP_DAO_ENGINE_INITIALIZATION + "Non è possibile inizializzare il motore del db DAO/Jet." + AFX_IDP_DAO_DFX_BIND + "Il valore del parametro DFX non è valido." + AFX_IDP_DAO_OBJECT_NOT_OPEN + "Il DAO TableDef o QueryDef non sono aperti." + AFX_IDP_DAO_ROWTOOSHORT + "Errore GetRows. Memoria insufficiente per la fila." + AFX_IDP_DAO_BADBINDINFO + "Errore GetRows di collegamento. Probabilmente causato da un tipo di dati non corrispondente." + AFX_IDP_DAO_COLUMNUNAVAILABLE + "Errore GetRows. La colonna richiesta non fa parte di questo set di record." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXDB_RC__ diff --git a/public/sdk/inc/mfc42/l.ita/afxolecl.rc b/public/sdk/inc/mfc42/l.ita/afxolecl.rc new file mode 100644 index 000000000..3ed4cf990 --- /dev/null +++ b/public/sdk/inc/mfc42/l.ita/afxolecl.rc @@ -0,0 +1,66 @@ +// 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. + +#ifndef __AFXOLECL_RC__ +#define __AFXOLECL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifndef _INC_DLGS + #include <dlgs.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Impossibile modificare le risorse standard MFC >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Client Resources + +///////////////////////////////////////////////////////////////////////////// +// OLE strings + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_STATIC_OBJECT "Impossibile attivare un oggetto statico OLE." + AFX_IDP_FAILED_TO_CONNECT "Connessione non riuscita.\nIl collegamento potrebbe essere interrotto." + AFX_IDP_SERVER_BUSY "Impossibile elaborare il comando, il server è impegnato." + AFX_IDP_BAD_VERB "Impossibile eseguire l'operazione sul server." + AFX_IDP_FAILED_TO_LAUNCH "Impossibile avviare l'applicazione sul server." + AFX_IDS_UPDATING_ITEMS "Aggiornamento di oggetti OLE" + AFX_IDP_FAILED_TO_CONVERT "Impossibile convertire l'oggetto OLE." + AFX_IDP_ASK_TO_DISCARD "Non è possibile salvare gli oggetti OLE durante l'uscita da Windows.\nScartare tutte le modifiche a %1?" + AFX_IDP_FAILED_TO_CREATE "Errore nel creare l'oggetto. Assicurarsi che l'applicazione sia inclusa nel registro del sistema." + + AFX_IDS_METAFILE_FORMAT "Illustrazione (Metafile)\na illustrazione " + AFX_IDS_DIB_FORMAT "Device Indipendent Bitmap\na bitmap indipendente dalla periferica" + AFX_IDS_BITMAP_FORMAT "Bitmap\na bitmap" + AFX_IDS_LINKSOURCE_FORMAT "%s\n%s" + AFX_IDS_EMBED_FORMAT "%s\n%s" + AFX_IDS_RTF_FORMAT "Formato RTF\ntesto con formattazione di carattere e di paragrafo" + AFX_IDS_TEXT_FORMAT "Testo non formattato\ntesto senza alcuna formattazione" + + AFX_IDS_INVALID_CURRENCY "Formato valuta non valido." + AFX_IDS_INVALID_DATETIME "Formato data/ora non valido." + AFX_IDS_INVALID_DATETIMESPAN "Periodo di tempo non valido." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.ita/afxolesv.rc b/public/sdk/inc/mfc42/l.ita/afxolesv.rc new file mode 100644 index 000000000..975217b5f --- /dev/null +++ b/public/sdk/inc/mfc42/l.ita/afxolesv.rc @@ -0,0 +1,53 @@ +// 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. + +#ifndef __AFXOLESV_RC__ +#define __AFXOLESV_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Impossibile modificare le risorse standard MFC >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Server Resources + +// OLE strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_ASK_TO_UPDATE, "Aggiornare %1 prima di procedere?" + AFX_IDP_FAILED_TO_UPDATE, "Impossibile aggiornare il client." + + AFX_IDP_FAILED_TO_REGISTER, "Impossibile registrare. Le caratteristiche OLE potrebbero non funzionare in modo corretto." + AFX_IDP_FAILED_TO_AUTO_REGISTER, "Impossibile aggiornare il registro di sistema.\nProvare utilizzando REGEDIT." +END + +STRINGTABLE PRELOAD +BEGIN + AFX_IDS_APP_TITLE_EMBEDDING, "%1 in %2" + AFX_IDS_OBJ_TITLE_INPLACE, "%1 - %2" + AFX_IDS_EXIT_MENU, "&Esci && ritorna a %1" + AFX_IDS_UPDATE_MENU, "&Aggiorna %1" + AFX_IDS_SAVEFILECOPY, "Salva copia con nome" +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLESV_RC__ diff --git a/public/sdk/inc/mfc42/l.ita/afxprint.rc b/public/sdk/inc/mfc42/l.ita/afxprint.rc new file mode 100644 index 000000000..9c5ff8173 --- /dev/null +++ b/public/sdk/inc/mfc42/l.ita/afxprint.rc @@ -0,0 +1,130 @@ +// 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. + +#ifndef __AFXPRINT_RC__ +#define __AFXPRINT_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Impossibile modificare le risorse standard MFC >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Printing Resources + +AFX_IDC_MAGNIFY CURSOR DISCARDABLE "res\\magnify.cur" + +#ifndef _MAC +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | 0x04 +#else +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 84 +STYLE DS_MODALFRAME | WS_POPUP +#endif +FONT 8, "MS Shell Dlg" +BEGIN + CTEXT "Stampa in corso",IDC_STATIC,0,9,133,8 + CTEXT "",AFX_IDC_PRINT_DOCNAME,0,19,133,8 +#ifndef _MAC + CTEXT "sul",IDC_STATIC,0,29,133,8 + CTEXT "",AFX_IDC_PRINT_PRINTERNAME,0,39,133,8 + CTEXT "",AFX_IDC_PRINT_PORTNAME,0,49,133,8 + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,59,133,8 + PUSHBUTTON "Annulla",IDCANCEL,46,74,40,14 +#else + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,30,133,8 + PUSHBUTTON "Annulla",IDCANCEL,46,45,40,15 + CTEXT "Premere Cmd-. per annullare.",IDC_STATIC,0,63,133,16 +#endif +END + +// Preview Toolbar Dialog +#ifndef _MAC +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 330, 16 +STYLE WS_CHILD | 0x04 +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Stam&pa...",AFX_ID_PREVIEW_PRINT,2,2,44,12 + PUSHBUTTON "Pag. &succes.",AFX_ID_PREVIEW_NEXT,48,2,44,12 + PUSHBUTTON "Pag. p&reced.",AFX_ID_PREVIEW_PREV,94,2,44,12 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,140,2,44,12 + PUSHBUTTON "Ingrand&isci",AFX_ID_PREVIEW_ZOOMIN,186,2,44,12 + PUSHBUTTON "Ri&duci",AFX_ID_PREVIEW_ZOOMOUT,232,2,44,12 + PUSHBUTTON "&Chiudi",AFX_ID_PREVIEW_CLOSE,278,2,44,12 +END +#else +// standard toolbar for 14 inch and larger screens +// width *must* be 320 or less so that this is used on 640x480 screens +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 320, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "Stam&pa...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "Pag. &succes.",AFX_ID_PREVIEW_NEXT,46,2,44,15 + PUSHBUTTON "Pag. p&reced.",AFX_ID_PREVIEW_PREV,91,2,44,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,136,2,44,15 + PUSHBUTTON "Ingrand&isci",AFX_ID_PREVIEW_ZOOMIN,181,2,44,15 + PUSHBUTTON "Ri&duci",AFX_ID_PREVIEW_ZOOMOUT,226,2,44,15 + PUSHBUTTON "&Chiudi",AFX_ID_PREVIEW_CLOSE,271,2,44,15 +END + +// short toolbar for 9 inch and 12 inch screens +AFX_IDD_PREVIEW_SHORTTOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 270, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "Stam&pa...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "&Succes.",AFX_ID_PREVIEW_NEXT,46,2,29,15 + PUSHBUTTON "P&reced.",AFX_ID_PREVIEW_PREV,76,2,29,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,106,2,44,15 + PUSHBUTTON "&Ingresso",AFX_ID_PREVIEW_ZOOMIN,151,2,29,15 + PUSHBUTTON "&Uscita",AFX_ID_PREVIEW_ZOOMOUT,181,2,29,15 + PUSHBUTTON "&Chiudi",AFX_ID_PREVIEW_CLOSE,211,2,44,15 +END +#endif + +// Printing strings +STRINGTABLE DISCARDABLE +BEGIN + // print progress dialog strings + AFX_IDS_PRINTONPORT, "su %1" // for print output + AFX_IDS_ONEPAGE, "&Una pagina" // for preview button + AFX_IDS_TWOPAGE, "&Due pagine" // for preview button + AFX_IDS_PRINTPAGENUM, "Pagina %u" // for print output + AFX_IDS_PREVIEWPAGEDESC, "Pagina %u\nPagine %u-%u\n" + + // print to file dialog strings + AFX_IDS_PRINTDEFAULTEXT, "prn" // default extension + AFX_IDS_PRINTDEFAULT, "Output.prn" // default file + AFX_IDS_PRINTFILTER, + "File della stampante (*.prn)|*.prn|Tutti i file (*.*)|*.*||" + AFX_IDS_PRINTCAPTION, "Stampa su file" // caption for browse dlg + AFX_IDS_PRINTTOFILE, "su %1" // to file +END + +// Print Preview Accelerator Table +AFX_IDR_PREVIEW_ACCEL ACCELERATORS LOADONCALL MOVEABLE +BEGIN + VK_NEXT, AFX_ID_PREVIEW_NEXT, VIRTKEY, NOINVERT + VK_PRIOR, AFX_ID_PREVIEW_PREV, VIRTKEY, NOINVERT + VK_ESCAPE, AFX_ID_PREVIEW_CLOSE, VIRTKEY, NOINVERT +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXPRINT_RC__ diff --git a/public/sdk/inc/mfc42/l.ita/afxres.rc b/public/sdk/inc/mfc42/l.ita/afxres.rc new file mode 100644 index 000000000..58ab45d2a --- /dev/null +++ b/public/sdk/inc/mfc42/l.ita/afxres.rc @@ -0,0 +1,223 @@ +// 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. + +#ifndef __AFXRES_RC__ +#define __AFXRES_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Impossibile modificare le risorse MFC standard >\0 " +END +#endif //APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Default resource description for MFC applications +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// Strings + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_APPMENU_RESOURCES + AFX_IDS_OPENFILE, "Apri" +#ifndef _MAC + AFX_IDS_SAVEFILE, "Salva con nome" + AFX_IDS_ALLFILTER, "Tutti i file (*.*)" + AFX_IDS_UNTITLED, "Senza titolo" +#else + AFX_IDS_SAVEFILE, "Salva documento con nome:" + AFX_IDS_ALLFILTER, "Tutti i file" + AFX_IDS_UNTITLED, "senza titolo" + AFX_IDS_ABOUT, "Informazioni su %1\205" +#endif + AFX_IDS_HIDE, "&Nascondi" +#endif // !_AFX_NO_APPMENUSTRING_RESOURCES + + AFX_IDS_MEMORY_EXCEPTION, "Memoria insufficiente." + AFX_IDS_NOT_SUPPORTED_EXCEPTION,"È stata tentata un'operazione non supportata." + AFX_IDS_RESOURCE_EXCEPTION, "Una risorsa richiesta non era disponibile." + AFX_IDS_USER_EXCEPTION, "Si Š verificato un errore sconosciuto." + + // General error prompts +#ifndef _AFX_NO_FILECMD_RESOURCES + AFX_IDP_INVALID_FILENAME, "Nome file non valido." + AFX_IDP_FAILED_TO_OPEN_DOC, "Impossibile aprire il documento." + AFX_IDP_FAILED_TO_SAVE_DOC, "Impossibile salvare il documento." +#ifndef _MAC + AFX_IDP_ASK_TO_SAVE, "Salvare le modifiche a %1?" +#else + AFX_IDP_ASK_TO_SAVE, "Salvare le modifiche al documento %1 \042%2\042?" +#endif + AFX_IDP_FAILED_TO_CREATE_DOC, "Impossibile creare un documento vuoto." + AFX_IDP_FILE_TOO_LARGE, "Il file è troppo grande per essere aperto." + AFX_IDP_FAILED_TO_START_PRINT, "Impossibile avviare il lavoro di stampa." +#endif // !_AFX_NO_FILECMD_RESOURCES + AFX_IDP_FAILED_TO_LAUNCH_HELP, "Impossibile avviare la Guida." + AFX_IDP_INTERNAL_FAILURE, "Errore interno dell'applicazione." + AFX_IDP_COMMAND_FAILURE, "Comando non riuscito." + AFX_IDP_FAILED_MEMORY_ALLOC "Memoria insufficiente per eseguire l'operazione." + AFX_IDP_GET_NOT_SUPPORTED, "Impossibile leggere la proprietà in sola scrittura." + AFX_IDP_SET_NOT_SUPPORTED, "Impossibile scrivere la proprietà in sola lettura." + AFX_IDP_UNREG_DONE, "System registry entries have been removed and the INI file (if any) was deleted." + AFX_IDP_UNREG_FAILURE, "Not all of the system registry entries (or INI file) were removed." + + // CFile/CArchive error strings for user failure +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FAILED_INVALID_FORMAT "Formato file inatteso." +#ifndef _MAC + AFX_IDP_FAILED_INVALID_PATH "%1\nImpossibile trovare questo file.\nVerificare che siano stati forniti il percorso e il nome del file corretti." + AFX_IDP_FAILED_DISK_FULL "L'unità disco di destinazione è piena." +#else + AFX_IDP_FAILED_INVALID_PATH "Impossibile trovare il file \042%1.\042. Verificare che il nome del file sia corretto." + AFX_IDP_FAILED_DISK_FULL "Il disco di destinazione è pieno." +#endif + AFX_IDP_FAILED_ACCESS_READ "Impossibile leggere da %1, è già aperto da un altro utente." + AFX_IDP_FAILED_ACCESS_WRITE "Impossibile scrivere su %1, è di sola lettura o già aperto." + AFX_IDP_FAILED_IO_ERROR_READ "Errore inatteso durante la lettura di %1." + AFX_IDP_FAILED_IO_ERROR_WRITE "Errore inatteso durante la scrittura di %1." +#endif // !_AFX_NO_CFILE_RESOURCES + + // Parsing error prompts + AFX_IDP_PARSE_INT, "Digitare un numero intero." + AFX_IDP_PARSE_REAL, "Digitare un numero." + AFX_IDP_PARSE_INT_RANGE, "Digitare un numero intero compreso tra %1 e %2." + AFX_IDP_PARSE_REAL_RANGE, "Digitare un numero compreso tra %1 e %2." + AFX_IDP_PARSE_STRING_SIZE, "Non digitare più di %1 caratteri." + AFX_IDP_PARSE_RADIO_BUTTON, "Selezionare un pulsante." + AFX_IDP_PARSE_BYTE, "Digitare un intero compreso tra 0 e 255." + AFX_IDP_PARSE_UINT, "Digitare un numero intero positivo." + AFX_IDP_PARSE_DATETIME, "Digitare una data e/o un'ora." + AFX_IDP_PARSE_CURRENCY, "Digitare un tipo di valuta." + +#ifndef _AFX_NO_OLE_RESOURCES + // OLE strings required for both servers and containers + AFX_IDS_PASTELINKEDTYPE "Collegato %s" + AFX_IDS_UNKNOWNTYPE "Tipo sconosciuto" +#ifndef _MAC + AFX_IDP_FAILED_TO_NOTIFY "%1\nImpossibile registrare il documento.\nIl documento potrebbe essere già aperto." +#else + AFX_IDP_FAILED_TO_NOTIFY "Impossibile registrare il documento \042%1.\042. Il documento potrebbe essere già aperto." +#endif +#endif //!_AFX_NO_OLE_RESOURCES + + AFX_IDP_NO_ERROR_AVAILABLE "Nessun messaggio di errore è disponibile." + +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FILE_NONE "Non si è verificato alcun errore." + AFX_IDP_FILE_GENERIC "Si è verificato un errore sconosciuto durante l'accesso a %1." + AFX_IDP_FILE_NOT_FOUND "%1 non trovato." + AFX_IDP_FILE_BAD_PATH "%1 contiene un percorso non valido." + AFX_IDP_FILE_TOO_MANY_OPEN "Non è stato possibile aprire %1 poiché vi sono troppi file aperti." + AFX_IDP_FILE_ACCESS_DENIED "Accesso a %1 negato." + AFX_IDP_FILE_INVALID_FILE "Un gestore di file non valido è stato associato a %1." + AFX_IDP_FILE_REMOVE_CURRENT "Impossibile rimuovere %1 poiché è la directory corrente." + AFX_IDP_FILE_DIR_FULL "Impossibile creare %1 poiché la directory è piena." + AFX_IDP_FILE_BAD_SEEK "Ricerca fallita su %1" + AFX_IDP_FILE_HARD_IO "Nell'accesso a %1 è stato registrato un errore hardware di I/O. " + AFX_IDP_FILE_SHARING "Durante l'accesso a %1 si è verificata una violazione di condivisione." + AFX_IDP_FILE_LOCKING "Durante l'accesso a %1 si è verificata una violazione di blocco." + AFX_IDP_FILE_DISKFULL "Disco pieno durante l'accesso a %1." + AFX_IDP_FILE_EOF "È stato fatto un tentativo di accedere a %1 oltre la sua fine." + AFX_IDS_UNNAMED_FILE "un file senza nome" +#endif // !_AFX_NO_CFILE_RESOURCES + + AFX_IDP_ARCH_NONE "Non si è verificato alcun errore." + AFX_IDP_ARCH_GENERIC "Si è verificato un errore sconosciuto durante l'accesso a %1." + AFX_IDP_ARCH_READONLY "Si è tentato di scrivere sulla lettura %1." + AFX_IDP_ARCH_ENDOFFILE "È stato fatto un tentativo di accedere a %1 oltre la sua fine." + AFX_IDP_ARCH_WRITEONLY "Si è tentato di leggere dalla scrittura di %1." + AFX_IDP_ARCH_BADINDEX "Formato di %1 non valido." + AFX_IDP_ARCH_BADCLASS "%1 conteneva un oggetto inatteso." + AFX_IDP_ARCH_BADSCHEMA "%1 contiene uno schema errato." + +#ifndef _AFX_NO_MAPI_RESOURCES + // MAPI strings / error messages + AFX_IDP_FAILED_MAPI_LOAD "Impossibile caricare il supporto di sistema per la posta elettronica." + AFX_IDP_INVALID_MAPI_DLL "La DLL del sistema di posta elettronica non è valida." + AFX_IDP_FAILED_MAPI_SEND "Impossibile inviare un messaggio con il comando di invio." +#endif //!_AFX_NO_MAPI_RESOURCES + +#ifndef _AFX_NO_OCC_RESOURCES + AFX_IDS_OCC_SCALEUNITS_PIXELS "pixel" +#endif //!_AFX_NO_OCC_RESOURCES +END + +///////////////////////////////////////////////////////////////////////////// +// Cursors + +AFX_IDC_CONTEXTHELP CURSOR DISCARDABLE "res\\help.cur" + +#ifndef _AFX_NO_SPLITTER_RESOURCES +AFX_IDC_SMALLARROWS CURSOR DISCARDABLE "res\\sarrows.cur" +AFX_IDC_HSPLITBAR CURSOR DISCARDABLE "res\\splith.cur" +AFX_IDC_VSPLITBAR CURSOR DISCARDABLE "res\\splitv.cur" +AFX_IDC_NODROPCRSR CURSOR DISCARDABLE "res\\nodrop.cur" +#endif //!_AFX_NO_SPLITTER_RESOURCES + +#ifndef _AFX_NO_TRACKER_RESOURCES +AFX_IDC_TRACKNWSE CURSOR DISCARDABLE "res\\trcknwse.cur" +AFX_IDC_TRACKNESW CURSOR DISCARDABLE "res\\trcknesw.cur" +AFX_IDC_TRACKNS CURSOR DISCARDABLE "res\\trckns.cur" +AFX_IDC_TRACKWE CURSOR DISCARDABLE "res\\trckwe.cur" +AFX_IDC_TRACK4WAY CURSOR DISCARDABLE "res\\trck4way.cur" +AFX_IDC_MOVE4WAY CURSOR DISCARDABLE "res\\move4way.cur" +#endif //!_AFX_NO_TRACKER_RESOURCES + +#ifndef _AFX_NO_CTL3D_RESOURCES +26567 BITMAP "res\\3dcheck.bmp" // Note: 26567 comes from CTL3D.H +#endif + +///////////////////////////////////////////////////////////////////////////// +// Standard Dialogs + +#ifndef _AFX_NO_NEWTYPEDLG_RESOURCES +AFX_IDD_NEWTYPEDLG DIALOG DISCARDABLE 9, 26, 183, 70 +#ifndef _MAC +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | 0x04 +#else +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION +#endif +CAPTION "Nuovo" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Nuovo",IDC_STATIC,6,5,123,8,NOT WS_GROUP + LISTBOX AFX_IDC_LISTBOX,6,15,125,49,WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,137,6,40,14 + PUSHBUTTON "Annulla",IDCANCEL,137,23,40,14 + PUSHBUTTON "&?",ID_HELP,137,43,40,14 +END +#endif // !_AFX_NO_NEWTYPEDLG_RESOURCES + +///////////////////////////////////////////////////////////////////////////// +// CMiniFrameWnd Bitmap + +AFX_IDB_MINIFRAME_MENU BITMAP DISCARDABLE "res\\minifwnd.bmp" + +///////////////////////////////////////////////////////////////////////////// +// CCheckListBox Bitmaps + +AFX_IDB_CHECKLISTBOX_NT BITMAP DISCARDABLE "res\\ntcheck.bmp" +AFX_IDB_CHECKLISTBOX_95 BITMAP DISCARDABLE "res\\95check.bmp" + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //!__AFXRES_RC__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/l.jpn/afxctl.rc b/public/sdk/inc/mfc42/l.jpn/afxctl.rc new file mode 100644 index 000000000..083d5852f --- /dev/null +++ b/public/sdk/inc/mfc42/l.jpn/afxctl.rc @@ -0,0 +1,284 @@ +// 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. + +#ifndef __AFXCTL_RC__ +#define __AFXCTL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< •W€ MFC Ø¿°½‚Ì•ÏX‚Í‚Å‚«‚Ü‚¹‚ñ! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Control Resources + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +AFX_IDB_TRUETYPE BITMAP DISCARDABLE "RES\\TRUETYPE.BMP" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +AFX_IDD_PROPPAGE_FONT DIALOG DISCARDABLE 13, 54, 250, 110 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "ÌßÛÊßè–¼(&N):",IDC_STATIC,3,5,61,8 + COMBOBOX AFX_IDC_FONTPROP,65,3,100,71,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + LTEXT "Ì«ÝÄ–¼(&F):",IDC_STATIC,3,19,91,8 + COMBOBOX AFX_IDC_FONTNAMES,3,29,91,77,CBS_SIMPLE | + CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | + CBS_HASSTRINGS | CBS_DISABLENOSCROLL | WS_VSCROLL | + WS_TABSTOP + LTEXT "½À²Ù(&Y):",IDC_STATIC,102,19,53,8 + COMBOBOX AFX_IDC_FONTSTYLES,104,29,53,53,CBS_DROPDOWNLIST | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + LTEXT "»²½Þ(&S):",IDC_STATIC,167,19,40,8 + COMBOBOX AFX_IDC_FONTSIZES,167,29,36,53,CBS_DROPDOWN | CBS_SORT | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + GROUPBOX "•¶Žšü‚è",IDC_STATIC,104,44,142,24,WS_GROUP + CONTROL "Žæ‚èÁ‚µü(&K)",AFX_IDC_STRIKEOUT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,109,55,65,10 + CONTROL "‰ºü(&U)",AFX_IDC_UNDERLINE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,175,55,65,10 + GROUPBOX "»ÝÌßÙ",IDC_STATIC,104,71,142,36,WS_GROUP + CTEXT "AaBbYyZz",AFX_IDC_SAMPLEBOX,110,80,130,22,SS_NOPREFIX | + NOT WS_VISIBLE +END + +AFX_IDD_PROPPAGE_COLOR DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "ÌßÛÊßè–¼(&N):",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_COLORPROP,3,13,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "¼½ÃÑ ¶×°(&C):",IDC_STATIC,3,29,100,8 + COMBOBOX AFX_IDC_SYSTEMCOLORS,3,39,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + CONTROL "",AFX_IDC_COLOR_BLACK,"Button",BS_OWNERDRAW | WS_GROUP | + WS_TABSTOP,118,4,15,11 + CONTROL "",AFX_IDC_COLOR_BLUE,"Button",BS_OWNERDRAW,138,4,15,11 + CONTROL "",AFX_IDC_COLOR_CYAN,"Button",BS_OWNERDRAW,158,4,15,11 + CONTROL "",AFX_IDC_COLOR_DARKBLUE,"Button",BS_OWNERDRAW,178,4,15, + 11 + CONTROL "",AFX_IDC_COLOR_DARKCYAN,"Button",BS_OWNERDRAW,118,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKGREEN,"Button",BS_OWNERDRAW,138,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKMAGENTA,"Button",BS_OWNERDRAW,158, + 18,15,11 + CONTROL "",AFX_IDC_COLOR_GRAY,"Button",BS_OWNERDRAW,178,18,15,11 + CONTROL "",AFX_IDC_COLOR_DARKRED,"Button",BS_OWNERDRAW,118,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_GREEN,"Button",BS_OWNERDRAW,138,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_LIGHTBROWN,"Button",BS_OWNERDRAW,158,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_LIGHTGRAY,"Button",BS_OWNERDRAW,178,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_MAGENTA,"Button",BS_OWNERDRAW,118,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_RED,"Button",BS_OWNERDRAW,138,46,15,11 + CONTROL "",AFX_IDC_COLOR_WHITE,"Button",BS_OWNERDRAW,158,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_YELLOW,"Button",BS_OWNERDRAW,178,46,15, + 11 +END + +AFX_IDD_PROPPAGE_PICTURE DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "ÌßÛÊßè–¼(&N):",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_PROPNAME,3,13,100,30,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "ŽQÆ(&B)...",AFX_IDC_BROWSE,3,35,54,14 + PUSHBUTTON "¸Ø±(&C)",AFX_IDC_CLEAR,61,35,54,14 + RTEXT "ÌßÚËÞ°:",IDC_STATIC,107,3,42,16 + CONTROL "",AFX_IDC_PICTURE,"Static",SS_BLACKFRAME,151,4,93,54 +END + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +AFX_IDD_PROPPAGE_FONT DLGINIT +BEGIN + 1002, 0x403, 12, 0 +0x6f42, 0x646c, 0x4920, 0x6174, 0x696c, 0x0063, + 0 +END + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PROPPAGE_UNKNOWN "(Unknown)" + AFX_IDS_COLOR_DESKTOP "ÃÞ½¸Ä¯Ìß" + AFX_IDS_COLOR_APPWORKSPACE "ì‹Æ‚·‚é—̈æ" + AFX_IDS_COLOR_WNDBACKGND "³¨ÝÄÞ³‚Ì”wŒi" + AFX_IDS_COLOR_WNDTEXT "³¨ÝÄÞ³“à‚Ì•¶Žš" + AFX_IDS_COLOR_MENUBAR "ÒÆ° ÊÞ°" + AFX_IDS_COLOR_MENUTEXT "ÒÆ°‚Ì•¶Žš" + AFX_IDS_COLOR_ACTIVEBAR "±¸Ã¨ÌÞ À²ÄÙ ÊÞ°" + AFX_IDS_COLOR_INACTIVEBAR "”ñ±¸Ã¨ÌÞ À²ÄÙ ÊÞ°" + AFX_IDS_COLOR_ACTIVETEXT "±¸Ã¨ÌÞ À²ÄÙ ÊÞ°‚Ì•¶Žš" + AFX_IDS_COLOR_INACTIVETEXT "”ñ±¸Ã¨ÌÞ À²ÄÙ ÊÞ°‚Ì•¶Žš" + AFX_IDS_COLOR_ACTIVEBORDER "±¸Ã¨ÌÞ ³¨ÝÄÞ³‚Ì‹«ŠE" + AFX_IDS_COLOR_INACTIVEBORDER "”ñ±¸Ã¨ÌÞ ³¨ÝÄÞ³‚Ì‹«ŠE" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_WNDFRAME "³¨ÝÄÞ³‚̘g" + AFX_IDS_COLOR_SCROLLBARS "½¸Û°Ù ÊÞ°" + AFX_IDS_COLOR_BTNFACE "ÎÞÀÝ‚Ì•\–Ê" + AFX_IDS_COLOR_BTNSHADOW "ÎÞÀ݂̉e" + AFX_IDS_COLOR_BTNTEXT "ÎÞÀÝ‚Ì•¶Žš" + AFX_IDS_COLOR_BTNHIGHLIGHT "”½“]•\Ž¦‚ÌÎÞÀÝ" + AFX_IDS_COLOR_DISABLEDTEXT "’WF•\Ž¦‚Ì•¶Žš" + AFX_IDS_COLOR_HIGHLIGHT "”½“]•\Ž¦" + AFX_IDS_COLOR_HIGHLIGHTTEXT "”½“]•\Ž¦‚Ì•¶Žš" + AFX_IDS_REGULAR "•W€" + AFX_IDS_BOLD "‘¾Žš" + AFX_IDS_ITALIC "ŽÎ‘Ì" + AFX_IDS_BOLDITALIC "‘¾ŽšŽÎ‘Ì" + AFX_IDS_SAMPLETEXT "AaBbYyZz" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_DISPLAYSTRING_FONT "(Ì«ÝÄ)" + AFX_IDS_DISPLAYSTRING_COLOR "(F)" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_DISPLAYSTRING_PICTURE "(Ë߸Á¬ - %s)" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTUREFILTER "All Picture Types|*.bmp;*.cur;*.dib;*.emf;*.ico;*.wmf|Bitmaps (*.bmp;*.dib)|*.bmp;*.dib|Icons/Cursors (*.ico;*.cur)|*.ico;*.cur|Metafiles (*.wmf;*.emf)|*.wmf;*.emf|All files (*.*)|*.*||" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTYPE_UNKNOWN "Unknown" + AFX_IDS_PICTYPE_NONE "‚È‚µ" + AFX_IDS_PICTYPE_BITMAP "ËÞ¯ÄϯÌß" + AFX_IDS_PICTYPE_METAFILE "ÒÀ̧²Ù" + AFX_IDS_PICTYPE_ICON "±²ºÝ" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_PPG "¶×° ÌßÛÊßè Íß°¼Þ" + AFX_IDS_COLOR_PPG_CAPTION "¶×°" + AFX_IDS_FONT_PPG "Ì«ÝÄ ÌßÛÊßè Íß°¼Þ" + AFX_IDS_FONT_PPG_CAPTION "Ì«ÝÄ" + AFX_IDS_PICTURE_PPG "Ë߸Á¬ ÌßÛÊßè Íß°¼Þ" + AFX_IDS_PICTURE_PPG_CAPTION "Ë߸Á¬" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_BORDERSTYLE_0 "0 - ‚È‚µ" + AFX_IDS_BORDERSTYLE_1 "1 - ŒÅ’è(ŽÀü)" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_VERB_EDIT "•ÒW(&E)" + AFX_IDS_VERB_PROPERTIES "ÌßÛÊßè(&P)..." +END + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_PICTURECANTOPEN "Ë߸Á¬ ̧²Ù %1 ‚ðÛ°ÄÞ‚Å‚«‚Ü‚¹‚ñB̧²Ù‚ª‘¶Ý‚µ‚È‚¢‚©A“Ç‚Ýž‚ß‚È‚¢‰Â”\«‚ª‚ ‚è‚Ü‚·B" + AFX_IDP_PICTURECANTLOAD "Ë߸Á¬ ̧²Ù %1 ‚ðÛ°ÄÞ‚Å‚«‚Ü‚¹‚ñB ̧²ÙŒ`Ž®‚ª³‚µ‚‚È‚¢‰Â”\«‚ª‚ ‚è‚Ü‚·B" + AFX_IDP_PICTURETOOLARGE "Ë߸Á¬ ̧²Ù %1 ‚ðÛ°ÄÞ‚Å‚«‚Ü‚¹‚ñB ̧²Ù‚ª‘å‚«‚·‚¬‚Ü‚·B" + AFX_IDP_PICTUREREADFAILED + "Ë߸Á¬ ̧²Ù %1 ‚ðÛ°ÄÞ‚Å‚«‚Ü‚¹‚ñB “Ç‚Ýž‚Ý‚Å´×°‚ª”¶‚µ‚Ü‚µ‚½B" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PICTUREBROWSETITLE "Ë߸Á¬ ‚ÌŽQÆ" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +#ifndef _AFX_NO_CTLERROR_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_ILLEGALFUNCTIONCALL "ŠÖ”ŒÄ‚Ño‚µ‚ª³‚µ‚‚ ‚è‚Ü‚¹‚ñB" + AFX_IDP_E_OVERFLOW "µ°ÊÞ°ÌÛ°‚µ‚Ü‚µ‚½B" + AFX_IDP_E_OUTOFMEMORY "ÒÓØ‚ª•s‘«‚µ‚Ä‚¢‚Ü‚·B" + AFX_IDP_E_DIVISIONBYZERO "¾ÞÛ‚ÅœŽZ‚µ‚Ü‚µ‚½B" + AFX_IDP_E_OUTOFSTRINGSPACE "•¶Žš—ñ—̈悪•s‘«‚µ‚Ä‚¢‚Ü‚·B" + AFX_IDP_E_OUTOFSTACKSPACE "½À¯¸—̈悪•s‘«‚µ‚Ä‚¢‚Ü‚·B" + AFX_IDP_E_BADFILENAMEORNUMBER "̧²Ù–¼‚Ü‚½‚͔Ԇ‚ª•s³‚Å‚·B" + AFX_IDP_E_FILENOTFOUND "̧²Ù‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB" + AFX_IDP_E_BADFILEMODE "̧²Ù Ó°ÄÞ‚ª•s³‚Å‚·B" + AFX_IDP_E_FILEALREADYOPEN "̧²Ù‚ÍŠù‚ÉŠJ‚©‚ê‚Ä‚¢‚Ü‚·B" + AFX_IDP_E_DEVICEIOERROR "ÃÞÊÞ²½ I/O ´×°‚Å‚·B" + AFX_IDP_E_FILEALREADYEXISTS "Šù‚É“¯–¼‚Ì̧²Ù‚ª‘¶Ý‚µ‚Ä‚¢‚Ü‚·B" + AFX_IDP_E_BADRECORDLENGTH "Úº°ÄÞ’·‚ªˆê’v‚µ‚Ü‚¹‚ñB" + AFX_IDP_E_DISKFULL "ÃÞ¨½¸‚Ì‹ó‚«—e—Ê‚ª•s‘«‚µ‚Ä‚¢‚Ü‚·B" + AFX_IDP_E_BADRECORDNUMBER "Úº°ÄÞ”Ô†‚ª•s³‚Å‚·B" + AFX_IDP_E_BADFILENAME "̧²Ù–¼‚ª³‚µ‚‚ ‚è‚Ü‚¹‚ñB" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_TOOMANYFILES "̧²Ù‚ª‘½‚·‚¬‚Ü‚·B" + AFX_IDP_E_DEVICEUNAVAILABLE "ÃÞÊÞ²½‚ª€”õ‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB" + AFX_IDP_E_PERMISSIONDENIED "±¸¾½‚Í‹‘”Û‚³‚ê‚Ü‚µ‚½B" + AFX_IDP_E_DISKNOTREADY "ÃÞ¨½¸‚ª€”õ‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB" + AFX_IDP_E_PATHFILEACCESSERROR "Êß½–¼‚ª–³Œø‚Å‚·B" + AFX_IDP_E_PATHNOTFOUND "Êß½‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB" + AFX_IDP_E_INVALIDPATTERNSTRING "ÊßÀ°Ý•¶Žš—ñ‚ª•s³‚Å‚·B" + AFX_IDP_E_INVALIDUSEOFNULL "null •¶Žš‚ÌŽg‚¢•û‚ª•s³‚Å‚·B" + AFX_IDP_E_INVALIDFILEFORMAT "̧²ÙŒ`Ž®‚ª•s³‚Å‚·B" + AFX_IDP_E_INVALIDPROPERTYVALUE "ÌßÛÊßè‚Ì’l‚ª•s³‚Å‚·B" + AFX_IDP_E_INVALIDPROPERTYARRAYINDEX "”z—ñ‚Ì“Y‚¦Žš‚ª•s³‚Å‚·B" + AFX_IDP_E_SETNOTSUPPORTEDATRUNTIME "‚±‚ÌÌßÛÊßè‚Ì’l‚ÍŽÀsŽž‚É‚ÍÝ’è‚Å‚«‚Ü‚¹‚ñB" + AFX_IDP_E_SETNOTSUPPORTED "‚±‚ÌÌßÛÊßè‚Í’l‚̎擾‚̂݉”\‚Å‚·B" + AFX_IDP_E_NEEDPROPERTYARRAYINDEX + "ÌßÛÊßè”z—ñ‚ɂͲÝÃÞ¯¸½‚ðŽw’肵‚Ä‚‚¾‚³‚¢B" + AFX_IDP_E_SETNOTPERMITTED "‚±‚̺ÝÄÛ°Ù‚ÌÌßÛÊßè‚ÍÝ’è‚Å‚«‚Ü‚¹‚ñB" + AFX_IDP_E_GETNOTSUPPORTEDATRUNTIME "‚±‚ÌÌßÛÊßè‚Ì’l‚ÍŽÀsŽž‚ɂ͎擾‚Å‚«‚Ü‚¹‚ñB" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_GETNOTSUPPORTED "‚±‚ÌÌßÛÊßè‚ÍÝ’è‚̂݉”\‚Å‚·B" + AFX_IDP_E_PROPERTYNOTFOUND "ÌßÛÊß肪Œ©‚‚©‚è‚Ü‚¹‚ñB" + AFX_IDP_E_INVALIDCLIPBOARDFORMAT "¸Ø¯ÌßÎÞ°ÄÞ‚ÌÃÞ°ÀŒ`Ž®‚ª•s³‚Å‚·B" + AFX_IDP_E_INVALIDPICTURE "Ë߸Á¬‚ª•s³‚Å‚·B" + AFX_IDP_E_PRINTERERROR "ÌßØÝÀ‚Ì´×°‚Å‚·B" + AFX_IDP_E_CANTSAVEFILETOTEMP + "•Û‘¶‚É•K—v‚ÈÃÝÎß×Ø Ì§²Ù‚ð쬂ł«‚Ü‚¹‚ñB" + AFX_IDP_E_SEARCHTEXTNOTFOUND "ŒŸõ•¶Žš—ñ‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB" + AFX_IDP_E_REPLACEMENTSTOOLONG "’uŠ·•¶Žš—ñ‚ª’·‚·‚¬‚Ü‚·B" +END +#endif //!_AFX_NO_CTLERROR_RESOURCES + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.jpn/afxdb.rc b/public/sdk/inc/mfc42/l.jpn/afxdb.rc new file mode 100644 index 000000000..b8e350c34 --- /dev/null +++ b/public/sdk/inc/mfc42/l.jpn/afxdb.rc @@ -0,0 +1,103 @@ +// 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. + +#ifndef __AFXDB_RC__ +#define __AFXDB_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< •W€ MFC Ø¿°½‚Ì•ÏX‚Í‚Å‚«‚Ü‚¹‚ñ! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Database Resources + +// Database strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_SQL_CONNECT_FAIL + "ÃÞ°À¿°½‚Ö‚ÌÚ‘±‚ÉŽ¸”s‚µ‚Ü‚µ‚½B" + AFX_IDP_SQL_RECORDSET_FORWARD_ONLY + "Úº°ÄÞ¾¯Ä‚ł̈ړ®‚͇•ûŒü‚Ì‚Ý»Îß°Ä‚³‚ê‚Ä‚¢‚Ü‚·B" + AFX_IDP_SQL_EMPTY_COLUMN_LIST + "ŒŸõ‚·‚é—ñ‚ªŽw’肳‚ê‚Ä‚¢‚È‚¢‚½‚ßAðÌÞÙ‚ðŠJ‚¯‚Ü‚¹‚ñ‚Å‚µ‚½B" + AFX_IDP_SQL_FIELD_SCHEMA_MISMATCH + "¸´Ø°‚Å—\Šú‚¹‚Ê—ñ‚ÌÃÞ°À À²Ìß‚ª•Ô‚³‚ê‚Ü‚µ‚½B" + AFX_IDP_SQL_ILLEGAL_MODE "XV‚Ü‚½‚Í휂Ɏ¸”s‚µ‚Ü‚µ‚½B" + AFX_IDP_SQL_MULTIPLE_ROWS_AFFECTED "•¡”‚Ìs‚ªXV‚³‚ê‚Ü‚µ‚½B" + AFX_IDP_SQL_NO_CURRENT_RECORD "¶ÚÝÄ Úº°ÄÞ‚ª‚È‚¢‚½‚ßA‘€ì‚ÉŽ¸”s‚µ‚Ü‚µ‚½B" + AFX_IDP_SQL_NO_ROWS_AFFECTED + "XV‚Ü‚½‚Í휑€ì‚ÌŒ‹‰ÊA•ÏX‚ð‚¤‚¯‚½s‚Í‚ ‚è‚Ü‚¹‚ñB" + AFX_IDP_SQL_RECORDSET_READONLY "Úº°ÄÞ¾¯Ä‚Íã‘‚«‹ÖŽ~‚Å‚·B" + AFX_IDP_SQL_SQL_NO_TOTAL + "ODBC ÄÞײÊÞ‚Í MFC LongBinary ÃÞ°À ÓÃÞÙ‚ðˆµ‚¦‚Ü‚¹‚ñB" + AFX_IDP_SQL_ODBC_LOAD_FAILED + "ODBC32.DLL ‚ÌÛ°ÄÞ‚ÉŽ¸”s‚µ‚Ü‚µ‚½B" + AFX_IDP_SQL_DYNASET_NOT_SUPPORTED + "ODBC ÄÞײÊÞ‚Í dynasets ‚ðˆµ‚¦‚Ü‚¹‚ñB" + AFX_IDP_SQL_SNAPSHOT_NOT_SUPPORTED + "ODBC ½À诸 ¶°¿Ù‚ɂͽůÌß¼®¯Ä‚Ì»Îß°Ä‚ª•K—v‚Å‚·B" + AFX_IDP_SQL_API_CONFORMANCE + "ODBC ÄÞײÊÞ‚Í MFC ÃÞ°ÀÍÞ°½ ¸×½‚ƌ݊·«‚ª‚ ‚è‚Ü‚¹‚ñ (API_CONFORMANCE >= SQL_OAC_LEVEL1 ‚ª•K—v‚Å‚·)B" + AFX_IDP_SQL_SQL_CONFORMANCE + "ODBC ÄÞײÊÞ‚Í MFC ÃÞ°ÀÍÞ°½ ¸×½‚ƌ݊·«‚ª‚ ‚è‚Ü‚¹‚ñ (SQL_CONFORMANCE >= SQL_OSC_MINIMUM ‚ª•K—v‚Å‚·)B" + AFX_IDP_SQL_NO_DATA_FOUND + "ÃÞ°À‚ÌI’[‚Ü‚½‚Í擪‚ð’´‚¦‚Ľ¸Û°Ù‚µ‚悤‚Æ‚µ‚Ä‚¢‚Ü‚·B" + AFX_IDP_SQL_ROW_UPDATE_NOT_SUPPORTED + "Dynasets ‚Í ODBC ÄÞײÊÞ‚Å»Îß°Ä‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB" + AFX_IDP_SQL_ODBC_V2_REQUIRED + "ODBC Level 2 ‚É€‹’‚µ‚½ÄÞײÊÞ‚ª•K—v‚Å‚·B" + AFX_IDP_SQL_NO_POSITIONED_UPDATES + "“Á’è‚̈ʒu‚ÌXV‚Í ODBC ÄÞײÊÞ‚Å»Îß°Ä‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB" + AFX_IDP_SQL_LOCK_MODE_NOT_SUPPORTED + "—v‹‚µ‚½Û¯¸ Ó°ÄÞ‚Í»Îß°Ä‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB" + AFX_IDP_SQL_DATA_TRUNCATED + "ÃÞ°À‚ÍØ‚èŽÌ‚Ä‚ç‚ê‚Ü‚µ‚½B" + AFX_IDP_SQL_ROW_FETCH + "Úº°ÄÞ‚ÌŒŸõ´×°B" + AFX_IDP_SQL_INCORRECT_ODBC + "—v‹‚µ‚½ ODBC ´ÝÄØ° Îß²ÝÄ‚ÍŒ©‚‚©‚è‚Ü‚¹‚ñBODBC ÄÞײÊÞ‚ª³‚µ‚²Ý½Ä°Ù‚³‚ꂽ‚©Šm”F‚µ‚Ä‚‚¾‚³‚¢B" + AFX_IDP_SQL_UPDATE_DELETE_FAILED + "XV–”‚Í휑€ì‚ÍŽ¸”s‚µ‚Ü‚µ‚½B" + AFX_IDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED + "ÀÞ²ÅЯ¸ ¶°¿Ù‚Í ODBC ÄÞײÊÞ‚Å‚Í»Îß°Ä‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB" + AFX_IDP_SQL_FIELD_NOT_FOUND + "Invalid field name or field index." + AFX_IDP_SQL_BOOKMARKS_NOT_SUPPORTED + "Bookmarks not supported for ODBC driver." + AFX_IDP_SQL_BOOKMARKS_NOT_ENABLED + "Bookmarks not enabled on recordset." + AFX_IDP_DAO_ENGINE_INITIALIZATION + "DAO/Jet db ´Ý¼ÞÝ‚ð‰Šú‰»‚Å‚«‚Ü‚¹‚ñB" + AFX_IDP_DAO_DFX_BIND + "DFX ‚ÌÊß×Ò°À’l‚ª³‚µ‚‚ ‚è‚Ü‚¹‚ñB" + AFX_IDP_DAO_OBJECT_NOT_OPEN + "DAO TableDef ‚Ü‚½‚Í QueryDef ‚ªŠJ‚¯‚Ü‚¹‚ñB" + AFX_IDP_DAO_ROWTOOSHORT + "GetRows ‚ÉŽ¸”s‚µ‚Ü‚µ‚½Bs‚ÉŠ„‚è“–‚Ä‚é\•ª‚ÈÒÓØ‚ª‚ ‚è‚Ü‚¹‚ñB" + AFX_IDP_DAO_BADBINDINFO + "GetRows ÊÞ²ÝÃÞ¨Ý¸Þ ´×°B datatype ‚ª‡‚Á‚Ä‚¢‚È‚¢‚©‚à‚µ‚ê‚Ü‚¹‚ñB" + AFX_IDP_DAO_COLUMNUNAVAILABLE + "GetRows ‚ÉŽ¸”s‚µ‚Ü‚µ‚½B —v‹‚³‚ꂽ—ñ‚Í‚±‚ÌÚº°ÄÞ¾¯Ä‚ÌÒÝÊÞ‚Å‚Í‚ ‚è‚Ü‚¹‚ñB" +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXDB_RC__ diff --git a/public/sdk/inc/mfc42/l.jpn/afxolecl.rc b/public/sdk/inc/mfc42/l.jpn/afxolecl.rc new file mode 100644 index 000000000..893cc93f9 --- /dev/null +++ b/public/sdk/inc/mfc42/l.jpn/afxolecl.rc @@ -0,0 +1,66 @@ +// 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. + +#ifndef __AFXOLECL_RC__ +#define __AFXOLECL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifndef _INC_DLGS + #include <dlgs.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< •W€ MFC Ø¿°½‚Ì•ÏX‚Í‚Å‚«‚Ü‚¹‚ñ! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Client Resources + +///////////////////////////////////////////////////////////////////////////// +// OLE strings + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_STATIC_OBJECT "Œx —\Šú‚µ‚È‚¢½À诸 µÌÞ¼Þª¸Ä‚Å‚·B" + AFX_IDP_FAILED_TO_CONNECT "Ú‘±‚ÉŽ¸”s‚µ‚Ü‚µ‚½B\nØݸ‚ª‰ó‚ê‚Ä‚¢‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B" + AFX_IDP_SERVER_BUSY "ºÏÝÄÞ‚ðŽÀs‚Å‚«‚Ü‚¹‚ñB»°ÊÞ°‚ªËÞ¼Þ°‚Å‚·B" + AFX_IDP_BAD_VERB "»°ÊÞ°‚Ì‘€ì‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" + AFX_IDP_FAILED_TO_LAUNCH "»°ÊÞ° ±Ìßع°¼®Ý‚ð‹N“®‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" + AFX_IDS_UPDATING_ITEMS "OLE µÌÞ¼Þª¸Ä‚ðXV‚µ‚Ä‚¢‚Ü‚·" + AFX_IDP_FAILED_TO_CONVERT "OLE µÌÞ¼Þª¸Ä‚Ì•ÏŠ·‚ÉŽ¸”s‚µ‚Ü‚µ‚½B" + AFX_IDP_ASK_TO_DISCARD "Windows ‚ÌI—¹Žž‚É OLE µÌÞ¼Þª¸Ä‚ð•Û‘¶‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB\n%1 ‚Ö‚Ì‚·‚ׂĂ̕ÏX‚ð”pŠü‚µ‚Ü‚·‚©H" + AFX_IDP_FAILED_TO_CREATE "µÌÞ¼Þª¸Ä‚Ì쬂Ɏ¸”s‚µ‚Ü‚µ‚½B¼½ÃÑ Ú¼Þ½Ä؂ɱÌßع°¼®Ý‚ª“o˜^‚³‚ê‚Ä‚¢‚é‚©Šm”F‚µ‚Ä‚‚¾‚³‚¢" + + AFX_IDS_METAFILE_FORMAT "Ë߸Á¬ (ÒÀ̧²Ù)\nË߸Á¬" + AFX_IDS_DIB_FORMAT "ÃÞÊÞ²½‚Ɉˑ¶‚µ‚È‚¢ËÞ¯ÄϯÌß\nÃÞÊÞ²½”ñˆË‘¶ËÞ¯ÄϯÌß" + AFX_IDS_BITMAP_FORMAT "ËÞ¯ÄϯÌß\nËÞ¯ÄϯÌß" + AFX_IDS_LINKSOURCE_FORMAT "%s\n%s" + AFX_IDS_EMBED_FORMAT "%s\n%s" + AFX_IDS_RTF_FORMAT "‘Ž®•t‚«Ã·½Ä (RTF)\nدÁ ÷½Ä" + AFX_IDS_TEXT_FORMAT "‘Ž®‚È‚µÃ·½Ä\n÷½Ä" + + AFX_IDS_INVALID_CURRENCY "–³Œø‚Ȓʉ݌^‚Å‚·B" + AFX_IDS_INVALID_DATETIME "–³Œø‚È“ú•t‚ÆŽžŠÔ‚Å‚·B" + AFX_IDS_INVALID_DATETIMESPAN "–³Œø‚ÈŠúŠÔ‚Å‚·B" +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.jpn/afxolesv.rc b/public/sdk/inc/mfc42/l.jpn/afxolesv.rc new file mode 100644 index 000000000..5ca7083bc --- /dev/null +++ b/public/sdk/inc/mfc42/l.jpn/afxolesv.rc @@ -0,0 +1,53 @@ +// 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. + +#ifndef __AFXOLESV_RC__ +#define __AFXOLESV_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< •W€ MFC Ø¿°½‚Ì•ÏX‚Í‚Å‚«‚Ü‚¹‚ñ! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Server Resources + +// OLE strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_ASK_TO_UPDATE, "æ‚É %1 ‚ðXV‚µ‚Ü‚·‚©H" + AFX_IDP_FAILED_TO_UPDATE, "¸×²±ÝÄ‚ðXV‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" + + AFX_IDP_FAILED_TO_REGISTER, "“o˜^‚ÉŽ¸”s‚µ‚Ü‚µ‚½BOLE ‚Ì‹@”\‚ͳí‚É“®ì‚µ‚È‚¢‰Â”\«‚ª‚ ‚è‚Ü‚·B" + AFX_IDP_FAILED_TO_AUTO_REGISTER, "¼½ÃÑ Ú¼Þ½ÄØ‚ÌXV‚ÉŽ¸”s‚µ‚Ü‚µ‚½B\nREGEDIT ‚ðŽg—p‚µ‚ÄXV‚µ‚Ä‚‚¾‚³‚¢B" +END + +STRINGTABLE PRELOAD +BEGIN + AFX_IDS_APP_TITLE_EMBEDDING, "%2 “à‚Ì %1" + AFX_IDS_OBJ_TITLE_INPLACE, "%1 - %2" + AFX_IDS_EXIT_MENU, "I—¹‚µ‚Ä %1 ‚É–ß‚é(&X)" + AFX_IDS_UPDATE_MENU, "%1 ‚ðXV(&U)" + AFX_IDS_SAVEFILECOPY, "–¼‘O‚ð•t‚¯‚Ä•Û‘¶" +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLESV_RC__ diff --git a/public/sdk/inc/mfc42/l.jpn/afxprint.rc b/public/sdk/inc/mfc42/l.jpn/afxprint.rc new file mode 100644 index 000000000..e1864d2ef --- /dev/null +++ b/public/sdk/inc/mfc42/l.jpn/afxprint.rc @@ -0,0 +1,130 @@ +// 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. + +#ifndef __AFXPRINT_RC__ +#define __AFXPRINT_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< •W€ MFC Ø¿°½‚Ì•ÏX‚Í‚Å‚«‚Ü‚¹‚ñ! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Printing Resources + +AFX_IDC_MAGNIFY CURSOR DISCARDABLE "res\\magnify.cur" + +#ifndef _MAC +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | 0x04 +#else +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 84 +STYLE DS_MODALFRAME | WS_POPUP +#endif +FONT 8, "MS Shell Dlg" +BEGIN + CTEXT "ˆóü’†",IDC_STATIC,0,9,133,8 + CTEXT "",AFX_IDC_PRINT_DOCNAME,0,19,133,8 +#ifndef _MAC + CTEXT "‚ð",IDC_STATIC,0,29,133,8 + CTEXT "",AFX_IDC_PRINT_PRINTERNAME,0,39,133,8 + CTEXT "",AFX_IDC_PRINT_PORTNAME,0,49,133,8 + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,59,133,8 + PUSHBUTTON "·¬Ý¾Ù",IDCANCEL,46,74,40,14 +#else + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,30,133,8 + PUSHBUTTON "·¬Ý¾Ù",IDCANCEL,46,45,40,15 + CTEXT "<Cmd>-. ·°‚ð‰Ÿ‚·‚Æ·¬Ý¾Ù‚µ‚Ü‚·B",IDC_STATIC,0,63,133,16 +#endif +END + +// Preview Toolbar Dialog +#ifndef _MAC +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 330, 16 +STYLE WS_CHILD | 0x04 +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "ˆóü(&P)...",AFX_ID_PREVIEW_PRINT,2,2,44,12 + PUSHBUTTON "ŽŸÍß°¼Þ(&N)",AFX_ID_PREVIEW_NEXT,48,2,44,12 + PUSHBUTTON "‘OÍß°¼Þ(&V)",AFX_ID_PREVIEW_PREV,94,2,44,12 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,140,2,44,12 + PUSHBUTTON "½Þ°Ñ ²Ý(&I)",AFX_ID_PREVIEW_ZOOMIN,186,2,44,12 + PUSHBUTTON "½Þ°Ñ ±³Ä(&O)",AFX_ID_PREVIEW_ZOOMOUT,232,2,44,12 + PUSHBUTTON "•Â‚¶‚é(&C)",AFX_ID_PREVIEW_CLOSE,278,2,44,12 +END +#else +// standard toolbar for 14 inch and larger screens +// width *must* be 320 or less so that this is used on 640x480 screens +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 320, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "ˆóü(&P)...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "ŽŸÍß°¼Þ(&N)",AFX_ID_PREVIEW_NEXT,46,2,44,15 + PUSHBUTTON "‘OÍß°¼Þ(&V)",AFX_ID_PREVIEW_PREV,91,2,44,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,136,2,44,15 + PUSHBUTTON "½Þ°Ñ ²Ý(&I)",AFX_ID_PREVIEW_ZOOMIN,181,2,44,15 + PUSHBUTTON "½Þ°Ñ ±³Ä(&O)",AFX_ID_PREVIEW_ZOOMOUT,226,2,44,15 + PUSHBUTTON "•Â‚¶‚é(&C)",AFX_ID_PREVIEW_CLOSE,271,2,44,15 +END + +// short toolbar for 9 inch and 12 inch screens +AFX_IDD_PREVIEW_SHORTTOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 270, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "ˆóü(&P)...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "ŽŸ(&N)",AFX_ID_PREVIEW_NEXT,46,2,29,15 + PUSHBUTTON "‘O(&V)",AFX_ID_PREVIEW_PREV,76,2,29,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,106,2,44,15 + PUSHBUTTON "²Ý(&I)",AFX_ID_PREVIEW_ZOOMIN,151,2,29,15 + PUSHBUTTON "±³Ä(&O)",AFX_ID_PREVIEW_ZOOMOUT,181,2,29,15 + PUSHBUTTON "•Â‚¶‚é(&C)",AFX_ID_PREVIEW_CLOSE,211,2,44,15 +END +#endif + +// Printing strings +STRINGTABLE DISCARDABLE +BEGIN + // print progress dialog strings + AFX_IDS_PRINTONPORT, "%1 ‚Öo—Í’†" // for print output + AFX_IDS_ONEPAGE, "1 Íß°¼Þ(&O)" // for preview button + AFX_IDS_TWOPAGE, "2 Íß°¼Þ(&T)" // for preview button + AFX_IDS_PRINTPAGENUM, "Íß°¼Þ %u" // for print output + AFX_IDS_PREVIEWPAGEDESC, "Íß°¼Þ %u\nÍß°¼Þ %u-%u\n" + + // print to file dialog strings + AFX_IDS_PRINTDEFAULTEXT, "prn" // default extension + AFX_IDS_PRINTDEFAULT, "Output.prn" // default file + AFX_IDS_PRINTFILTER, + "ÌßØÝÀ ̧²Ù (*.prn)|*.prn|‚·‚ׂĂÌ̧²Ù (*.*)|*.*||" + AFX_IDS_PRINTCAPTION, "̧²Ù‚Öo—Í" // caption for browse dlg + AFX_IDS_PRINTTOFILE, "%1 ‚Ö" // to file +END + +// Print Preview Accelerator Table +AFX_IDR_PREVIEW_ACCEL ACCELERATORS LOADONCALL MOVEABLE +BEGIN + VK_NEXT, AFX_ID_PREVIEW_NEXT, VIRTKEY, NOINVERT + VK_PRIOR, AFX_ID_PREVIEW_PREV, VIRTKEY, NOINVERT + VK_ESCAPE, AFX_ID_PREVIEW_CLOSE, VIRTKEY, NOINVERT +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXPRINT_RC__ diff --git a/public/sdk/inc/mfc42/l.jpn/afxres.rc b/public/sdk/inc/mfc42/l.jpn/afxres.rc new file mode 100644 index 000000000..b30d86d38 --- /dev/null +++ b/public/sdk/inc/mfc42/l.jpn/afxres.rc @@ -0,0 +1,223 @@ +// 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. + +#ifndef __AFXRES_RC__ +#define __AFXRES_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< •W€ MFC Ø¿°½‚Ì•ÏX‚Í‚Å‚«‚Ü‚¹‚ñ! >\0" +END +#endif //APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Default resource description for MFC applications +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// Strings + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_APPMENU_RESOURCES + AFX_IDS_OPENFILE, "ŠJ‚" +#ifndef _MAC + AFX_IDS_SAVEFILE, "–¼‘O‚ð•t‚¯‚Ä•Û‘¶" + AFX_IDS_ALLFILTER, "‚·‚ׂĂÌ̧²Ù (*.*)" + AFX_IDS_UNTITLED, "Untitled" +#else + AFX_IDS_SAVEFILE, "ÄÞ·ÒÝÄ‚É–¼‘O‚ð•t‚¯‚Ä•Û‘¶:" + AFX_IDS_ALLFILTER, "‚·‚ׂĂÌ̧²Ù" + AFX_IDS_UNTITLED, "untitled" + AFX_IDS_ABOUT, "ÊÞ°¼Þ®Ýî•ñ %1\205" +#endif + AFX_IDS_HIDE, "&Hide" +#endif // !_AFX_NO_APPMENUSTRING_RESOURCES + + AFX_IDS_MEMORY_EXCEPTION, "ÒÓØ‚ª•s‘«‚µ‚Ä‚¢‚Ü‚·B" + AFX_IDS_NOT_SUPPORTED_EXCEPTION,"»Îß°Ä‚³‚ê‚Ä‚¢‚È‚¢‘€ì‚ðŽÀs‚µ‚Ü‚µ‚½B" + AFX_IDS_RESOURCE_EXCEPTION, "—v‹‚³‚ꂽؿ°½‚ÍŽg—p‚Å‚«‚Ü‚¹‚ñB" + AFX_IDS_USER_EXCEPTION, "An unknown error has occurred." + + // General error prompts +#ifndef _AFX_NO_FILECMD_RESOURCES + AFX_IDP_INVALID_FILENAME, "–³Œø‚Ȩ̀²Ù–¼‚Å‚·B" + AFX_IDP_FAILED_TO_OPEN_DOC, "ÄÞ·ÒÝĂ̵°ÌßÝ‚ÉŽ¸”s‚µ‚Ü‚µ‚½B" + AFX_IDP_FAILED_TO_SAVE_DOC, "ÄÞ·ÒÝÄ‚Ì•Û‘¶‚ÉŽ¸”s‚µ‚Ü‚µ‚½B" +#ifndef _MAC + AFX_IDP_ASK_TO_SAVE, "%1 ‚Ö‚Ì•ÏX‚ð•Û‘¶‚µ‚Ü‚·‚©H" +#else + AFX_IDP_ASK_TO_SAVE, "%1 ÄÞ·ÒÝÄ \042%2\042 ‚Ö‚Ì•ÏX‚ð•Û‘¶‚µ‚Ü‚·‚©H" +#endif + AFX_IDP_FAILED_TO_CREATE_DOC, "‹ó‚ÌÄÞ·ÒÝÄ‚Ì쬂Ɏ¸”s‚µ‚Ü‚µ‚½B" + AFX_IDP_FILE_TOO_LARGE, "̧²Ù‚ª‘å‚«‚·‚¬‚ÄŠJ‚¯‚Ü‚¹‚ñB" + AFX_IDP_FAILED_TO_START_PRINT, "ˆóü‚ðŠJŽn‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" +#endif // !_AFX_NO_FILECMD_RESOURCES + AFX_IDP_FAILED_TO_LAUNCH_HELP, "ÍÙÌß‚Ì‹N“®‚ÉŽ¸”s‚µ‚Ü‚µ‚½B" + AFX_IDP_INTERNAL_FAILURE, "±Ìßع°¼®Ý‚Ì“à•”´×°‚Å‚·B" + AFX_IDP_COMMAND_FAILURE, "ºÏÝÄÞ‚ÌŽÀs‚ÉŽ¸”s‚µ‚Ü‚µ‚½B" + AFX_IDP_FAILED_MEMORY_ALLOC "ŽÀs‚·‚邽‚ß‚ÌÒÓØ‚ª‘«‚è‚Ü‚¹‚ñB" + AFX_IDP_GET_NOT_SUPPORTED, "‘‚«ž‚Ýê—p‚ÌÌßÛÊßè‚©‚ç“Ç‚Ýo‚µ‚Ís‚¦‚Ü‚¹‚ñB" + AFX_IDP_SET_NOT_SUPPORTED, "“Ç‚Ýo‚µê—p‚ÌÌßÛÊßè‚É‘‚«ž‚Ý‚Ís‚¦‚Ü‚¹‚ñB" + AFX_IDP_UNREG_DONE, "System registry entries have been removed and the INI file (if any) was deleted." + AFX_IDP_UNREG_FAILURE, "Not all of the system registry entries (or INI file) were removed." + + // CFile/CArchive error strings for user failure +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FAILED_INVALID_FORMAT "—\Šú‚µ‚È‚¢Ì§²ÙŒ`Ž®‚Å‚·B" +#ifndef _MAC + AFX_IDP_FAILED_INVALID_PATH "%1\n‚±‚Ì̧²Ù‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB\n³‚µ‚¢ÃÞ¨Ú¸ÄØ‚Æ̧²Ù–¼‚ðŠm”F‚µ‚Ä“ü—Í‚µ‚Ä‚‚¾‚³‚¢B" + AFX_IDP_FAILED_DISK_FULL "o—Íæ‚ÌÃÞ¨½¸ ÄÞײÌÞ‚ª‚¢‚Á‚Ï‚¢‚Å‚·B" +#else + AFX_IDP_FAILED_INVALID_PATH "̧²Ù \042%1.\042 ‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB\n³‚µ‚¢Ì§²Ù–¼‚ðŠm”F‚µ‚Ä“ü—Í‚µ‚Ä‚‚¾‚³‚¢B" + AFX_IDP_FAILED_DISK_FULL "o—Íæ‚ÌÃÞ¨½¸‚ª‚¢‚Á‚Ï‚¢‚Å‚·B" +#endif + AFX_IDP_FAILED_ACCESS_READ "%1 ‚©‚ç“Ç‚Ýž‚ß‚Ü‚¹‚ñB‘¼‚̱Ìßع°¼®Ý‚É‚æ‚Á‚ÄŠJ‚©‚ê‚Ä‚¢‚Ü‚·B" + AFX_IDP_FAILED_ACCESS_WRITE "%1 ‚Ö‘‚«ž‚ß‚Ü‚¹‚ñB‘¼‚̱Ìßع°¼®Ý‚É‚æ‚Á‚ÄŠJ‚©‚ê‚Ä‚¢‚Ü‚·B" + AFX_IDP_FAILED_IO_ERROR_READ "%1 ‚Ì“Ç‚Ýž‚Ý’†‚É—\Šú‚µ‚È‚¢´×°‚ª”¶‚µ‚Ü‚µ‚½B" + AFX_IDP_FAILED_IO_ERROR_WRITE "%1 ‚Ì‘‚«ž‚Ý’†‚É—\Šú‚µ‚È‚¢´×°‚ª”¶‚µ‚Ü‚µ‚½B" +#endif // !_AFX_NO_CFILE_RESOURCES + + // Parsing error prompts + AFX_IDP_PARSE_INT, "®”‚ð“ü—Í‚µ‚Ä‚‚¾‚³‚¢B" + AFX_IDP_PARSE_REAL, "”’l‚ð“ü—Í‚µ‚Ä‚‚¾‚³‚¢B" + AFX_IDP_PARSE_INT_RANGE, "%1 ‚©‚ç %2 –˜‚Ì®”‚ð“ü—Í‚µ‚Ä‚‚¾‚³‚¢B" + AFX_IDP_PARSE_REAL_RANGE, "%1 ‚©‚ç %2 –˜‚Ì”’l‚ð“ü—Í‚µ‚Ä‚‚¾‚³‚¢B" + AFX_IDP_PARSE_STRING_SIZE, "%1 •¶ŽšˆÈ“à‚Å“ü—Í‚µ‚Ä‚‚¾‚³‚¢B" + AFX_IDP_PARSE_RADIO_BUTTON, "ÎÞÀÝ‚ð‘I‘ð‚µ‚Ä‚‚¾‚³‚¢B" + AFX_IDP_PARSE_BYTE, "0 ‚©‚ç 255 ‚Ü‚Å‚Ì®”‚ð“ü—Í‚µ‚Ä‚‚¾‚³‚¢B" + AFX_IDP_PARSE_UINT, "³‚Ì®”‚ð“ü—Í‚µ‚Ä‚‚¾‚³‚¢B" + AFX_IDP_PARSE_DATETIME, "“ú•t/ŽžŠÔ‚È‚Ç‚ð“ü—Í‚µ‚Ä‚‚¾‚³‚¢B" + AFX_IDP_PARSE_CURRENCY, "’ʉ݌^‚ð“ü—Í‚µ‚Ä‚‚¾‚³‚¢B" + +#ifndef _AFX_NO_OLE_RESOURCES + // OLE strings required for both servers and containers + AFX_IDS_PASTELINKEDTYPE "%s ‚ðØݸ‚µ‚Ü‚µ‚½B" + AFX_IDS_UNKNOWNTYPE "•s–¾‚ÈŒ^‚Å‚·B" +#ifndef _MAC + AFX_IDP_FAILED_TO_NOTIFY "%1\nÄÞ·ÒÝÄ‚ð“o˜^‚Å‚«‚Ü‚¹‚ñB\nÄÞ·ÒÝÄ‚Í‚·‚Å‚ÉŠJ‚©‚ê‚Ä‚¢‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B" +#else + AFX_IDP_FAILED_TO_NOTIFY "ÄÞ·ÒÝÄ \042%1.\042 ‚ð“o˜^‚Å‚«‚Ü‚¹‚ñB\nÄÞ·ÒÝÄ‚Í‚·‚Å‚ÉŠJ‚©‚ê‚Ä‚¢‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B" +#endif +#endif //!_AFX_NO_OLE_RESOURCES + + AFX_IDP_NO_ERROR_AVAILABLE "´×° Ò¯¾°¼Þ‚Í‚ ‚è‚Ü‚¹‚ñB" + +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FILE_NONE "´×°‚Í‚ ‚è‚Ü‚¹‚ñB" + AFX_IDP_FILE_GENERIC "%1 ‚ւ̱¸¾½’†‚É—\Šú‚µ‚È‚¢´×°‚ª”¶‚µ‚Ü‚µ‚½B" + AFX_IDP_FILE_NOT_FOUND "%1 ‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB" + AFX_IDP_FILE_BAD_PATH "%1 ‚Í–³Œø‚ÈÊß½‚Å‚·B" + AFX_IDP_FILE_TOO_MANY_OPEN "ŠJ‚¢‚Ä‚¢‚ȩ́²Ù‚ª‘½‚·‚¬‚邽‚ß %1 ‚ðŠJ‚¯‚Ü‚¹‚ñ‚Å‚µ‚½B" + AFX_IDP_FILE_ACCESS_DENIED "%1 ‚ւ̱¸¾½‚Í‹‘”Û‚³‚ê‚Ü‚µ‚½B" + AFX_IDP_FILE_INVALID_FILE "%1 ‚Ö–³Œø‚Ȩ̀²Ù ÊÝÄÞÙ‚ªŠÖ˜A•t‚¯‚ç‚ê‚Ä‚¢‚Ü‚·B" + AFX_IDP_FILE_REMOVE_CURRENT "¶ÚÝÄ ÃÞ¨Ú¸ÄØ %1 ‚Í휂ł«‚Ü‚¹‚ñB" + AFX_IDP_FILE_DIR_FULL "%1 ‚ð쬂ł«‚Ü‚¹‚ñB‚»‚ÌÃÞ¨Ú¸ÄØ‚Í‚¢‚Á‚Ï‚¢‚Å‚·B " + AFX_IDP_FILE_BAD_SEEK "%1 ‚̼°¸‚ÉŽ¸”s‚µ‚Ü‚µ‚½" + AFX_IDP_FILE_HARD_IO "%1 ‚ւ̱¸¾½’†‚ÉÊ°ÄÞ³ª± I/O ´×°‚ª•ñ‚³‚ê‚Ü‚µ‚½B" + AFX_IDP_FILE_SHARING "%1 ‚ւ̱¸¾½’†‚É‹¤—Lˆá”½‚ª”¶‚µ‚Ü‚µ‚½B" + AFX_IDP_FILE_LOCKING "%1 ‚ւ̱¸¾½’†‚ÉÛ¯·Ý¸Þˆá”½‚ª”¶‚µ‚Ü‚µ‚½B" + AFX_IDP_FILE_DISKFULL "%1 ‚ւ̱¸¾½’†‚ÉÃÞ¨½¸‚ª‚¢‚Á‚Ï‚¢‚É‚È‚è‚Ü‚µ‚½B" + AFX_IDP_FILE_EOF "%1 ‚Ì̧²Ù‚ÌI‚í‚è‚Å‚·B" + AFX_IDS_UNNAMED_FILE "–³‘è‚Ì̧²Ù" +#endif // !_AFX_NO_CFILE_RESOURCES + + AFX_IDP_ARCH_NONE "´×°‚Í‚ ‚è‚Ü‚¹‚ñB" + AFX_IDP_ARCH_GENERIC "%1 ‚ւ̱¸¾½’†‚É—\Šú‚µ‚È‚¢´×°‚ª”¶‚µ‚Ü‚µ‚½B" + AFX_IDP_ARCH_READONLY "%1 ‚ð“Ç‚Ýž‚Ý’†‚É‘‚«ž‚à‚¤‚Æ‚µ‚Ü‚µ‚½B" + AFX_IDP_ARCH_ENDOFFILE "%1 ‚Ì̧²Ù‚ÌI‚í‚è‚Å‚·B" + AFX_IDP_ARCH_WRITEONLY "%1 ‚Ö‘‚«ž‚Ý’†‚É“Ç‚Ýž‚à‚¤‚Æ‚µ‚Ü‚µ‚½B" + AFX_IDP_ARCH_BADINDEX "%1 ‚Ì̧²ÙŒ`Ž®‚ª³‚µ‚‚ ‚è‚Ü‚¹‚ñB" + AFX_IDP_ARCH_BADCLASS "%1 ‚Í—\Šú‚µ‚È‚¢µÌÞ¼Þª¸Ä‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·B" + AFX_IDP_ARCH_BADSCHEMA "%1 ‚Í•s³‚Ƚ·°Ï‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·B" + +#ifndef _AFX_NO_MAPI_RESOURCES + // MAPI strings / error messages + AFX_IDP_FAILED_MAPI_LOAD "Ò°Ù ¼½ÃÑ‚ÌÛ°ÄÞ‚ª‚Å‚«‚Ü‚¹‚ñB" + AFX_IDP_INVALID_MAPI_DLL "Ò°Ù ¼½ÃÑ DLL‚ª•s³‚Å‚·B" + AFX_IDP_FAILED_MAPI_SEND "Ò°Ù‚Ì‘—M‚ÉŽ¸”s‚µ‚Ü‚µ‚½B" +#endif //!_AFX_NO_MAPI_RESOURCES + +#ifndef _AFX_NO_OCC_RESOURCES + AFX_IDS_OCC_SCALEUNITS_PIXELS "Ë߸¾Ù" +#endif //!_AFX_NO_OCC_RESOURCES +END + +///////////////////////////////////////////////////////////////////////////// +// Cursors + +AFX_IDC_CONTEXTHELP CURSOR DISCARDABLE "res\\help.cur" + +#ifndef _AFX_NO_SPLITTER_RESOURCES +AFX_IDC_SMALLARROWS CURSOR DISCARDABLE "res\\sarrows.cur" +AFX_IDC_HSPLITBAR CURSOR DISCARDABLE "res\\splith.cur" +AFX_IDC_VSPLITBAR CURSOR DISCARDABLE "res\\splitv.cur" +AFX_IDC_NODROPCRSR CURSOR DISCARDABLE "res\\nodrop.cur" +#endif //!_AFX_NO_SPLITTER_RESOURCES + +#ifndef _AFX_NO_TRACKER_RESOURCES +AFX_IDC_TRACKNWSE CURSOR DISCARDABLE "res\\trcknwse.cur" +AFX_IDC_TRACKNESW CURSOR DISCARDABLE "res\\trcknesw.cur" +AFX_IDC_TRACKNS CURSOR DISCARDABLE "res\\trckns.cur" +AFX_IDC_TRACKWE CURSOR DISCARDABLE "res\\trckwe.cur" +AFX_IDC_TRACK4WAY CURSOR DISCARDABLE "res\\trck4way.cur" +AFX_IDC_MOVE4WAY CURSOR DISCARDABLE "res\\move4way.cur" +#endif //!_AFX_NO_TRACKER_RESOURCES + +#ifndef _AFX_NO_CTL3D_RESOURCES +26567 BITMAP "res\\3dcheck.bmp" // Note: 26567 comes from CTL3D.H +#endif + +///////////////////////////////////////////////////////////////////////////// +// Standard Dialogs + +#ifndef _AFX_NO_NEWTYPEDLG_RESOURCES +AFX_IDD_NEWTYPEDLG DIALOG DISCARDABLE 9, 26, 183, 70 +#ifndef _MAC +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | 0x04 +#else +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION +#endif +CAPTION "V‹K" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "V‹K(&N) ",IDC_STATIC,6,5,123,8,NOT WS_GROUP + LISTBOX AFX_IDC_LISTBOX,6,15,125,49,WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,137,6,40,14 + PUSHBUTTON "·¬Ý¾Ù",IDCANCEL,137,23,40,14 + PUSHBUTTON "ÍÙÌß(&H)",ID_HELP,137,43,40,14 +END +#endif // !_AFX_NO_NEWTYPEDLG_RESOURCES + +///////////////////////////////////////////////////////////////////////////// +// CMiniFrameWnd Bitmap + +AFX_IDB_MINIFRAME_MENU BITMAP DISCARDABLE "res\\minifwnd.bmp" + +///////////////////////////////////////////////////////////////////////////// +// CCheckListBox Bitmaps + +AFX_IDB_CHECKLISTBOX_NT BITMAP DISCARDABLE "res\\ntcheck.bmp" +AFX_IDB_CHECKLISTBOX_95 BITMAP DISCARDABLE "res\\95check.bmp" + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //!__AFXRES_RC__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/l.kor/afxctl.rc b/public/sdk/inc/mfc42/l.kor/afxctl.rc new file mode 100644 index 000000000..8c2466d7b --- /dev/null +++ b/public/sdk/inc/mfc42/l.kor/afxctl.rc @@ -0,0 +1,284 @@ +// 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. + +#ifndef __AFXCTL_RC__ +#define __AFXCTL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Ç¥ÁØ MFC ¿øº»Àº º¯°æÇÒ ¼ö ¾øÀ½! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Control Resources + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +AFX_IDB_TRUETYPE BITMAP DISCARDABLE "RES\\TRUETYPE.BMP" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +AFX_IDD_PROPPAGE_FONT DIALOG DISCARDABLE 13, 54, 250, 110 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Ư¼º À̸§(&N)",IDC_STATIC,3,5,61,8 + COMBOBOX AFX_IDC_FONTPROP,65,3,100,71,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + LTEXT "±Û²Ã(&F)",IDC_STATIC,3,19,91,8 + COMBOBOX AFX_IDC_FONTNAMES,3,29,91,77,CBS_SIMPLE | + CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | + CBS_HASSTRINGS | CBS_DISABLENOSCROLL | WS_VSCROLL | + WS_TABSTOP + LTEXT "±Û²Ã À¯Çü(&Y):",IDC_STATIC,102,19,53,8 + COMBOBOX AFX_IDC_FONTSTYLES,104,29,53,53,CBS_DROPDOWNLIST | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + LTEXT "Å©±â(&S):",IDC_STATIC,167,19,40,8 + COMBOBOX AFX_IDC_FONTSIZES,167,29,36,53,CBS_DROPDOWN | CBS_SORT | + CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP + GROUPBOX "È¿°ú",IDC_STATIC,104,44,142,24,WS_GROUP + CONTROL "Ãë¼Ò¼±(&K)",AFX_IDC_STRIKEOUT,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,109,55,65,10 + CONTROL "¹ØÁÙ(&U)",AFX_IDC_UNDERLINE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,175,55,65,10 + GROUPBOX "º¸±â",IDC_STATIC,104,71,142,36,WS_GROUP + CTEXT "AaBbYyZz",AFX_IDC_SAMPLEBOX,110,80,130,22,SS_NOPREFIX | + NOT WS_VISIBLE +END + +AFX_IDD_PROPPAGE_COLOR DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Ư¼º À̸§(&N)",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_COLORPROP,3,13,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "½Ã½ºÅÛ »ö(&C):",IDC_STATIC,3,29,100,8 + COMBOBOX AFX_IDC_SYSTEMCOLORS,3,39,100,54,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + CONTROL "",AFX_IDC_COLOR_BLACK,"Button",BS_OWNERDRAW | WS_GROUP | + WS_TABSTOP,118,4,15,11 + CONTROL "",AFX_IDC_COLOR_BLUE,"Button",BS_OWNERDRAW,138,4,15,11 + CONTROL "",AFX_IDC_COLOR_CYAN,"Button",BS_OWNERDRAW,158,4,15,11 + CONTROL "",AFX_IDC_COLOR_DARKBLUE,"Button",BS_OWNERDRAW,178,4,15, + 11 + CONTROL "",AFX_IDC_COLOR_DARKCYAN,"Button",BS_OWNERDRAW,118,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKGREEN,"Button",BS_OWNERDRAW,138,18, + 15,11 + CONTROL "",AFX_IDC_COLOR_DARKMAGENTA,"Button",BS_OWNERDRAW,158, + 18,15,11 + CONTROL "",AFX_IDC_COLOR_GRAY,"Button",BS_OWNERDRAW,178,18,15,11 + CONTROL "",AFX_IDC_COLOR_DARKRED,"Button",BS_OWNERDRAW,118,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_GREEN,"Button",BS_OWNERDRAW,138,32,15, + 11 + CONTROL "",AFX_IDC_COLOR_LIGHTBROWN,"Button",BS_OWNERDRAW,158,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_LIGHTGRAY,"Button",BS_OWNERDRAW,178,32, + 15,11 + CONTROL "",AFX_IDC_COLOR_MAGENTA,"Button",BS_OWNERDRAW,118,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_RED,"Button",BS_OWNERDRAW,138,46,15,11 + CONTROL "",AFX_IDC_COLOR_WHITE,"Button",BS_OWNERDRAW,158,46,15, + 11 + CONTROL "",AFX_IDC_COLOR_YELLOW,"Button",BS_OWNERDRAW,178,46,15, + 11 +END + +AFX_IDD_PROPPAGE_PICTURE DIALOG DISCARDABLE 0, 0, 250, 62 +STYLE WS_CHILD | 0x4 +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Ư¼º À̸§(&N)",IDC_STATIC,3,3,100,8 + COMBOBOX AFX_IDC_PROPNAME,3,13,100,30,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "ã¾Æº¸±â(&B)...",AFX_IDC_BROWSE,3,35,54,14 + PUSHBUTTON "Áö¿ì±â(&C)",AFX_IDC_CLEAR,61,35,54,14 + RTEXT "¹Ì¸®º¸±â:",IDC_STATIC,107,3,42,16 + CONTROL "",AFX_IDC_PICTURE,"Static",SS_BLACKFRAME,151,4,93,54 +END + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +AFX_IDD_PROPPAGE_FONT DLGINIT +BEGIN + 1002, 0x403, 12, 0 +0x6f42, 0x646c, 0x4920, 0x6174, 0x696c, 0x0063, + 0 +END + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PROPPAGE_UNKNOWN "(¹ÌÁöÀÇ)" + AFX_IDS_COLOR_DESKTOP "µ¥½ºÅ©Åé" + AFX_IDS_COLOR_APPWORKSPACE "ÀÀ¿ëÇÁ·Î±×·¥ ÀÛ¾÷°ø°£" + AFX_IDS_COLOR_WNDBACKGND "À©µµ¿ì ¹è°æ" + AFX_IDS_COLOR_WNDTEXT "À©µµ¿ì ÅؽºÆ®" + AFX_IDS_COLOR_MENUBAR "¸Þ´ºÇ¥½ÃÁÙ" + AFX_IDS_COLOR_MENUTEXT "¸Þ´º ÅؽºÆ®" + AFX_IDS_COLOR_ACTIVEBAR "È°¼º Á¦¸ñÁÙ" + AFX_IDS_COLOR_INACTIVEBAR "ºñÈ°¼º Á¦¸ñÁÙ" + AFX_IDS_COLOR_ACTIVETEXT "È°¼º Á¦¸ñÁÙ ÅؽºÆ®" + AFX_IDS_COLOR_INACTIVETEXT "ºñÈ°¼º Á¦¸ñÁÙ ÅؽºÆ®" + AFX_IDS_COLOR_ACTIVEBORDER "È°¼º °æ°è¼±" + AFX_IDS_COLOR_INACTIVEBORDER "ºñÈ°¼º °æ°è¼±" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_WNDFRAME "À©µµ¿ì ÇÁ·¹ÀÓ" + AFX_IDS_COLOR_SCROLLBARS "À̵¿ÁÙ" + AFX_IDS_COLOR_BTNFACE "¹öÆ° Á¤¸é" + AFX_IDS_COLOR_BTNSHADOW "¹öÆ° ±×¸²ÀÚ" + AFX_IDS_COLOR_BTNTEXT "¹öÆ° ÅؽºÆ®" + AFX_IDS_COLOR_BTNHIGHLIGHT "¹öÆ° ¹ÝÀüÇ¥½Ã" + AFX_IDS_COLOR_DISABLEDTEXT "»ç¿ë ºÒ°¡ ÅؽºÆ®" + AFX_IDS_COLOR_HIGHLIGHT "¹ÝÀüÇ¥½Ã" + AFX_IDS_COLOR_HIGHLIGHTTEXT "¹ÝÀüÇ¥½ÃµÈ ÅؽºÆ®" + AFX_IDS_REGULAR "º¸Åë" + AFX_IDS_BOLD "±½°Ô" + AFX_IDS_ITALIC "±â¿ïÀÓ²Ã" + AFX_IDS_BOLDITALIC "±½Àº ±â¿ïÀÓ²Ã" + AFX_IDS_SAMPLETEXT "AaBbYyZz" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_DISPLAYSTRING_FONT "(±Û²Ã)" + AFX_IDS_DISPLAYSTRING_COLOR "(»ö)" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_DISPLAYSTRING_PICTURE "(±×¸² - %s)" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTUREFILTER "All Picture Types|*.bmp;*.cur;*.dib;*.emf;*.ico;*.wmf|Bitmaps (*.bmp;*.dib)|*.bmp;*.dib|Icons/Cursors (*.ico;*.cur)|*.ico;*.cur|Metafiles (*.wmf;*.emf)|*.wmf;*.emf|All files (*.*)|*.*||" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_PICTYPE_UNKNOWN "¹ÌÁöÀÇ" + AFX_IDS_PICTYPE_NONE "¾øÀ½" + AFX_IDS_PICTYPE_BITMAP "ºñÆ®¸Ê" + AFX_IDS_PICTYPE_METAFILE "¸ÞŸÆÄÀÏ" + AFX_IDS_PICTYPE_ICON "¾ÆÀÌÄÜ" +#ifndef _AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_COLOR_PPG "»ö Ư¼º ÆäÀÌÁö" + AFX_IDS_COLOR_PPG_CAPTION "»ö" + AFX_IDS_FONT_PPG "±Û²Ã Ư¼º ÆäÀÌÁö" + AFX_IDS_FONT_PPG_CAPTION "±Û²Ã" + AFX_IDS_PICTURE_PPG "±×¸² Ư¼º ÆäÀÌÁö" + AFX_IDS_PICTURE_PPG_CAPTION "±×¸²" +#endif // !_AFX_NO_STOCKPPG_RESOURCES + AFX_IDS_BORDERSTYLE_0 "0 - ¾øÀ½" + AFX_IDS_BORDERSTYLE_1 "1 - °íÁ¤ ´ÜÀÏ" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_VERB_EDIT "ÆíÁý(&E)" + AFX_IDS_VERB_PROPERTIES "Ư¼º(&P)..." +END + +#ifndef _AFX_NO_STOCKPPG_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_PICTURECANTOPEN "±×¸² ÆÄÀÏ %1À»(¸¦) ¿ ¼ö ¾øÀ½. ÀÌ ÆÄÀÏÀÌ ¾ø°Å³ª ÀÐÀ» ¼ö ¾øÀ½." + AFX_IDP_PICTURECANTLOAD "±×¸² ÆÄÀÏ %1À»(¸¦) ÀоîµéÀÏ ¼ö ¾øÀ½. À߸øµÈ Æ÷¸ËÀ» °¡Áø ÆÄÀÏÀÓ." + AFX_IDP_PICTURETOOLARGE "±×¸² ÆÄÀÏ %1À»(¸¦) ÀоîµéÀÏ ¼ö ¾øÀ½. ÆÄÀÏÀÌ ³Ê¹« Ä¿¼ ¸Þ¸ð¸®¿¡ ¼ö¿ëÇÒ ¼ö ¾øÀ½." + AFX_IDP_PICTUREREADFAILED + "±×¸² ÆÄÀÏ %1À»(¸¦) ÀоîµéÀÏ ¼ö ¾øÀ½. ¼³¸íÀÌ ¾ø´Â Àб⠽ÇÆÐ." +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDS_PICTUREBROWSETITLE "±×¸² ã¾Æº¸±â" +END +#endif // !_AFX_NO_STOCKPPG_RESOURCES + +#ifndef _AFX_NO_CTLERROR_RESOURCES +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_ILLEGALFUNCTIONCALL "À߸øµÈ ±â´É È£Ãâ" + AFX_IDP_E_OVERFLOW "¼ýÀÚ°¡ ³Ê¹«Å" + AFX_IDP_E_OUTOFMEMORY "¸Þ¸ð¸® ºÎÁ·" + AFX_IDP_E_DIVISIONBYZERO "0À¸·Î ³ª´©±â" + AFX_IDP_E_OUTOFSTRINGSPACE "¹®ÀÚ¿ °ø°£ ºÎÁ·" + AFX_IDP_E_OUTOFSTACKSPACE "½ºÅà °ø°£ ºÎÁ·" + AFX_IDP_E_BADFILENAMEORNUMBER "ºÒ·® ÆÄÀÏ À̸§ ¶Ç´Â ¹øÈ£" + AFX_IDP_E_FILENOTFOUND "ÆÄÀÏÀ» ãÀ» ¼ö ¾øÀ½" + AFX_IDP_E_BADFILEMODE "ºÒ·® ÆÄÀÏ ¸ðµå" + AFX_IDP_E_FILEALREADYOPEN "ÆÄÀÏÀÌ ÀÌ¹Ì ¿·Á ÀÖÀ½" + AFX_IDP_E_DEVICEIOERROR "ÀÔÃâ·Â ÀåÄ¡ ¿À·ù" + AFX_IDP_E_FILEALREADYEXISTS "ÆÄÀÏÀÌ ÀÌ¹Ì Á¸ÀçÇÔ" + AFX_IDP_E_BADRECORDLENGTH "ºÒ·® ·¹ÄÚµå ±æÀÌ" + AFX_IDP_E_DISKFULL "µð½ºÅ©°¡ ²Ë Âü" + AFX_IDP_E_BADRECORDNUMBER "ºÒ·® ·¹ÄÚµå ¹øÈ£" + AFX_IDP_E_BADFILENAME "ºÒ·® ÆÄÀÏ À̸§" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_TOOMANYFILES "ÆÄÀÏÀÌ ³Ê¹« ¸¹À½" + AFX_IDP_E_DEVICEUNAVAILABLE "ÀåÄ¡¸¦ ÀÌ¿ëÇÒ ¼ö ¾øÀ½" + AFX_IDP_E_PERMISSIONDENIED "Çã°¡°¡ °ÅºÎµÊ" + AFX_IDP_E_DISKNOTREADY "µð½ºÅ©°¡ ÁغñµÇÁö ¾ÊÀ½" + AFX_IDP_E_PATHFILEACCESSERROR "°æ·Î/ÆÄÀÏ ¾×¼¼½º ¿À·ù" + AFX_IDP_E_PATHNOTFOUND "°æ·Î¸¦ ãÀ» ¼ö ¾øÀ½" + AFX_IDP_E_INVALIDPATTERNSTRING "À߸øµÈ ¹«´Ì ¹®ÀÚ¿" + AFX_IDP_E_INVALIDUSEOFNULL "À߸øµÈ ³Î »ç¿ë" + AFX_IDP_E_INVALIDFILEFORMAT "À߸øµÈ ÆÄÀÏ Æ÷¸Ë" + AFX_IDP_E_INVALIDPROPERTYVALUE "À߸øµÈ Ư¼º °ª" + AFX_IDP_E_INVALIDPROPERTYARRAYINDEX "À߸øµÈ ¹è¿ »öÀÎ" + AFX_IDP_E_SETNOTSUPPORTEDATRUNTIME "Ư¼ºÀº ½ÇÇà ½Ã°£¿¡ ¼³Á¤µÉ ¼ö ¾øÀ½" + AFX_IDP_E_SETNOTSUPPORTED "Ư¼ºÀº ÀбâÀü¿ëÀÓ" + AFX_IDP_E_NEEDPROPERTYARRAYINDEX + "Ư¼º ¹è¿À» »ç¿ëÇÒ ¶§¿¡´Â ¹è¿ »öÀÎÀ» ¸í½ÃÇÏ¿©¾ß ÇÔ" + AFX_IDP_E_SETNOTPERMITTED "ÀÌ Á¦¾î±â¿¡¼´Â Ư¼ºÀ» ¼³Á¤ÇÒ ¼ö ¾øÀ½" + AFX_IDP_E_GETNOTSUPPORTEDATRUNTIME "½ÇÇà ½Ã°£¿¡´Â Ư¼ºÀ» ÀÐÀ» ¼ö ¾øÀ½" +END + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_E_GETNOTSUPPORTED "Ư¼ºÀº ¾²±âÀü¿ëÀÓ" + AFX_IDP_E_PROPERTYNOTFOUND "Ư¼ºÀ» ãÀ» ¼ö ¾øÀ½" + AFX_IDP_E_INVALIDCLIPBOARDFORMAT "À߸øµÈ Ŭ¸³º¸µå Æ÷¸Ë" + AFX_IDP_E_INVALIDPICTURE "À߸øµÈ ±×¸²" + AFX_IDP_E_PRINTERERROR "ÇÁ¸°ÅÍ ¿À·ù" + AFX_IDP_E_CANTSAVEFILETOTEMP + "ÀúÀåÀ» À§ÇØ ÇÊ¿äÇÑ Àӽà ÆÄÀÏÀ» ÀÛ¼ºÇÒ ¼ö ¾øÀ½" + AFX_IDP_E_SEARCHTEXTNOTFOUND "°Ë»ö ÅؽºÆ®¸¦ ãÀ» ¼ö ¾øÀ½" + AFX_IDP_E_REPLACEMENTSTOOLONG "´ëü ÅؽºÆ®°¡ ³Ê¹« ±æÀ½" +END +#endif //!_AFX_NO_CTLERROR_RESOURCES + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.kor/afxdb.rc b/public/sdk/inc/mfc42/l.kor/afxdb.rc new file mode 100644 index 000000000..c1b67c868 --- /dev/null +++ b/public/sdk/inc/mfc42/l.kor/afxdb.rc @@ -0,0 +1,103 @@ +// 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. + +#ifndef __AFXDB_RC__ +#define __AFXDB_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Ç¥ÁØ MFC ¿øº»Àº º¯°æÇÒ ¼ö ¾øÀ½! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Database Resources + +// Database strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_SQL_CONNECT_FAIL + "µ¥ÀÌÅÍ¿øº»¿¡ ´ëÇÑ ¿¬°á ½Ãµµ ½ÇÆÐ" + AFX_IDP_SQL_RECORDSET_FORWARD_ONLY + "·¹Äڵ弼Ʈ´Â ¾ÕÀ¸·Î À̵¿Çϱ⸸À» Áö¿øÇÔ." + AFX_IDP_SQL_EMPTY_COLUMN_LIST + "Ç¥ ¿±â ½Ãµµ ½ÇÆÐ - °Ë»öÇÒ Ä®·³ÀÌ ÁöÁ¤µÇÁö ¾Ê¾ÒÀ½." + AFX_IDP_SQL_FIELD_SCHEMA_MISMATCH + "¹®ÀǷκÎÅÍ ¿¹±âÄ¡ ¾ÊÀº Ä®·³ µ¥ÀÌÅÍ Á¾·ù°¡ µÇµ¹·Á º¸³»Á³À½." + AFX_IDP_SQL_ILLEGAL_MODE "»õ·Î °íħ ¶Ç´Â »èÁ¦ ½Ãµµ ½ÇÆÐ." + AFX_IDP_SQL_MULTIPLE_ROWS_AFFECTED "¿©·¯ ÁÙÀÌ »õ·Î °íÃÄÁ³À½." + AFX_IDP_SQL_NO_CURRENT_RECORD "ÀÛµ¿ ½ÇÆÐ, ÇöÀç ·¹Äڵ尡 ¾øÀ½." + AFX_IDP_SQL_NO_ROWS_AFFECTED + "¾Æ¹« ÁÙµµ »õ·Î °íħÀ̳ª »èÁ¦ ÀÛµ¿ÀÇ ¿µÇâÀ» ¹ÞÁö ¾Ê¾ÒÀ½." + AFX_IDP_SQL_RECORDSET_READONLY "·¹Äڵ弼Ʈ´Â ÀбâÀü¿ëÀÓ" + AFX_IDP_SQL_SQL_NO_TOTAL + "ODBC µå¶óÀ̹ö´Â MFC ±ä 2Áø µ¥ÀÌÅÍ ¸ðµ¨À» Áö¿øÇÏÁö ¾ÊÀ½." + AFX_IDP_SQL_ODBC_LOAD_FAILED + "Çʼö ±¸¼º ¿ä¼ÒÀÎ ODBC32.DLL¸¦ ÀоîµéÀÌ·Á´Â ½Ãµµ ½ÇÆÐ." + AFX_IDP_SQL_DYNASET_NOT_SUPPORTED + "ODBC µå¶óÀ̹ö´Â ´ÙÀ̳ª¼¼Æ®¸¦ Áö¿øÇÏÁö ¾ÊÀ½." + AFX_IDP_SQL_SNAPSHOT_NOT_SUPPORTED + "½º³À¼¦ Áö¿øÀ» À§Çؼ´Â ODBC Á¤Àû Ä¿¼ ÇÊ¿ä." + AFX_IDP_SQL_API_CONFORMANCE + "ODBC µå¶óÀ̹ö°¡ MFC µ¥ÀÌÅͺ£À̽º Á¾·ù¿Í ȣȯ¼ºÀÌ ¾øÀ½ (API_CONFORMANCE >= " + AFX_IDP_SQL_SQL_CONFORMANCE + "ODBC µå¶óÀ̹ö°¡ MFC µ¥ÀÌÅͺ£À̽º Á¾·ù¿Í ȣȯ¼ºÀÌ ¾øÀ½ (SQL_CONFORMANCE >= " + AFX_IDP_SQL_NO_DATA_FOUND + "µ¥ÀÌÅÍÀÇ ³¡À» Áö³ª°Å³ª ¸Ç óÀ½º¸´Ù ¾ÕÀ¸·Î °¡·Á´Â ½Ãµµ." + AFX_IDP_SQL_ROW_UPDATE_NOT_SUPPORTED + "´ÙÀ̳ª¼¼Æ®´Â ODBC µå¶óÀ̹ö¿¡ ÀÇÇØ Áö¿øµÇÁö ¾ÊÀ½." + AFX_IDP_SQL_ODBC_V2_REQUIRED + "ODBC ·¹º§ 2 ȣȯ µå¶óÀ̹ö ÇÊ¿ä." + AFX_IDP_SQL_NO_POSITIONED_UPDATES + "ÁöÁ¤ »õ·Î °íħÀº ODBC µå¶óÀ̹ö¿¡ ÀÇÇØ Áö¿øµÇÁö ¾ÊÀ½." + AFX_IDP_SQL_LOCK_MODE_NOT_SUPPORTED + "¿ä±¸ÇÑ Àá±Ý ¸ðµå´Â Áö¿øµÇÁö ¾ÊÀ½." + AFX_IDP_SQL_DATA_TRUNCATED + "µ¥ÀÌÅÍ À߸²." + AFX_IDP_SQL_ROW_FETCH + "±â·Ï Àç»ý ¿À·ù" + AFX_IDP_SQL_INCORRECT_ODBC + "ÇÊ¿äÇÑ ODBC ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ãÀ» ¼ö ¾øÀ½. ODBC°¡ Á¤È®ÇÏ°Ô ¼³Ä¡µÇ¾ú´ÂÁö È®ÀÎÇϽʽÿÀ." + AFX_IDP_SQL_UPDATE_DELETE_FAILED + "»õ·Î °íħ ¶Ç´Â »èÁ¦ ½ÇÆÐ" + AFX_IDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED + "µ¿Àû Ä¿¼´Â ODBC µå¶óÀ̹ö¿¡ ÀÇÇØ Áö¿øµÇÁö ¾Ê½À´Ï´Ù." + AFX_IDP_SQL_FIELD_NOT_FOUND + "Invalid field name or field index." + AFX_IDP_SQL_BOOKMARKS_NOT_SUPPORTED + "Bookmarks not supported for ODBC driver." + AFX_IDP_SQL_BOOKMARKS_NOT_ENABLED + "Bookmarks not enabled on recordset." + AFX_IDP_DAO_ENGINE_INITIALIZATION + "DAO/Jet db ¿£Áø ÃʱâÈ ºÒ´É. " + AFX_IDP_DAO_DFX_BIND + "ºÒ·® DFX °ª ÆĶó¹ÌÅÍ." + AFX_IDP_DAO_OBJECT_NOT_OPEN + "DAO TableDef ¶Ç´Â QueryDef°¡ ¿¸®Áö ¾ÊÀ½." + AFX_IDP_DAO_ROWTOOSHORT + "GetRows ½ÇÆÐ. ÁÙ¿¡ ÇÒ´çµÈ ¸Þ¸ð¸® ºÎÁ·." + AFX_IDP_DAO_BADBINDINFO + "GetRows ¹ÙÀεù ¿À·ù. µ¥ÀÌÅÍ Á¾·ù°¡ ¸ÂÁö ¾Ê±â ¶§¹®¿¡ ¹ß»ýµÈ °Í °°½À´Ï´Ù." + AFX_IDP_DAO_COLUMNUNAVAILABLE + "GetRows ½ÇÆÐ. ¿ä±¸ÇÑ Ä®·³Àº º» µ¥ÀÌÅÍ ¼¼Æ®ÀÇ ÇÑ ¸â¹ö°¡ ¾Æ´Õ´Ï´Ù." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXDB_RC__ diff --git a/public/sdk/inc/mfc42/l.kor/afxolecl.rc b/public/sdk/inc/mfc42/l.kor/afxolecl.rc new file mode 100644 index 000000000..67923935a --- /dev/null +++ b/public/sdk/inc/mfc42/l.kor/afxolecl.rc @@ -0,0 +1,66 @@ +// 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. + +#ifndef __AFXOLECL_RC__ +#define __AFXOLECL_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifndef _INC_DLGS + #include <dlgs.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Ç¥ÁØ MFC ¿øº»Àº º¯°æÇÒ ¼ö ¾øÀ½! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Client Resources + +///////////////////////////////////////////////////////////////////////////// +// OLE strings + +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_STATIC_OBJECT "Á¤Àû OLE °³Ã¼¸¦ È°¼ºÈÇÒ ¼ö ¾øÀ½." + AFX_IDP_FAILED_TO_CONNECT "Á¢¼Ó ½ÇÆÐ.\n ¿¬°áÀÌ ²÷¾îÁ³À» ¼ö ÀÖÀ½." + AFX_IDP_SERVER_BUSY "¸í·ÉÀ» ó¸®ÇÒ ¼ö ¾øÀ½, ¼¹ö »ç¿ë Áß." + AFX_IDP_BAD_VERB "¼¹ö ÀÛµ¿ ½ÇÇà ½ÇÆÐ." + AFX_IDP_FAILED_TO_LAUNCH "¼¹ö ÀÀ¿ëÇÁ·Î±×·¥ ½ÇÆÐ." + AFX_IDS_UPDATING_ITEMS "OLE °³Ã¼ »õ·Î °íħ" + AFX_IDP_FAILED_TO_CONVERT "OLE °³Ã¼ º¯È¯ ½ÇÆÐ." + AFX_IDP_ASK_TO_DISCARD "À©µµ¿ì Á¾·á ½Ã¿¡´Â OLE °³Ã¼°¡ ÀúÀåµÇÁö ¾ÊÀ½!\n %1¿¡ ´ëÇÑ ¸ðµç º¯°æ »çÇ×À» ¹ö¸±±î¿ä?" + AFX_IDP_FAILED_TO_CREATE "°³Ã¼ ¸¸µé±â ½ÇÆÐ. ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ½Ã½ºÅÛ µî·ÏºÎ¿¡ ÀԷµǾú´ÂÁö È®ÀÎÇϽʽÿÀ." + + AFX_IDS_METAFILE_FORMAT "±×¸² (¸ÞŸÆÄÀÏ)\n ±×¸²" + AFX_IDS_DIB_FORMAT "ÀåÄ¡ µ¶¸³ ºñÆ®¸Ê\n ÀåÄ¡ µ¶¸³ ºñÆ®¸Ê" + AFX_IDS_BITMAP_FORMAT "ºñÆ®¸Ê\n ºñÆ®¸Ê" + AFX_IDS_LINKSOURCE_FORMAT "%s\n%s" + AFX_IDS_EMBED_FORMAT "%s\n%s" + AFX_IDS_RTF_FORMAT "Rich ÅؽºÆ® (RTF)\n±Û²Ã ¹× ´Ü¶ô ¼½ÄÀÌ ÀÖ´Â ÅؽºÆ®" + AFX_IDS_TEXT_FORMAT "¼½Ä ºñ¼³Á¤ ÅؽºÆ®\n¼½ÄÀÌ ¾ø´Â ÅؽºÆ®" + + AFX_IDS_INVALID_CURRENCY "À߸øµÈ ÅëÈ." + AFX_IDS_INVALID_DATETIME "À߸øµÈ ÀϽÃ." + AFX_IDS_INVALID_DATETIMESPAN "À߸øµÈ ÀϽà ¹üÀ§." +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLECL_RC__ diff --git a/public/sdk/inc/mfc42/l.kor/afxolesv.rc b/public/sdk/inc/mfc42/l.kor/afxolesv.rc new file mode 100644 index 000000000..c8526f560 --- /dev/null +++ b/public/sdk/inc/mfc42/l.kor/afxolesv.rc @@ -0,0 +1,53 @@ +// 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. + +#ifndef __AFXOLESV_RC__ +#define __AFXOLESV_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Ç¥ÁØ MFC ¿øº»Àº º¯°æÇÒ ¼ö ¾øÀ½! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// OLE Server Resources + +// OLE strings +STRINGTABLE DISCARDABLE +BEGIN + AFX_IDP_ASK_TO_UPDATE, "ÁøÇàÇϱâ Àü¿¡ %1À»(¸¦) »õ·Î °íÄ¥±î¿ä?" + AFX_IDP_FAILED_TO_UPDATE, "Ŭ¶óÀ̾ðÆ®¸¦ »õ·Î °íÄ¥ ¼ö ¾øÀ½." + + AFX_IDP_FAILED_TO_REGISTER, "µî·Ï ½ÇÆÐ. OLE ±â´ÉÀÌ Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾ÊÀ» ¼ö ÀÖÀ½." + AFX_IDP_FAILED_TO_AUTO_REGISTER, "½Ã½ºÅÛ µî·ÏºÎ »õ·Î °íħ ½ÇÆÐ.\nREGEDIT¸¦ »ç¿ëÇØ º¸½Ê½Ã¿À." +END + +STRINGTABLE PRELOAD +BEGIN + AFX_IDS_APP_TITLE_EMBEDDING, "%2 ¿¡¼ %1" + AFX_IDS_OBJ_TITLE_INPLACE, "%1 - %2" + AFX_IDS_EXIT_MENU, "Á¾·á && %1·Î(À¸·Î) º¹±Í(&X)" + AFX_IDS_UPDATE_MENU, "%1 »õ·Î °íħ(&U)" + AFX_IDS_SAVEFILECOPY, "»çº» ´Ù¸¥ À̸§À¸·Î ÀúÀå" +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXOLESV_RC__ diff --git a/public/sdk/inc/mfc42/l.kor/afxprint.rc b/public/sdk/inc/mfc42/l.kor/afxprint.rc new file mode 100644 index 000000000..c95b289e3 --- /dev/null +++ b/public/sdk/inc/mfc42/l.kor/afxprint.rc @@ -0,0 +1,130 @@ +// 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. + +#ifndef __AFXPRINT_RC__ +#define __AFXPRINT_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Ç¥ÁØ MFC ¿øº»Àº º¯°æÇÒ ¼ö ¾øÀ½! >\0" +END +#endif // APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Printing Resources + +AFX_IDC_MAGNIFY CURSOR DISCARDABLE "res\\magnify.cur" + +#ifndef _MAC +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | 0x04 +#else +AFX_IDD_PRINTDLG DIALOG DISCARDABLE 6, 18, 133, 84 +STYLE DS_MODALFRAME | WS_POPUP +#endif +FONT 8, "MS Shell Dlg" +BEGIN + CTEXT "Àμâ",IDC_STATIC,0,9,133,8 + CTEXT "",AFX_IDC_PRINT_DOCNAME,0,19,133,8 +#ifndef _MAC + CTEXT "¿¡¼",IDC_STATIC,0,29,133,8 + CTEXT "",AFX_IDC_PRINT_PRINTERNAME,0,39,133,8 + CTEXT "",AFX_IDC_PRINT_PORTNAME,0,49,133,8 + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,59,133,8 + PUSHBUTTON "Ãë¼Ò",IDCANCEL,46,74,40,14 +#else + CTEXT "",AFX_IDC_PRINT_PAGENUM,0,30,133,8 + PUSHBUTTON "Ãë¼Ò",IDCANCEL,46,45,40,15 + CTEXT "Ãë¼ÒÇÏ·Á¸é Cmd-.¸¦ ´©¸£½Ê½Ã¿À.",IDC_STATIC,0,63,133,16 +#endif +END + +// Preview Toolbar Dialog +#ifndef _MAC +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 330, 16 +STYLE WS_CHILD | 0x04 +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Àμâ(&P)...",AFX_ID_PREVIEW_PRINT,2,2,44,12 + PUSHBUTTON "´ÙÀ½ ÂÊ(&N)",AFX_ID_PREVIEW_NEXT,48,2,44,12 + PUSHBUTTON "ÀÌÀü ÂÊ(&V)",AFX_ID_PREVIEW_PREV,94,2,44,12 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,140,2,44,12 + PUSHBUTTON "È®´ë(&I)",AFX_ID_PREVIEW_ZOOMIN,186,2,44,12 + PUSHBUTTON "Ãà¼Ò(&O)",AFX_ID_PREVIEW_ZOOMOUT,232,2,44,12 + PUSHBUTTON "´Ý±â(&C)",AFX_ID_PREVIEW_CLOSE,278,2,44,12 +END +#else +// standard toolbar for 14 inch and larger screens +// width *must* be 320 or less so that this is used on 640x480 screens +AFX_IDD_PREVIEW_TOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 320, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "Àμâ(&P)...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "´ÙÀ½ ÂÊ(&N)",AFX_ID_PREVIEW_NEXT,46,2,44,15 + PUSHBUTTON "ÀÌÀü ÂÊ(&V)",AFX_ID_PREVIEW_PREV,91,2,44,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,136,2,44,15 + PUSHBUTTON "È®´ë(&I)",AFX_ID_PREVIEW_ZOOMIN,181,2,44,15 + PUSHBUTTON "Ãà¼Ò(&O)",AFX_ID_PREVIEW_ZOOMOUT,226,2,44,15 + PUSHBUTTON "´Ý±â(&C)",AFX_ID_PREVIEW_CLOSE,271,2,44,15 +END + +// short toolbar for 9 inch and 12 inch screens +AFX_IDD_PREVIEW_SHORTTOOLBAR DIALOG PRELOAD DISCARDABLE 0, 0, 270, 19 +STYLE WS_CHILD | CBRS_TOP +BEGIN + PUSHBUTTON "Àμâ(&P)...",AFX_ID_PREVIEW_PRINT,1,2,44,15 + PUSHBUTTON "´ÙÀ½(&N)",AFX_ID_PREVIEW_NEXT,46,2,29,15 + PUSHBUTTON "ÀÌÀü(&V)",AFX_ID_PREVIEW_PREV,76,2,29,15 + PUSHBUTTON "",AFX_ID_PREVIEW_NUMPAGE,106,2,44,15 + PUSHBUTTON "&In",AFX_ID_PREVIEW_ZOOMIN,151,2,29,15 + PUSHBUTTON "&Out",AFX_ID_PREVIEW_ZOOMOUT,181,2,29,15 + PUSHBUTTON "´Ý±â(&C)",AFX_ID_PREVIEW_CLOSE,211,2,44,15 +END +#endif + +// Printing strings +STRINGTABLE DISCARDABLE +BEGIN + // print progress dialog strings + AFX_IDS_PRINTONPORT, "%1¿¡" // for print output + AFX_IDS_ONEPAGE, "ÇÑ ÂÊ(&O)" // for preview button + AFX_IDS_TWOPAGE, "µÎ ÂÊ(&T)" // for preview button + AFX_IDS_PRINTPAGENUM, "ÆäÀÌÁö %u" // for print output + AFX_IDS_PREVIEWPAGEDESC, "ÆäÀÌÁö %u\nÆäÀÌÁö %u-%u\n" + + // print to file dialog strings + AFX_IDS_PRINTDEFAULTEXT, "prn" // default extension + AFX_IDS_PRINTDEFAULT, "Output.prn" // default file + AFX_IDS_PRINTFILTER, + "ÇÁ¸°ÅÍ ÆÄÀÏ (*.prn)|*.prn|¸ðµç ÆÄÀÏ (*.*)|*.*||" + AFX_IDS_PRINTCAPTION, "ÆÄÀÏ¿¡ Àμâ" // caption for browse dlg + AFX_IDS_PRINTTOFILE, "%1 ·Î(À¸·Î)" // to file +END + +// Print Preview Accelerator Table +AFX_IDR_PREVIEW_ACCEL ACCELERATORS LOADONCALL MOVEABLE +BEGIN + VK_NEXT, AFX_ID_PREVIEW_NEXT, VIRTKEY, NOINVERT + VK_PRIOR, AFX_ID_PREVIEW_PREV, VIRTKEY, NOINVERT + VK_ESCAPE, AFX_ID_PREVIEW_CLOSE, VIRTKEY, NOINVERT +END + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //__AFXPRINT_RC__ diff --git a/public/sdk/inc/mfc42/l.kor/afxres.rc b/public/sdk/inc/mfc42/l.kor/afxres.rc new file mode 100644 index 000000000..9062fce77 --- /dev/null +++ b/public/sdk/inc/mfc42/l.kor/afxres.rc @@ -0,0 +1,223 @@ +// 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. + +#ifndef __AFXRES_RC__ +#define __AFXRES_RC__ + +#ifndef __AFXRES_H__ + #include <afxres.h> +#endif + +#ifdef APSTUDIO_INVOKED +// This will prevent the VC++ Resource Editor user from saving this file +1 TEXTINCLUDE DISCARDABLE +BEGIN +"< Ç¥ÁØ MFC ¿øº»Àº º¯°æÇÒ ¼ö ¾øÀ½! >\0" +END +#endif //APSTUDIO_INVOKED + +#ifndef _AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Default resource description for MFC applications +///////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////// +// Strings + +STRINGTABLE DISCARDABLE +BEGIN +#ifndef _AFX_NO_APPMENU_RESOURCES + AFX_IDS_OPENFILE, "¿±â" +#ifndef _MAC + AFX_IDS_SAVEFILE, "´Ù¸¥ À̸§À¸·Î ÀúÀå" + AFX_IDS_ALLFILTER, "¸ðµç ÆÄÀÏ (*.*)" + AFX_IDS_UNTITLED, "Á¦¸ñ¾øÀ½" +#else + AFX_IDS_SAVEFILE, "´Ù¸¥ À̸§À¸·Î ÀúÀå:" + AFX_IDS_ALLFILTER, "¸ðµç ÆÄÀÏ" + AFX_IDS_UNTITLED, "Á¦¸ñ¾øÀ½" + AFX_IDS_ABOUT, "%1\205 Á¤º¸" +#endif + AFX_IDS_HIDE, "¼û±è(&H)" +#endif // !_AFX_NO_APPMENUSTRING_RESOURCES + + AFX_IDS_MEMORY_EXCEPTION, "¸Þ¸ð¸® ºÎÁ·." + AFX_IDS_NOT_SUPPORTED_EXCEPTION,"Áö¿øµÇÁö ¾Ê´Â ÀÛµ¿ÀÌ ½ÃµµµÇ¾úÀ½." + AFX_IDS_RESOURCE_EXCEPTION, "ÇÊ¿äÇÑ ÀÚ¿øÀÌ ¾øÀ½." + AFX_IDS_USER_EXCEPTION, "¹ÌÁöÀÇ ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù." + + // General error prompts +#ifndef _AFX_NO_FILECMD_RESOURCES + AFX_IDP_INVALID_FILENAME, "À߸øµÈ ÆÄÀÏ À̸§." + AFX_IDP_FAILED_TO_OPEN_DOC, "¹®¼ ¿±â ½ÇÆÐ." + AFX_IDP_FAILED_TO_SAVE_DOC, "¹®¼ ÀúÀå ½ÇÆÐ." +#ifndef _MAC + AFX_IDP_ASK_TO_SAVE, "º¯°æ ³»¿ëÀ» %1¿¡ ÀúÀåÇÒ±î¿ä?" +#else + AFX_IDP_ASK_TO_SAVE, "º¯°æ ³»¿ëÀ» %1 ¹®¼ \042%2\042¿¡ ÀúÀåÇÒ±î¿ä?" +#endif + AFX_IDP_FAILED_TO_CREATE_DOC, "ºó ¹®¼ ÀÛ¼º ½ÇÆÐ." + AFX_IDP_FILE_TOO_LARGE, "ÆÄÀÏÀÌ ³Ê¹« Ä¿¼ ¿ ¼ö ¾øÀ½." + AFX_IDP_FAILED_TO_START_PRINT, "Àμâ ÀÛ¾÷À» ½ÃÀÛÇÒ ¼ö ¾øÀ½." +#endif // !_AFX_NO_FILECMD_RESOURCES + AFX_IDP_FAILED_TO_LAUNCH_HELP, "µµ¿ò¸» ½ÃÀÛ ½ÇÆÐ." + AFX_IDP_INTERNAL_FAILURE, "³»ºÎ ÀÀ¿ëÇÁ·Î±×·¥ ¿À·ù." + AFX_IDP_COMMAND_FAILURE, "¸í·É ½ÇÆÐ." + AFX_IDP_FAILED_MEMORY_ALLOC "ÀÛµ¿À» ½ÇÇàÇϱ⿡ ¸Þ¸ð¸®°¡ ºÎÁ·ÇÔ." + AFX_IDP_GET_NOT_SUPPORTED, "¾²±âÀü¿ë Ư¼ºÀ» ÀÐÀ» ¼ö ¾øÀ½." + AFX_IDP_SET_NOT_SUPPORTED, "ÀбâÀü¿ë Ư¼ºÀ» ¾µ ¼ö ¾øÀ½." + AFX_IDP_UNREG_DONE, "System registry entries have been removed and the INI file (if any) was deleted." + AFX_IDP_UNREG_FAILURE, "Not all of the system registry entries (or INI file) were removed." + + // CFile/CArchive error strings for user failure +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FAILED_INVALID_FORMAT "¿¹±âÄ¡ ¾ÊÀº ÆÄÀÏ Æ÷¸Ë." +#ifndef _MAC + AFX_IDP_FAILED_INVALID_PATH "%1\nÀÌ ÆÄÀÏÀ» ãÀ» ¼ö ¾øÀ½.\n°æ·Î¿Í ÆÄÀÏ À̸§ÀÌ Á¤È®ÇÑÁö È®ÀÎÇϽʽÿÀ." + AFX_IDP_FAILED_DISK_FULL "´ë»ó µð½ºÅ© µå¶óÀ̺갡 ²Ë áÀ½." +#else + AFX_IDP_FAILED_INVALID_PATH "\042%1.\042 ÆÄÀÏÀ» ãÀ» ¼ö ¾øÀ½. ÆÄÀÏ À̸§ÀÌ Á¤È®ÇÑÁö È®ÀÎÇϽʽÿÀ." + AFX_IDP_FAILED_DISK_FULL "´ë»ó µð½ºÅ©°¡ ²Ë áÀ½." +#endif + AFX_IDP_FAILED_ACCESS_READ "%1·Î(À¸·Î)ºÎÅÍ ÀÐÀ» ¼ö ¾øÀ½. ´Ù¸¥ »ç¶÷ÀÌ ¿¾úÀ½." + AFX_IDP_FAILED_ACCESS_WRITE "%1¿¡ ¾µ ¼ö ¾øÀ½. ÀбâÀü¿ëÀ̰ųª ´Ù¸¥ »ç¶÷ÀÌ ¿¾úÀ½." + AFX_IDP_FAILED_IO_ERROR_READ "%1À»(¸¦) Àд Áß¿¡ ¿¹±âÄ¡ ¸øÇÑ ¿À·ù ¹ß»ý." + AFX_IDP_FAILED_IO_ERROR_WRITE "%1À»(¸¦) ¾²´Â Áß¿¡ ¿¹±âÄ¡ ¸øÇÑ ¿À·ù ¹ß»ý." +#endif // !_AFX_NO_CFILE_RESOURCES + + // Parsing error prompts + AFX_IDP_PARSE_INT, "Á¤¼ö¸¦ ÀÔ·ÂÇϽʽÿÀ." + AFX_IDP_PARSE_REAL, "¼ýÀÚ¸¦ ÀÔ·ÂÇϽʽÿÀ." + AFX_IDP_PARSE_INT_RANGE, "%1¿Í(°ú) %2 »çÀÌÀÇ Á¤¼ö¸¦ ÀÔ·ÂÇϽʽÿÀ." + AFX_IDP_PARSE_REAL_RANGE, "%1¿Í(°ú) %2 »çÀÌÀÇ ¼ýÀÚ¸¦ ÀÔ·ÂÇϽʽÿÀ." + AFX_IDP_PARSE_STRING_SIZE, "1% ÀÌÇÏÀÇ ¹®ÀÚ¸¦ ÀÔ·ÂÇϽʽÿÀ." + AFX_IDP_PARSE_RADIO_BUTTON, "¹öÆ°À» ¼±ÅÃÇϽʽÿÀ." + AFX_IDP_PARSE_BYTE, "0 ¿¡¼ 255 »çÀÌÀÇ Á¤¼ö¸¦ ÀÔ·ÂÇϽʽÿÀ." + AFX_IDP_PARSE_UINT, "¾çÀÇ Á¤¼ö¸¦ ÀÔ·ÂÇϽʽÿÀ." + AFX_IDP_PARSE_DATETIME, "³¯Â¥ ¹×/¶Ç´Â ½Ã°£À» ÀÔ·ÂÇϽʽÿÀ." + AFX_IDP_PARSE_CURRENCY, "Åëȸ¦ ÀÔ·ÂÇϽʽÿÀ." + +#ifndef _AFX_NO_OLE_RESOURCES + // OLE strings required for both servers and containers + AFX_IDS_PASTELINKEDTYPE "¿¬°áµÈ %s" + AFX_IDS_UNKNOWNTYPE "¹ÌÁöÀÇ Á¾·ù" +#ifndef _MAC + AFX_IDP_FAILED_TO_NOTIFY "%1\n¹®¼¸¦ µî·ÏÇÒ ¼ö ¾øÀ½.\n¹®¼°¡ ÀÌ¹Ì ¿·Á ÀÖÀ½." +#else + AFX_IDP_FAILED_TO_NOTIFY "\042%1.\042 ¹®¼¸¦ µî·ÏÇÒ ¼ö ¾øÀ½. ¹®¼°¡ ÀÌ¹Ì ¿·Á ÀÖÀ½." +#endif +#endif //!_AFX_NO_OLE_RESOURCES + + AFX_IDP_NO_ERROR_AVAILABLE "¿À·ù ¸Þ½ÃÁö°¡ ¾øÀ½." + +#ifndef _AFX_NO_CFILE_RESOURCES + AFX_IDP_FILE_NONE "¾Æ¹« ¿À·ùµµ ¹ß»ýÇÏÁö ¾Ê¾ÒÀ½." + AFX_IDP_FILE_GENERIC "%1 ¾×¼¼½º Áß¿¡ ¹ÌÁöÀÇ ¿À·ù ¹ß»ý." + AFX_IDP_FILE_NOT_FOUND "%1 À»(¸¦) ãÀ» ¼ö ¾øÀ½." + AFX_IDP_FILE_BAD_PATH "%1 ¿¡ À߸øµÈ °æ·Î°¡ ÀÖÀ½." + AFX_IDP_FILE_TOO_MANY_OPEN "¿¸° ÆÄÀÏÀÌ ³Ê¹« ¸¹±â ¶§¹®¿¡ %1À»(¸¦) ¿ ¼ö ¾øÀ½." + AFX_IDP_FILE_ACCESS_DENIED "%1¿¡ ´ëÇÑ ¾×¼¼½º°¡ °ÅºÎµÇ¾úÀ½." + AFX_IDP_FILE_INVALID_FILE "À߸øµÈ ÆÄÀÏ ÇÚµéÀÌ %1¿Í(°ú) °ü·ÃµÇ¾úÀ½." + AFX_IDP_FILE_REMOVE_CURRENT "%1Àº(´Â) ÇöÀç µð·ºÅ丮À̱⠶§¹®¿¡ »èÁ¦ÇÒ ¼ö ¾øÀ½." + AFX_IDP_FILE_DIR_FULL "µð·ºÅ丮°¡ ²Ë á±â ¶§¹®¿¡ %1À»(¸¦) ÀÛ¼ºÇÒ ¼ö ¾øÀ½." + AFX_IDP_FILE_BAD_SEEK "%1¿¡¼ Ž»ö ½ÇÆÐ" + AFX_IDP_FILE_HARD_IO "%1 ¾×¼¼½º Áß¿¡ Çϵå¿þ¾î ÀÔÃâ·Â ¿À·ù°¡ º¸°íµÇ¾úÀ½." + AFX_IDP_FILE_SHARING "%1 ¾×¼¼½º Áß¿¡ °øÀ¯ À§¹ÝÀÌ ¹ß»ýÇÏ¿´À½." + AFX_IDP_FILE_LOCKING "%1 ¾×¼¼½º Áß¿¡ Àá±Ý À§¹ÝÀÌ ¹ß»ýÇÏ¿´À½." + AFX_IDP_FILE_DISKFULL "%1 ¾×¼¼½º Áß¿¡ µð½ºÅ©°¡ ²Ë Âü." + AFX_IDP_FILE_EOF "%1ÀÇ ³¡À» Áö³ª¼ ¾×¼¼½ºÇÏ·Á´Â ½Ãµµ°¡ ÀÖ¾úÀ½." + AFX_IDS_UNNAMED_FILE "À̸§ ¾ø´Â ÆÄÀÏ" +#endif // !_AFX_NO_CFILE_RESOURCES + + AFX_IDP_ARCH_NONE "¾Æ¹« ¿À·ùµµ ¹ß»ýÇÏÁö ¾Ê¾ÒÀ½." + AFX_IDP_ARCH_GENERIC "%1 ¾×¼¼½º Áß¿¡ ¹ÌÁöÀÇ ¿À·ù ¹ß»ý." + AFX_IDP_ARCH_READONLY "%1 Àб⿡ ¾²±â¸¦ ÇÏ·Á´Â ½Ãµµ°¡ ÀÖ¾úÀ½." + AFX_IDP_ARCH_ENDOFFILE "%1ÀÇ ³¡À» Áö³ª¼ ¾×¼¼½ºÇÏ·Á´Â ½Ãµµ°¡ ÀÖ¾úÀ½." + AFX_IDP_ARCH_WRITEONLY "%1 ¾²±â·ÎºÎÅÍ ÀÐÀ¸·Á´Â ½Ãµµ°¡ ÀÖ¾úÀ½." + AFX_IDP_ARCH_BADINDEX "%1¿¡´Â ºÒ·® Æ÷¸ËÀÌ ÀÖÀ½." + AFX_IDP_ARCH_BADCLASS "%1¿¡´Â ¿¹±âÄ¡ ¸øÇÑ °³Ã¼°¡ ÀÖÀ½." + AFX_IDP_ARCH_BADSCHEMA "%1¿¡´Â ºÎÁ¤È®ÇÑ ½ºÅ°¸¶°¡ ÀÖÀ½." + +#ifndef _AFX_NO_MAPI_RESOURCES + // MAPI strings / error messages + AFX_IDP_FAILED_MAPI_LOAD "¿ìÆí ½Ã½ºÅÛ Áö¿øÀ» ÀоîµéÀÏ ¼ö ¾øÀ½." + AFX_IDP_INVALID_MAPI_DLL "¿ìÆí ½Ã½ºÅÛ DLLÀÌ À߸øµÇ¾úÀ½." + AFX_IDP_FAILED_MAPI_SEND "¿ìÆí º¸³»±â°¡ ¸Þ½ÃÁö ¼Û½Å¿¡ ½ÇÆÐÇßÀ½." +#endif //!_AFX_NO_MAPI_RESOURCES + +#ifndef _AFX_NO_OCC_RESOURCES + AFX_IDS_OCC_SCALEUNITS_PIXELS "Çȼ¿" +#endif //!_AFX_NO_OCC_RESOURCES +END + +///////////////////////////////////////////////////////////////////////////// +// Cursors + +AFX_IDC_CONTEXTHELP CURSOR DISCARDABLE "res\\help.cur" + +#ifndef _AFX_NO_SPLITTER_RESOURCES +AFX_IDC_SMALLARROWS CURSOR DISCARDABLE "res\\sarrows.cur" +AFX_IDC_HSPLITBAR CURSOR DISCARDABLE "res\\splith.cur" +AFX_IDC_VSPLITBAR CURSOR DISCARDABLE "res\\splitv.cur" +AFX_IDC_NODROPCRSR CURSOR DISCARDABLE "res\\nodrop.cur" +#endif //!_AFX_NO_SPLITTER_RESOURCES + +#ifndef _AFX_NO_TRACKER_RESOURCES +AFX_IDC_TRACKNWSE CURSOR DISCARDABLE "res\\trcknwse.cur" +AFX_IDC_TRACKNESW CURSOR DISCARDABLE "res\\trcknesw.cur" +AFX_IDC_TRACKNS CURSOR DISCARDABLE "res\\trckns.cur" +AFX_IDC_TRACKWE CURSOR DISCARDABLE "res\\trckwe.cur" +AFX_IDC_TRACK4WAY CURSOR DISCARDABLE "res\\trck4way.cur" +AFX_IDC_MOVE4WAY CURSOR DISCARDABLE "res\\move4way.cur" +#endif //!_AFX_NO_TRACKER_RESOURCES + +#ifndef _AFX_NO_CTL3D_RESOURCES +26567 BITMAP "res\\3dcheck.bmp" // Note: 26567 comes from CTL3D.H +#endif + +///////////////////////////////////////////////////////////////////////////// +// Standard Dialogs + +#ifndef _AFX_NO_NEWTYPEDLG_RESOURCES +AFX_IDD_NEWTYPEDLG DIALOG DISCARDABLE 9, 26, 183, 70 +#ifndef _MAC +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | 0x04 +#else +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION +#endif +CAPTION "»õ·Î¿î" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "»õ·Î¿î(&N)",IDC_STATIC,6,5,123,8,NOT WS_GROUP + LISTBOX AFX_IDC_LISTBOX,6,15,125,49,WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "È®ÀÎ",IDOK,137,6,40,14 + PUSHBUTTON "Ãë¼Ò",IDCANCEL,137,23,40,14 + PUSHBUTTON "µµ¿ò¸»(&H)",ID_HELP,137,43,40,14 +END +#endif // !_AFX_NO_NEWTYPEDLG_RESOURCES + +///////////////////////////////////////////////////////////////////////////// +// CMiniFrameWnd Bitmap + +AFX_IDB_MINIFRAME_MENU BITMAP DISCARDABLE "res\\minifwnd.bmp" + +///////////////////////////////////////////////////////////////////////////// +// CCheckListBox Bitmaps + +AFX_IDB_CHECKLISTBOX_NT BITMAP DISCARDABLE "res\\ntcheck.bmp" +AFX_IDB_CHECKLISTBOX_95 BITMAP DISCARDABLE "res\\95check.bmp" + +///////////////////////////////////////////////////////////////////////////// + +#endif //!_AFXDLL +#endif //!__AFXRES_RC__ + +///////////////////////////////////////////////////////////////////////////// diff --git a/public/sdk/inc/mfc42/mfcsamps.mak b/public/sdk/inc/mfc42/mfcsamps.mak new file mode 100644 index 000000000..18e946cd5 --- /dev/null +++ b/public/sdk/inc/mfc42/mfcsamps.mak @@ -0,0 +1,490 @@ +# 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. + +# Common include for building MFC Sample programs +# +# typical usage +# PROJ=foo +# OBJS=foo.obj bar.obj ... +# !INCLUDE ..\..\SAMPLE_.MAK +# +# ROOT specifies the location of the msdev\samples\mfc directory, +# relative to the project directory. Because the MFC tutorial samples +# have an intermediate STEP<n> subdirectory, they use +# ROOT=..\..\.. +# instead of the default +# ROOT=..\.. +# +# NOTE: do not include 'stdafx.obj' in the OBJS list - the correctly +# built version will be included for you +# +# Options to NMAKE: +# "PLATFORM=?" +# This option chooses the appropriate tools and sources for the +# different platforms support by Windows/NT. Currently INTEL, +# MIPS, ALPHA, PPC, M68K, and MPPC are supported; more will be +# added as they become available. The default is chosen based on +# the host environment. This option must be set for MAC_ builds. +# "DEBUG=0" use release (default debug) +# "CODEVIEW=1" include codeview info (even for release builds) +# "AFXDLL=1" to use shared DLL version of MFC +# "USRDLL=1" to build a DLL that uses static MFC +# "UNICODE=1" to build UNICODE enabled applications +# (not all samples support UNICODE) +# "NO_PCH=1" do not use precompiled headers (defaults to use pch) +# "COFF=1" include COFF symbols + +!ifndef PROJ +!ERROR You forgot to define 'PROJ' symbol!! +!endif + + +ROOT=. +!ifndef ROOT +!endif + +!ifndef OBJS +!ERROR You forgot to define 'OBJS' symbol!! +!endif + +!ifndef DEBUG +DEBUG=1 +!endif + +!ifndef AFXDLL +AFXDLL=0 +!endif + +!ifndef UNICODE +UNICODE=0 +!endif + +!ifndef USRDLL +USRDLL=0 +!endif + +!if "$(USRDLL)" != "0" +AFXDLL=0 +!endif + +!ifndef PLATFORM +!ifndef PROCESSOR_ARCHITECTURE +PROCESSOR_ARCHITECTURE=x86 +!endif +!if "$(PROCESSOR_ARCHITECTURE)" == "x86" +PLATFORM=INTEL +!endif +!if "$(PROCESSOR_ARCHITECTURE)" == "ALPHA" +PLATFORM=ALPHA +!endif +!if "$(PROCESSOR_ARCHITECTURE)" == "MIPS" +PLATFORM=MIPS +!endif +!if "$(PROCESSOR_ARCHITECTURE)" == "PPC" +PLATFORM=PPC +!endif +!endif + +!ifndef USES_OLE +USES_OLE=0 +!endif + +!ifndef USES_DB +USES_DB=0 +!endif + +!ifndef CONSOLE +CONSOLE=0 +!endif + +!ifndef NO_PCH +NO_PCH=0 +!endif + +# +# Set BASE=W, M, or P depending on platform +# +BASE=W +!if "$(PLATFORM)" == "M68K" || "$(PLATFORM)" == "MPPC" +MACOS=1 +!undef BASE +!if "$(PLATFORM)" == "M68K" +BASE=M +!else +BASE=P +!endif +!endif + +!if "$(UNICODE)" == "0" +!if "$(AFXDLL)" == "0" +!if "$(USRDLL)" != "1" +STDAFX=stdafx +!else +STDAFX=stdusr +!endif +!else +STDAFX=stddll +!endif +!endif + +!if "$(UNICODE)" == "1" +!if "$(AFXDLL)" == "0" +!if "$(USRDLL)" != "1" +STDAFX=uniafx +!else +STDAFX=uniusr +!endif +!else +STDAFX=unidll +!endif +!endif + +!if "$(DEBUG)" == "1" +STDAFX=$(STDAFX)d +!if "$(COFF)" != "1" +!ifndef CODEVIEW +CODEVIEW=1 +!endif +!endif +!endif + +!if "$(CODEVIEW)" == "1" +STDAFX=$(STDAFX)v +!endif + +!if "$(DEBUG)" == "1" +DEBUG_SUFFIX=d +!endif + +!if "$(DEBUG)" != "0" +DEBUGFLAGS=/Od +MFCDEFS=$(MFCDEFS) /D_DEBUG + +!if "$(PLATFORM)" == "M68K" +DEBUGFLAGS=/Q68m +!endif + +!endif + +!if "$(DEBUG)" == "0" +!if "$(PLATFORM)" == "INTEL" +DEBUGFLAGS=/O1 /Gy +!endif +!if "$(PLATFORM)" == "MIPS" +DEBUGFLAGS=/O1 /Gy +!endif +!if "$(PLATFORM)" == "ALPHA" +DEBUGFLAGS=/O1 /Gy +!endif +!if "$(PLATFORM)" == "PPC" +DEBUGFLAGS=/O1 /Gy +!endif +!if "$(PLATFORM)" == "M68K" +DEBUGFLAGS=/O1 /Gy +!endif +!if "$(PLATFORM)" == "MPPC" +DEBUGFLAGS=/O1 /Gy +!endif +!endif # DEBUG == 0 + +!if "$(CODEVIEW)" == "1" || "$(COFF)" == "1" +DEBUGFLAGS=$(DEBUGFLAGS) /Z7 +!endif + +!if "$(UNICODE)" == "1" +DLL_SUFFIX=u +!endif + +!if "$(AFXDLL)" == "1" +MFCFLAGS=$(MFCFLAGS) /MD$(DEBUG_SUFFIX) +MFCDEFS=$(MFCDEFS) /D_AFXDLL +!endif # AFXDLL == 1 + +!if "$(USRDLL)" == "1" +MFCDEFS=$(MFCDEFS) /D_USRDLL /D_WINDLL +!endif + +!if "$(AFXDLL)" == "0" +!if "$(MACOS)" != "1" +MFCFLAGS=$(MFCFLAGS) /MT$(DEBUG_SUFFIX) +!elseif "$(PLATFORM)" != "M68K" +MFCFLAGS=$(MFCFLAGS) /ML$(DEBUG_SUFFIX) +!endif +!endif + +!if "$(UNICODE)" == "1" +MFCDEFS=$(MFCDEFS) /D_UNICODE +!else +MFCDEFS=$(MFCDEFS) /D_MBCS +!endif + +!if "$(MACOS)" == "1" +MFCDEFS=$(MFCDEFS) /D_MAC +!if "$(PLATFORM)" == "M68K" +ARCHITECTURE='m68k' +!else +ARCHITECTURE='pwpc' +!endif +!endif + +!if "$(PLATFORM)" == "INTEL" +MFCDEFS=$(MFCDEFS) /D_X86_ +CPP=cl +CFLAGS=/GX /c /W3 $(DEBUGFLAGS) $(MFCFLAGS) $(MFCDEFS) +!endif + +!if "$(PLATFORM)" == "MIPS" +MFCDEFS=$(MFCDEFS) /D_MIPS_ +CPP=cl +CFLAGS=/GX /c /W3 $(DEBUGFLAGS) $(MFCFLAGS) $(MFCDEFS) +!endif + +!if "$(PLATFORM)" == "ALPHA" +MFCDEFS=$(MFCDEFS) /D_ALPHA_ +CPP=cl +CFLAGS=/GX /c /W3 $(DEBUGFLAGS) $(MFCFLAGS) $(MFCDEFS) +!endif + +!if "$(PLATFORM)" == "PPC" +MFCDEFS=$(MFCDEFS) /D_PPC_ +!if "$(PROCESSOR_ARCHITECTURE)" == "x86" +CPP=mcl +!else +CPP=cl +!endif +CFLAGS=/GX /c /W3 $(DEBUGFLAGS) $(MFCFLAGS) $(MFCDEFS) +!endif + +!if "$(PLATFORM)" == "M68K" +MFCDEFS=$(MFCDEFS) /D_WINDOWS /DWIN32 /D_68K_ +CPP=cl +CFLAGS=/GX /c /W3 /AL /Gt1 /Q68s $(DEBUGFLAGS) $(MFCFLAGS) $(MFCDEFS) +!endif + +!if "$(PLATFORM)" == "MPPC" +MFCDEFS=$(MFCDEFS) /D_WINDOWS /DWIN32 /D_MPPC_ +CPP=cl +CFLAGS=/GX /c /W3 $(DEBUGFLAGS) $(MFCFLAGS) $(MFCDEFS) +!endif + +CPPMAIN_FLAGS=$(CFLAGS) + +!if "$(NO_PCH)" == "1" +CPPFLAGS=$(CPPMAIN_FLAGS) +!else +PCHDIR=. +CPPFLAGS=$(CPPMAIN_FLAGS) /Yustdafx.h /Fp$(PCHDIR)\$(STDAFX).pch +!endif + +!if "$(COFF)" == "1" +NO_PDB=1 +!if "$(CODEVIEW)" != "1" +LINKDEBUG=/incremental:no /debug:full /debugtype:coff +!else +LINKDEBUG=/incremental:no /debug:full /debugtype:both +!endif +!endif + +!if "$(COFF)" != "1" +!if "$(CODEVIEW)" == "1" +LINKDEBUG=/incremental:no /debug:full /debugtype:cv +!else +LINKDEBUG=/incremental:no /debug:none +!endif +!endif + +!if "$(NO_PDB)" == "1" +LINKDEBUG=$(LINKDEBUG) /pdb:none +!endif + +!if "$(PLATFORM)" == "INTEL" +LINKCMD=link $(LINKDEBUG) +!endif + +!if "$(PLATFORM)" == "MIPS" +LINKCMD=link $(LINKDEBUG) +!endif + +!if "$(PLATFORM)" == "ALPHA" +LINKCMD=link $(LINKDEBUG) +!endif + +!if "$(PLATFORM)" == "PPC" +LINKCMD=link $(LINKDEBUG) +!endif + +!if "$(PLATFORM)" == "M68K" +LINKCMD=link $(LINKDEBUG) +!endif + +!if "$(PLATFORM)" == "MPPC" +LINKCMD=link $(LINKDEBUG) +!endif + +# link flags - must be specified after $(LINKCMD) +# +# conflags : creating a character based console application +# guiflags : creating a GUI based "Windows" application + +!if "$(MACOS)" != "1" +CONFLAGS=/subsystem:console +GUIFLAGS=/subsystem:windows +!else +!if defined(MACSIG) +GUIFLAGS=/mac:type=APPL /mac:creator=$(MACSIG) +!endif +!endif + +!if "$(UNICODE)" == "1" +CONFLAGS=$(CONFLAGS) /entry:wmainCRTStartup +GUIFLAGS=$(GUIFLAGS) /entry:wWinMainCRTStartup +!endif + +!if "$(MACOS)" != "1" +PROJRESFILE=$(PROJ).res +!else +PROJRESFILE=$(PROJ).rsc $(MACSIG)mac.rsc +!if "$(AFXDLL)" != "1" +BASERESFILE= +!endif +!endif +RESFILE=$(PROJRESFILE) + +.SUFFIXES: +.SUFFIXES: .c .cpp .rcm .rc + +.cpp.obj: + $(CPP) @<< +$(CPPFLAGS) $*.cpp +<< + +.c.obj: + $(CPP) @<< +$(CFLAGS) $(CVARS) $*.c +<< + +!if "$(MACOS)" != "1" +.rc.res: + rc /r $(MFCDEFS) $< +!else +.rc.rsc: + rc /r /m $(MFCDEFS) $< +!endif + +############################################################################# + +!if "$(NO_PCH)" == "0" +LINK_OBJS=$(OBJS) $(PCHDIR)\$(STDAFX).obj +!else +LINK_OBJS=$(OBJS) +!endif + +# +# Build CONSOLE Win32 application +# +!if "$(CONSOLE)" == "1" + +!if "$(MACOS)" == "1" +!error Macintosh targets do not support console applications +!endif + +$(PROJ).exe: $(LINK_OBJS) + $(LINKCMD) @<< +$(CONFLAGS) /out:$(PROJ).exe /map:$(PROJ).map +$(LINK_OBJS) $(EXTRA_LIBS) +<< + +!endif # CONSOLE=1 + +# +# Build Win32 application +# +!if "$(CONSOLE)" == "0" + +!if "$(MACOS)" == "1" +copy: $(PROJ).exe +!if defined(MACNAME) + mfile copy $(PROJ).exe ":$(MACNAME):$(PROJ)" +!endif +!endif + +!if "$(MACOS)" == "1" +$(MACSIG)mac.rsc: $(MACSIG)mac.r + mrc $(MFCDEFS) /DARCHITECTURE=$(ARCHITECTURE) /o $(MACSIG)mac.rsc $(MACSIG)mac.r +!endif + +!if "$(USRDLL)" == "1" +$(PROJ).dll: $(LINK_OBJS) $(PROJRESFILE) + $(LINKCMD) @<< +$(GUIFLAGS) /out:$(PROJ).dll /map:$(PROJ).map +/dll /def:$(PROJ).def +$(LINK_OBJS) $(RESFILE) $(EXTRA_LIBS) +<< + +$(PROJ).res: resource.h +$(PROJ).rsc: resource.h +!endif + +!if "$(SIMPLE_APP)" != "1" +$(PROJ).exe: $(LINK_OBJS) $(PROJRESFILE) + $(LINKCMD) @<< +$(GUIFLAGS) /out:$(PROJ).exe /map:$(PROJ).map +$(LINK_OBJS) $(RESFILE) $(EXTRA_LIBS) +<< + +$(PROJ).res: resource.h +$(PROJ).rsc: resource.h +!endif + +!if "$(SIMPLE_APP)" == "1" +!if "$(MACOS)" == "1" +$(PROJ).exe: $(LINK_OBJS) $(MACSIG)mac.rsc + $(LINKCMD) @<< +$(GUIFLAGS) /out:$(PROJ).exe /map:$(PROJ).map +$(LINK_OBJS) $(MACSIG)mac.rsc $(EXTRA_LIBS) +<< + +!else +$(PROJ).exe: $(LINK_OBJS) + $(LINKCMD) @<< +$(GUIFLAGS) /out:$(PROJ).exe /map:$(PROJ).map +$(LINK_OBJS) $(EXTRA_LIBS) +<< + +!endif +!endif + +!if "$(NO_PCH)" == "0" +$(PCHDIR)\$(STDAFX).obj $(PCHDIR)\$(STDAFX).pch: stdafx.h stdafx.cpp + echo "BUILDING SHARED PCH and PCT files" + $(CPP) @<< +$(CPPMAIN_FLAGS) /Ycstdafx.h /Fp$(PCHDIR)\$(STDAFX).pch /Fo$(PCHDIR)\$(STDAFX).obj /c $(ROOT)\stdafx.cpp +<< + +$(OBJS): $(PCHDIR)\$(STDAFX).pch +!endif + +!endif # CONSOLE=0 + +clean:: + if exist $(PROJ).exe erase $(PROJ).exe + if exist *.aps erase *.aps + if exist *.pch erase *.pch + if exist *.map erase *.map + if exist *.obj erase *.obj + if exist *.exp erase *.exp + if exist *.pdb erase *.pdb + if exist *.map erase *.map + if exist *.lib erase *.lib + if exist *.res erase *.res + if exist *.rsc erase *.rsc + if exist *.pef erase *.pef + +############################################################################# diff --git a/public/sdk/inc/mfc42/mssccprj.scc b/public/sdk/inc/mfc42/mssccprj.scc new file mode 100644 index 000000000..b03b9d539 --- /dev/null +++ b/public/sdk/inc/mfc42/mssccprj.scc @@ -0,0 +1,4 @@ +SCC = This is a Source Code Control file + +[mfcsamps.mak] +SCC_Project_Name = "$/Sources - MFC/MFC 4.2/include", QDAAAAAA diff --git a/public/sdk/inc/mfc42/res/3dcheck.bmp b/public/sdk/inc/mfc42/res/3dcheck.bmp Binary files differnew file mode 100644 index 000000000..23d739342 --- /dev/null +++ b/public/sdk/inc/mfc42/res/3dcheck.bmp diff --git a/public/sdk/inc/mfc42/res/95check.bmp b/public/sdk/inc/mfc42/res/95check.bmp Binary files differnew file mode 100644 index 000000000..3fe90db3b --- /dev/null +++ b/public/sdk/inc/mfc42/res/95check.bmp diff --git a/public/sdk/inc/mfc42/res/copy4way.cur b/public/sdk/inc/mfc42/res/copy4way.cur Binary files differnew file mode 100644 index 000000000..e0f41447d --- /dev/null +++ b/public/sdk/inc/mfc42/res/copy4way.cur diff --git a/public/sdk/inc/mfc42/res/help.cur b/public/sdk/inc/mfc42/res/help.cur Binary files differnew file mode 100644 index 000000000..217090e5b --- /dev/null +++ b/public/sdk/inc/mfc42/res/help.cur diff --git a/public/sdk/inc/mfc42/res/help.rsc b/public/sdk/inc/mfc42/res/help.rsc Binary files differnew file mode 100644 index 000000000..3e21661ee --- /dev/null +++ b/public/sdk/inc/mfc42/res/help.rsc diff --git a/public/sdk/inc/mfc42/res/magnify.cur b/public/sdk/inc/mfc42/res/magnify.cur Binary files differnew file mode 100644 index 000000000..d9a7042cf --- /dev/null +++ b/public/sdk/inc/mfc42/res/magnify.cur diff --git a/public/sdk/inc/mfc42/res/magnify.rsc b/public/sdk/inc/mfc42/res/magnify.rsc Binary files differnew file mode 100644 index 000000000..5d0c3813a --- /dev/null +++ b/public/sdk/inc/mfc42/res/magnify.rsc diff --git a/public/sdk/inc/mfc42/res/minifwnd.bmp b/public/sdk/inc/mfc42/res/minifwnd.bmp Binary files differnew file mode 100644 index 000000000..b5861c4f7 --- /dev/null +++ b/public/sdk/inc/mfc42/res/minifwnd.bmp diff --git a/public/sdk/inc/mfc42/res/move4way.cur b/public/sdk/inc/mfc42/res/move4way.cur Binary files differnew file mode 100644 index 000000000..545afa10d --- /dev/null +++ b/public/sdk/inc/mfc42/res/move4way.cur diff --git a/public/sdk/inc/mfc42/res/nodrop.cur b/public/sdk/inc/mfc42/res/nodrop.cur Binary files differnew file mode 100644 index 000000000..9fc75a562 --- /dev/null +++ b/public/sdk/inc/mfc42/res/nodrop.cur diff --git a/public/sdk/inc/mfc42/res/ntcheck.bmp b/public/sdk/inc/mfc42/res/ntcheck.bmp Binary files differnew file mode 100644 index 000000000..5ad35e43c --- /dev/null +++ b/public/sdk/inc/mfc42/res/ntcheck.bmp diff --git a/public/sdk/inc/mfc42/res/sarrows.cur b/public/sdk/inc/mfc42/res/sarrows.cur Binary files differnew file mode 100644 index 000000000..b4e601ef0 --- /dev/null +++ b/public/sdk/inc/mfc42/res/sarrows.cur diff --git a/public/sdk/inc/mfc42/res/split.rsc b/public/sdk/inc/mfc42/res/split.rsc Binary files differnew file mode 100644 index 000000000..8afb35a95 --- /dev/null +++ b/public/sdk/inc/mfc42/res/split.rsc diff --git a/public/sdk/inc/mfc42/res/splith.cur b/public/sdk/inc/mfc42/res/splith.cur Binary files differnew file mode 100644 index 000000000..bb03d7734 --- /dev/null +++ b/public/sdk/inc/mfc42/res/splith.cur diff --git a/public/sdk/inc/mfc42/res/splitv.cur b/public/sdk/inc/mfc42/res/splitv.cur Binary files differnew file mode 100644 index 000000000..1fd0d55c8 --- /dev/null +++ b/public/sdk/inc/mfc42/res/splitv.cur diff --git a/public/sdk/inc/mfc42/res/trck4way.cur b/public/sdk/inc/mfc42/res/trck4way.cur Binary files differnew file mode 100644 index 000000000..974d02017 --- /dev/null +++ b/public/sdk/inc/mfc42/res/trck4way.cur diff --git a/public/sdk/inc/mfc42/res/trcknesw.cur b/public/sdk/inc/mfc42/res/trcknesw.cur Binary files differnew file mode 100644 index 000000000..f92de6e68 --- /dev/null +++ b/public/sdk/inc/mfc42/res/trcknesw.cur diff --git a/public/sdk/inc/mfc42/res/trckns.cur b/public/sdk/inc/mfc42/res/trckns.cur Binary files differnew file mode 100644 index 000000000..49e558267 --- /dev/null +++ b/public/sdk/inc/mfc42/res/trckns.cur diff --git a/public/sdk/inc/mfc42/res/trcknwse.cur b/public/sdk/inc/mfc42/res/trcknwse.cur Binary files differnew file mode 100644 index 000000000..7a7d8820d --- /dev/null +++ b/public/sdk/inc/mfc42/res/trcknwse.cur diff --git a/public/sdk/inc/mfc42/res/trckwe.cur b/public/sdk/inc/mfc42/res/trckwe.cur Binary files differnew file mode 100644 index 000000000..a069140e7 --- /dev/null +++ b/public/sdk/inc/mfc42/res/trckwe.cur diff --git a/public/sdk/inc/mfc42/res/truetype.bmp b/public/sdk/inc/mfc42/res/truetype.bmp Binary files differnew file mode 100644 index 000000000..3b22b2e03 --- /dev/null +++ b/public/sdk/inc/mfc42/res/truetype.bmp diff --git a/public/sdk/inc/mfc42/servprov.h b/public/sdk/inc/mfc42/servprov.h new file mode 100644 index 000000000..cd50c5bcc --- /dev/null +++ b/public/sdk/inc/mfc42/servprov.h @@ -0,0 +1,191 @@ +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + +/* File created by MIDL compiler version 3.00.15 */ +/* at Fri Jun 14 20:22:17 1996 + */ +/* Compiler settings for servprov.idl: + Oi, W1, Zp8, env=Win32, ms_ext, c_ext + error checks: none +*/ +//@@MIDL_FILE_HEADING( ) +#include "rpc.h" +#include "rpcndr.h" +#ifndef COM_NO_WINDOWS_H +#include "windows.h" +#include "ole2.h" +#endif /*COM_NO_WINDOWS_H*/ + +#ifndef __servprov_h__ +#define __servprov_h__ + +#ifdef __cplusplus +extern "C"{ +#endif + +/* Forward Declarations */ + +#ifndef __IServiceProvider_FWD_DEFINED__ +#define __IServiceProvider_FWD_DEFINED__ +typedef interface IServiceProvider IServiceProvider; +#endif /* __IServiceProvider_FWD_DEFINED__ */ + + +/* header files for imported files */ +#include "objidl.h" +#include "oleidl.h" + +void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t); +void __RPC_USER MIDL_user_free( void __RPC_FAR * ); + +/**************************************** + * Generated header for interface: __MIDL__intf_0000 + * at Fri Jun 14 20:22:17 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright 1995 - 1996 Microsoft Corporation. All Rights Reserved. +// +// File: servprov.h +// +//-------------------------------------------------------------------------- + +#pragma comment(lib,"uuid3.lib") + +#ifndef _LPSERVICEPROVIDER_DEFINED +#define _LPSERVICEPROVIDER_DEFINED + + +extern RPC_IF_HANDLE __MIDL__intf_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0000_v0_0_s_ifspec; + +#ifndef __IServiceProvider_INTERFACE_DEFINED__ +#define __IServiceProvider_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: IServiceProvider + * at Fri Jun 14 20:22:17 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [unique][uuid][local][object] */ + + +typedef /* [unique] */ IServiceProvider __RPC_FAR *LPSERVICEPROVIDER; + + +EXTERN_C const IID IID_IServiceProvider; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + interface IServiceProvider : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE QueryService( + /* [in] */ REFGUID rsid, + /* [in] */ REFIID iid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObj) = 0; + + }; + +#else /* C style interface */ + + typedef struct IServiceProviderVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( + IServiceProvider __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( + IServiceProvider __RPC_FAR * This); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( + IServiceProvider __RPC_FAR * This); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryService )( + IServiceProvider __RPC_FAR * This, + /* [in] */ REFGUID rsid, + /* [in] */ REFIID iid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObj); + + END_INTERFACE + } IServiceProviderVtbl; + + interface IServiceProvider + { + CONST_VTBL struct IServiceProviderVtbl __RPC_FAR *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IServiceProvider_QueryInterface(This,riid,ppvObject) \ + (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) + +#define IServiceProvider_AddRef(This) \ + (This)->lpVtbl -> AddRef(This) + +#define IServiceProvider_Release(This) \ + (This)->lpVtbl -> Release(This) + + +#define IServiceProvider_QueryService(This,rsid,iid,ppvObj) \ + (This)->lpVtbl -> QueryService(This,rsid,iid,ppvObj) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +HRESULT STDMETHODCALLTYPE IServiceProvider_QueryService_Proxy( + IServiceProvider __RPC_FAR * This, + /* [in] */ REFGUID rsid, + /* [in] */ REFIID iid, + /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObj); + + +void __RPC_STUB IServiceProvider_QueryService_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __IServiceProvider_INTERFACE_DEFINED__ */ + + +/**************************************** + * Generated header for interface: __MIDL__intf_0082 + * at Fri Jun 14 20:22:17 1996 + * using MIDL 3.00.15 + ****************************************/ +/* [local] */ + + +#endif + + +extern RPC_IF_HANDLE __MIDL__intf_0082_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL__intf_0082_v0_0_s_ifspec; + +/* Additional Prototypes for ALL interfaces */ + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/public/sdk/inc/mfc42/sql.h b/public/sdk/inc/mfc42/sql.h new file mode 100644 index 000000000..6aa49d658 --- /dev/null +++ b/public/sdk/inc/mfc42/sql.h @@ -0,0 +1,1259 @@ +/***************************************************************** +** SQL.H - This is the the main include for ODBC Core functions. +** +** preconditions: +** #include "windows.h" +** +** (C) Copyright 1990 - 1995 By Microsoft Corp. +** +** Updated 5/12/93 for 2.00 specification +** Updated 5/23/94 for 2.01 specification +** Updated 11/10/94 for 2.10 specification +** Updated 04/10/95 for 2.50 specification +*********************************************************************/ + +#ifndef __SQL +#define __SQL + +/* +* ODBCVER ODBC version number (0x0200). To exclude +* definitions introduced in version 2.0 (or above) +* #define ODBCVER 0x0100 before #including <sql.h> +*/ + +/* If ODBCVER is not defined, assume version 2.50 */ +#ifndef ODBCVER +#define ODBCVER 0x0250 +#endif + +#ifdef __cplusplus +extern "C" { /* Assume C declarations for C++ */ +#endif /* __cplusplus */ + +/* generally useful constants */ +#if (ODBCVER >= 0x0200) +#define SQL_SPEC_MAJOR 2 /* Major version of specification */ +#define SQL_SPEC_MINOR 50 /* Minor version of specification */ +#define SQL_SPEC_STRING "02.50" /* String constant for version */ +#endif /* ODBCVER >= 0x0200 */ +#define SQL_SQLSTATE_SIZE 5 /* size of SQLSTATE */ +#define SQL_MAX_MESSAGE_LENGTH 512 /* message buffer size */ +#define SQL_MAX_DSN_LENGTH 32 /* maximum data source name size*/ + +/* RETCODEs */ +#define SQL_INVALID_HANDLE (-2) +#define SQL_ERROR (-1) +#define SQL_SUCCESS 0 +#define SQL_SUCCESS_WITH_INFO 1 +#define SQL_NO_DATA_FOUND 100 + +/* Standard SQL datatypes, using ANSI type numbering */ +#define SQL_CHAR 1 +#define SQL_NUMERIC 2 +#define SQL_DECIMAL 3 +#define SQL_INTEGER 4 +#define SQL_SMALLINT 5 +#define SQL_FLOAT 6 +#define SQL_REAL 7 +#define SQL_DOUBLE 8 +#define SQL_VARCHAR 12 + +#define SQL_TYPE_NULL 0 +#define SQL_TYPE_MIN SQL_BIT +#define SQL_TYPE_MAX SQL_VARCHAR +#define SQL_ALL_TYPES 0 + +/* C datatype to SQL datatype mapping SQL types + ------------------- */ +#define SQL_C_CHAR SQL_CHAR /* CHAR, VARCHAR, DECIMAL, NUMERIC */ +#define SQL_C_LONG SQL_INTEGER /* INTEGER */ +#define SQL_C_SHORT SQL_SMALLINT /* SMALLINT */ +#define SQL_C_FLOAT SQL_REAL /* REAL */ +#define SQL_C_DOUBLE SQL_DOUBLE /* FLOAT, DOUBLE */ +#define SQL_C_DEFAULT 99 + +/* NULL status constants. These are used in SQLColumns, SQLColAttributes, +SQLDescribeCol, SQLDescribeParam, and SQLSpecialColumns to describe the +nullablity of a column in a table. */ +#define SQL_NO_NULLS 0 +#define SQL_NULLABLE 1 +#define SQL_NULLABLE_UNKNOWN 2 + +/* Special length values */ +#define SQL_NULL_DATA (-1) +#define SQL_DATA_AT_EXEC (-2) +#define SQL_NTS (-3) + +/* SQLFreeStmt defines */ +#define SQL_CLOSE 0 +#define SQL_DROP 1 +#define SQL_UNBIND 2 +#define SQL_RESET_PARAMS 3 + +/* SQLTransact defines */ +#define SQL_COMMIT 0 +#define SQL_ROLLBACK 1 + +/* SQLColAttributes defines */ +#define SQL_COLUMN_COUNT 0 +#define SQL_COLUMN_NAME 1 +#define SQL_COLUMN_TYPE 2 +#define SQL_COLUMN_LENGTH 3 +#define SQL_COLUMN_PRECISION 4 +#define SQL_COLUMN_SCALE 5 +#define SQL_COLUMN_DISPLAY_SIZE 6 +#define SQL_COLUMN_NULLABLE 7 +#define SQL_COLUMN_UNSIGNED 8 +#define SQL_COLUMN_MONEY 9 +#define SQL_COLUMN_UPDATABLE 10 +#define SQL_COLUMN_AUTO_INCREMENT 11 +#define SQL_COLUMN_CASE_SENSITIVE 12 +#define SQL_COLUMN_SEARCHABLE 13 +#define SQL_COLUMN_TYPE_NAME 14 +#if (ODBCVER >= 0x0200) +#define SQL_COLUMN_TABLE_NAME 15 +#define SQL_COLUMN_OWNER_NAME 16 +#define SQL_COLUMN_QUALIFIER_NAME 17 +#define SQL_COLUMN_LABEL 18 +#define SQL_COLATT_OPT_MAX SQL_COLUMN_LABEL +#else +#define SQL_COLATT_OPT_MAX SQL_COLUMN_TYPE_NAME +#endif /* ODBCVER >= 0x0200 */ +#define SQL_COLUMN_DRIVER_START 1000 + +#define SQL_COLATT_OPT_MIN SQL_COLUMN_COUNT + +/* SQLColAttributes subdefines for SQL_COLUMN_UPDATABLE */ +#define SQL_ATTR_READONLY 0 +#define SQL_ATTR_WRITE 1 +#define SQL_ATTR_READWRITE_UNKNOWN 2 + +/* SQLColAttributes subdefines for SQL_COLUMN_SEARCHABLE */ +/* These are also used by SQLGetInfo */ +#define SQL_UNSEARCHABLE 0 +#define SQL_LIKE_ONLY 1 +#define SQL_ALL_EXCEPT_LIKE 2 +#define SQL_SEARCHABLE 3 + +/* SQLError defines */ +#define SQL_NULL_HENV 0 +#define SQL_NULL_HDBC 0 +#define SQL_NULL_HSTMT 0 + +#include "sqltypes.h" + +#ifndef RC_INVOKED +/* Core Function Prototypes */ + +SQLRETURN SQL_API SQLAllocConnect( + SQLHENV henv, + SQLHDBC FAR *phdbc); + +SQLRETURN SQL_API SQLAllocEnv( + SQLHENV FAR *phenv); + +SQLRETURN SQL_API SQLAllocStmt( + SQLHDBC hdbc, + SQLHSTMT FAR *phstmt); + +SQLRETURN SQL_API SQLBindCol( + SQLHSTMT hstmt, + SQLUSMALLINT icol, + SQLSMALLINT fCType, + SQLPOINTER rgbValue, + SQLINTEGER cbValueMax, + SQLINTEGER FAR *pcbValue); + +SQLRETURN SQL_API SQLCancel( + SQLHSTMT hstmt); + +SQLRETURN SQL_API SQLColAttributes( + SQLHSTMT hstmt, + SQLUSMALLINT icol, + SQLUSMALLINT fDescType, + SQLPOINTER rgbDesc, + SQLSMALLINT cbDescMax, + SQLSMALLINT FAR *pcbDesc, + SQLINTEGER FAR *pfDesc); + +SQLRETURN SQL_API SQLConnect( + SQLHDBC hdbc, + SQLCHAR FAR *szDSN, + SQLSMALLINT cbDSN, + SQLCHAR FAR *szUID, + SQLSMALLINT cbUID, + SQLCHAR FAR *szAuthStr, + SQLSMALLINT cbAuthStr); + +SQLRETURN SQL_API SQLDescribeCol( + SQLHSTMT hstmt, + SQLUSMALLINT icol, + SQLCHAR FAR *szColName, + SQLSMALLINT cbColNameMax, + SQLSMALLINT FAR *pcbColName, + SQLSMALLINT FAR *pfSqlType, + SQLUINTEGER FAR *pcbColDef, + SQLSMALLINT FAR *pibScale, + SQLSMALLINT FAR *pfNullable); + +SQLRETURN SQL_API SQLDisconnect( + SQLHDBC hdbc); + +SQLRETURN SQL_API SQLError( + SQLHENV henv, + SQLHDBC hdbc, + SQLHSTMT hstmt, + SQLCHAR FAR *szSqlState, + SQLINTEGER FAR *pfNativeError, + SQLCHAR FAR *szErrorMsg, + SQLSMALLINT cbErrorMsgMax, + SQLSMALLINT FAR *pcbErrorMsg); + +SQLRETURN SQL_API SQLExecDirect( + SQLHSTMT hstmt, + SQLCHAR FAR *szSqlStr, + SQLINTEGER cbSqlStr); + +SQLRETURN SQL_API SQLExecute( + SQLHSTMT hstmt); + +SQLRETURN SQL_API SQLFetch( + SQLHSTMT hstmt); + +SQLRETURN SQL_API SQLFreeConnect( + SQLHDBC hdbc); + +SQLRETURN SQL_API SQLFreeEnv( + SQLHENV henv); + +SQLRETURN SQL_API SQLFreeStmt( + SQLHSTMT hstmt, + SQLUSMALLINT fOption); + +SQLRETURN SQL_API SQLGetCursorName( + SQLHSTMT hstmt, + SQLCHAR FAR *szCursor, + SQLSMALLINT cbCursorMax, + SQLSMALLINT FAR *pcbCursor); + +SQLRETURN SQL_API SQLNumResultCols( + SQLHSTMT hstmt, + SQLSMALLINT FAR *pccol); + +SQLRETURN SQL_API SQLPrepare( + SQLHSTMT hstmt, + SQLCHAR FAR *szSqlStr, + SQLINTEGER cbSqlStr); + +SQLRETURN SQL_API SQLRowCount( + SQLHSTMT hstmt, + SQLINTEGER FAR *pcrow); + +SQLRETURN SQL_API SQLSetCursorName( + SQLHSTMT hstmt, + SQLCHAR FAR *szCursor, + SQLSMALLINT cbCursor); + +SQLRETURN SQL_API SQLTransact( + SQLHENV henv, + SQLHDBC hdbc, + SQLUSMALLINT fType); + +#endif /* RC_INVOKED */ + +/* Deprecrated functions from prior versions of ODBC */ +#ifndef RC_INVOKED + +SQLRETURN SQL_API SQLSetParam( /* Use SQLBindParameter */ + SQLHSTMT hstmt, + SQLUSMALLINT ipar, + SQLSMALLINT fCType, + SQLSMALLINT fSqlType, + SQLUINTEGER cbParamDef, + SQLSMALLINT ibScale, + SQLPOINTER rgbValue, + SQLINTEGER FAR *pcbValue); + +#endif /* RC_INVOKED */ + + +/* Defines used by both Level 1 and Level 2 functions */ + +/* generally useful constants */ +#define SQL_MAX_OPTION_STRING_LENGTH 256 + +/* Additional return codes */ +#define SQL_STILL_EXECUTING 2 +#define SQL_NEED_DATA 99 + +/* SQL extended datatypes */ +#define SQL_DATE 9 +#define SQL_TIME 10 +#define SQL_TIMESTAMP 11 +#define SQL_LONGVARCHAR (-1) +#define SQL_BINARY (-2) +#define SQL_VARBINARY (-3) +#define SQL_LONGVARBINARY (-4) +#define SQL_BIGINT (-5) +#define SQL_TINYINT (-6) +#define SQL_BIT (-7) + +#define SQL_INTERVAL_YEAR (-80) +#define SQL_INTERVAL_MONTH (-81) +#define SQL_INTERVAL_YEAR_TO_MONTH (-82) +#define SQL_INTERVAL_DAY (-83) +#define SQL_INTERVAL_HOUR (-84) +#define SQL_INTERVAL_MINUTE (-85) +#define SQL_INTERVAL_SECOND (-86) +#define SQL_INTERVAL_DAY_TO_HOUR (-87) +#define SQL_INTERVAL_DAY_TO_MINUTE (-88) +#define SQL_INTERVAL_DAY_TO_SECOND (-89) +#define SQL_INTERVAL_HOUR_TO_MINUTE (-90) +#define SQL_INTERVAL_HOUR_TO_SECOND (-91) +#define SQL_INTERVAL_MINUTE_TO_SECOND (-92) +#define SQL_UNICODE (-95) +#define SQL_UNICODE_VARCHAR (-96) +#define SQL_UNICODE_LONGVARCHAR (-97) +#define SQL_UNICODE_CHAR SQL_UNICODE + +#define SQL_TYPE_DRIVER_START SQL_INTERVAL_YEAR +#define SQL_TYPE_DRIVER_END SQL_UNICODE_LONGVARCHAR + + +#if (ODBCVER >= 0x0200) +#define SQL_SIGNED_OFFSET (-20) +#define SQL_UNSIGNED_OFFSET (-22) +#endif /* ODBCVER >= 0x0200 */ + +/* C datatype to SQL datatype mapping */ +#define SQL_C_DATE SQL_DATE +#define SQL_C_TIME SQL_TIME +#define SQL_C_TIMESTAMP SQL_TIMESTAMP +#define SQL_C_BINARY SQL_BINARY +#define SQL_C_BIT SQL_BIT +#define SQL_C_TINYINT SQL_TINYINT +#if (ODBCVER >= 0x0200) +#define SQL_C_SLONG SQL_C_LONG+SQL_SIGNED_OFFSET /* SIGNED INTEGER */ +#define SQL_C_SSHORT SQL_C_SHORT+SQL_SIGNED_OFFSET /* SIGNED SMALLINT */ +#define SQL_C_STINYINT SQL_TINYINT+SQL_SIGNED_OFFSET /* SIGNED TINYINT */ +#define SQL_C_ULONG SQL_C_LONG+SQL_UNSIGNED_OFFSET /* UNSIGNED INTEGER */ +#define SQL_C_USHORT SQL_C_SHORT+SQL_UNSIGNED_OFFSET /* UNSIGNED SMALLINT*/ +#define SQL_C_UTINYINT SQL_TINYINT+SQL_UNSIGNED_OFFSET /* UNSIGNED TINYINT */ +#define SQL_C_BOOKMARK SQL_C_ULONG /* BOOKMARK */ +#endif /* ODBCVER >= 0x0200 */ + + +/* Level 1 Functions */ + +/* Special return values for SQLGetData */ +#define SQL_NO_TOTAL (-4) + +/* Defines for SQLGetFunctions */ +#define SQL_API_SQLALLOCCONNECT 1 /* Core Functions */ +#define SQL_API_SQLALLOCENV 2 +#define SQL_API_SQLALLOCSTMT 3 +#define SQL_API_SQLBINDCOL 4 +#define SQL_API_SQLCANCEL 5 +#define SQL_API_SQLCOLATTRIBUTES 6 +#define SQL_API_SQLCONNECT 7 +#define SQL_API_SQLDESCRIBECOL 8 +#define SQL_API_SQLDISCONNECT 9 +#define SQL_API_SQLERROR 10 +#define SQL_API_SQLEXECDIRECT 11 +#define SQL_API_SQLEXECUTE 12 +#define SQL_API_SQLFETCH 13 +#define SQL_API_SQLFREECONNECT 14 +#define SQL_API_SQLFREEENV 15 +#define SQL_API_SQLFREESTMT 16 +#define SQL_API_SQLGETCURSORNAME 17 +#define SQL_API_SQLNUMRESULTCOLS 18 +#define SQL_API_SQLPREPARE 19 +#define SQL_API_SQLROWCOUNT 20 +#define SQL_API_SQLSETCURSORNAME 21 +#define SQL_API_SQLSETPARAM 22 +#define SQL_API_SQLTRANSACT 23 + +#define SQL_NUM_FUNCTIONS 23 + +#define SQL_EXT_API_START 40 + +#define SQL_API_SQLCOLUMNS 40 /* Level 1 Functions */ +#define SQL_API_SQLDRIVERCONNECT 41 +#define SQL_API_SQLGETCONNECTOPTION 42 +#define SQL_API_SQLGETDATA 43 +#define SQL_API_SQLGETFUNCTIONS 44 +#define SQL_API_SQLGETINFO 45 +#define SQL_API_SQLGETSTMTOPTION 46 +#define SQL_API_SQLGETTYPEINFO 47 +#define SQL_API_SQLPARAMDATA 48 +#define SQL_API_SQLPUTDATA 49 +#define SQL_API_SQLSETCONNECTOPTION 50 +#define SQL_API_SQLSETSTMTOPTION 51 +#define SQL_API_SQLSPECIALCOLUMNS 52 +#define SQL_API_SQLSTATISTICS 53 +#define SQL_API_SQLTABLES 54 + +#define SQL_API_SQLBROWSECONNECT 55 /* Level 2 Functions */ +#define SQL_API_SQLCOLUMNPRIVILEGES 56 +#define SQL_API_SQLDATASOURCES 57 +#define SQL_API_SQLDESCRIBEPARAM 58 +#define SQL_API_SQLEXTENDEDFETCH 59 +#define SQL_API_SQLFOREIGNKEYS 60 +#define SQL_API_SQLMORERESULTS 61 +#define SQL_API_SQLNATIVESQL 62 +#define SQL_API_SQLNUMPARAMS 63 +#define SQL_API_SQLPARAMOPTIONS 64 +#define SQL_API_SQLPRIMARYKEYS 65 +#define SQL_API_SQLPROCEDURECOLUMNS 66 +#define SQL_API_SQLPROCEDURES 67 +#define SQL_API_SQLSETPOS 68 +#define SQL_API_SQLSETSCROLLOPTIONS 69 +#define SQL_API_SQLTABLEPRIVILEGES 70 + +/* SDK 2.0 Additions */ +#if (ODBCVER >= 0x0200) +#define SQL_API_SQLDRIVERS 71 +#define SQL_API_SQLBINDPARAMETER 72 +#define SQL_EXT_API_LAST SQL_API_SQLBINDPARAMETER +#else +#define SQL_EXT_API_LAST SQL_API_SQLTABLEPRIVILEGES +#endif /* ODBCVER >= 0x0200 */ + +#define SQL_API_ALL_FUNCTIONS 0 + +#define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST-SQL_EXT_API_START+1) +#if (ODBCVER >= 0x0200) +#define SQL_API_LOADBYORDINAL 199 +#endif /* ODBCVER >= 0x0200 */ + +/* Defines for SQLGetInfo */ +#define SQL_INFO_FIRST 0 +#define SQL_ACTIVE_CONNECTIONS 0 +#define SQL_ACTIVE_STATEMENTS 1 +#define SQL_DATA_SOURCE_NAME 2 +#define SQL_DRIVER_HDBC 3 +#define SQL_DRIVER_HENV 4 +#define SQL_DRIVER_HSTMT 5 +#define SQL_DRIVER_NAME 6 +#define SQL_DRIVER_VER 7 +#define SQL_FETCH_DIRECTION 8 +#define SQL_ODBC_API_CONFORMANCE 9 +#define SQL_ODBC_VER 10 +#define SQL_ROW_UPDATES 11 +#define SQL_ODBC_SAG_CLI_CONFORMANCE 12 +#define SQL_SERVER_NAME 13 +#define SQL_SEARCH_PATTERN_ESCAPE 14 +#define SQL_ODBC_SQL_CONFORMANCE 15 + +#define SQL_DBMS_NAME 17 +#define SQL_DBMS_VER 18 + +#define SQL_ACCESSIBLE_TABLES 19 +#define SQL_ACCESSIBLE_PROCEDURES 20 +#define SQL_PROCEDURES 21 +#define SQL_CONCAT_NULL_BEHAVIOR 22 +#define SQL_CURSOR_COMMIT_BEHAVIOR 23 +#define SQL_CURSOR_ROLLBACK_BEHAVIOR 24 +#define SQL_DATA_SOURCE_READ_ONLY 25 +#define SQL_DEFAULT_TXN_ISOLATION 26 +#define SQL_EXPRESSIONS_IN_ORDERBY 27 +#define SQL_IDENTIFIER_CASE 28 +#define SQL_IDENTIFIER_QUOTE_CHAR 29 +#define SQL_MAX_COLUMN_NAME_LEN 30 +#define SQL_MAX_CURSOR_NAME_LEN 31 +#define SQL_MAX_OWNER_NAME_LEN 32 +#define SQL_MAX_PROCEDURE_NAME_LEN 33 +#define SQL_MAX_QUALIFIER_NAME_LEN 34 +#define SQL_MAX_TABLE_NAME_LEN 35 +#define SQL_MULT_RESULT_SETS 36 +#define SQL_MULTIPLE_ACTIVE_TXN 37 +#define SQL_OUTER_JOINS 38 +#define SQL_OWNER_TERM 39 +#define SQL_PROCEDURE_TERM 40 +#define SQL_QUALIFIER_NAME_SEPARATOR 41 +#define SQL_QUALIFIER_TERM 42 +#define SQL_SCROLL_CONCURRENCY 43 +#define SQL_SCROLL_OPTIONS 44 +#define SQL_TABLE_TERM 45 +#define SQL_TXN_CAPABLE 46 +#define SQL_USER_NAME 47 + +#define SQL_CONVERT_FUNCTIONS 48 +#define SQL_NUMERIC_FUNCTIONS 49 +#define SQL_STRING_FUNCTIONS 50 +#define SQL_SYSTEM_FUNCTIONS 51 +#define SQL_TIMEDATE_FUNCTIONS 52 + +#define SQL_CONVERT_BIGINT 53 +#define SQL_CONVERT_BINARY 54 +#define SQL_CONVERT_BIT 55 +#define SQL_CONVERT_CHAR 56 +#define SQL_CONVERT_DATE 57 +#define SQL_CONVERT_DECIMAL 58 +#define SQL_CONVERT_DOUBLE 59 +#define SQL_CONVERT_FLOAT 60 +#define SQL_CONVERT_INTEGER 61 +#define SQL_CONVERT_LONGVARCHAR 62 +#define SQL_CONVERT_NUMERIC 63 +#define SQL_CONVERT_REAL 64 +#define SQL_CONVERT_SMALLINT 65 +#define SQL_CONVERT_TIME 66 +#define SQL_CONVERT_TIMESTAMP 67 +#define SQL_CONVERT_TINYINT 68 +#define SQL_CONVERT_VARBINARY 69 +#define SQL_CONVERT_VARCHAR 70 +#define SQL_CONVERT_LONGVARBINARY 71 + +#define SQL_TXN_ISOLATION_OPTION 72 +#define SQL_ODBC_SQL_OPT_IEF 73 + +/*** ODBC SDK 1.0 Additions ***/ +#define SQL_CORRELATION_NAME 74 +#define SQL_NON_NULLABLE_COLUMNS 75 + +/*** ODBC SDK 2.0 Additions ***/ +#if (ODBCVER >= 0x0200) +#define SQL_DRIVER_HLIB 76 +#define SQL_DRIVER_ODBC_VER 77 +#define SQL_LOCK_TYPES 78 +#define SQL_POS_OPERATIONS 79 +#define SQL_POSITIONED_STATEMENTS 80 +#define SQL_GETDATA_EXTENSIONS 81 +#define SQL_BOOKMARK_PERSISTENCE 82 +#define SQL_STATIC_SENSITIVITY 83 +#define SQL_FILE_USAGE 84 +#define SQL_NULL_COLLATION 85 +#define SQL_ALTER_TABLE 86 +#define SQL_COLUMN_ALIAS 87 +#define SQL_GROUP_BY 88 +#define SQL_KEYWORDS 89 +#define SQL_ORDER_BY_COLUMNS_IN_SELECT 90 +#define SQL_OWNER_USAGE 91 +#define SQL_QUALIFIER_USAGE 92 +#define SQL_QUOTED_IDENTIFIER_CASE 93 +#define SQL_SPECIAL_CHARACTERS 94 +#define SQL_SUBQUERIES 95 +#define SQL_UNION 96 +#define SQL_MAX_COLUMNS_IN_GROUP_BY 97 +#define SQL_MAX_COLUMNS_IN_INDEX 98 +#define SQL_MAX_COLUMNS_IN_ORDER_BY 99 +#define SQL_MAX_COLUMNS_IN_SELECT 100 +#define SQL_MAX_COLUMNS_IN_TABLE 101 +#define SQL_MAX_INDEX_SIZE 102 +#define SQL_MAX_ROW_SIZE_INCLUDES_LONG 103 +#define SQL_MAX_ROW_SIZE 104 +#define SQL_MAX_STATEMENT_LEN 105 +#define SQL_MAX_TABLES_IN_SELECT 106 +#define SQL_MAX_USER_NAME_LEN 107 +#define SQL_MAX_CHAR_LITERAL_LEN 108 +#define SQL_TIMEDATE_ADD_INTERVALS 109 +#define SQL_TIMEDATE_DIFF_INTERVALS 110 +#define SQL_NEED_LONG_DATA_LEN 111 +#define SQL_MAX_BINARY_LITERAL_LEN 112 +#define SQL_LIKE_ESCAPE_CLAUSE 113 +#define SQL_QUALIFIER_LOCATION 114 + +#if (ODBCVER >= 0x0201) +/*** ODBC SDK 2.01 Additions ***/ +#define SQL_OJ_CAPABILITIES 65003 /* Temp value until ODBC 3.0 */ +#endif /* ODBCVER >= 0x0201 */ + +#define SQL_INFO_LAST SQL_QUALIFIER_LOCATION +#else +#define SQL_INFO_LAST SQL_NON_NULLABLE_COLUMNS +#endif /* ODBCVER >= 0x0200 */ + +#define SQL_INFO_DRIVER_START 1000 + +/* SQL_CONVERT_* return value bitmasks */ + +#define SQL_CVT_CHAR 0x00000001L +#define SQL_CVT_NUMERIC 0x00000002L +#define SQL_CVT_DECIMAL 0x00000004L +#define SQL_CVT_INTEGER 0x00000008L +#define SQL_CVT_SMALLINT 0x00000010L +#define SQL_CVT_FLOAT 0x00000020L +#define SQL_CVT_REAL 0x00000040L +#define SQL_CVT_DOUBLE 0x00000080L +#define SQL_CVT_VARCHAR 0x00000100L +#define SQL_CVT_LONGVARCHAR 0x00000200L +#define SQL_CVT_BINARY 0x00000400L +#define SQL_CVT_VARBINARY 0x00000800L +#define SQL_CVT_BIT 0x00001000L +#define SQL_CVT_TINYINT 0x00002000L +#define SQL_CVT_BIGINT 0x00004000L +#define SQL_CVT_DATE 0x00008000L +#define SQL_CVT_TIME 0x00010000L +#define SQL_CVT_TIMESTAMP 0x00020000L +#define SQL_CVT_LONGVARBINARY 0x00040000L + +/* SQL_CONVERT_FUNCTIONS functions */ +#define SQL_FN_CVT_CONVERT 0x00000001L + +/* SQL_STRING_FUNCTIONS functions */ + +#define SQL_FN_STR_CONCAT 0x00000001L +#define SQL_FN_STR_INSERT 0x00000002L +#define SQL_FN_STR_LEFT 0x00000004L +#define SQL_FN_STR_LTRIM 0x00000008L +#define SQL_FN_STR_LENGTH 0x00000010L +#define SQL_FN_STR_LOCATE 0x00000020L +#define SQL_FN_STR_LCASE 0x00000040L +#define SQL_FN_STR_REPEAT 0x00000080L +#define SQL_FN_STR_REPLACE 0x00000100L +#define SQL_FN_STR_RIGHT 0x00000200L +#define SQL_FN_STR_RTRIM 0x00000400L +#define SQL_FN_STR_SUBSTRING 0x00000800L +#define SQL_FN_STR_UCASE 0x00001000L +#define SQL_FN_STR_ASCII 0x00002000L +#define SQL_FN_STR_CHAR 0x00004000L +#if (ODBCVER >= 0x0200) +#define SQL_FN_STR_DIFFERENCE 0x00008000L +#define SQL_FN_STR_LOCATE_2 0x00010000L +#define SQL_FN_STR_SOUNDEX 0x00020000L +#define SQL_FN_STR_SPACE 0x00040000L +#endif /* ODBCVER >= 0x0200 */ + +/* SQL_NUMERIC_FUNCTIONS functions */ + +#define SQL_FN_NUM_ABS 0x00000001L +#define SQL_FN_NUM_ACOS 0x00000002L +#define SQL_FN_NUM_ASIN 0x00000004L +#define SQL_FN_NUM_ATAN 0x00000008L +#define SQL_FN_NUM_ATAN2 0x00000010L +#define SQL_FN_NUM_CEILING 0x00000020L +#define SQL_FN_NUM_COS 0x00000040L +#define SQL_FN_NUM_COT 0x00000080L +#define SQL_FN_NUM_EXP 0x00000100L +#define SQL_FN_NUM_FLOOR 0x00000200L +#define SQL_FN_NUM_LOG 0x00000400L +#define SQL_FN_NUM_MOD 0x00000800L +#define SQL_FN_NUM_SIGN 0x00001000L +#define SQL_FN_NUM_SIN 0x00002000L +#define SQL_FN_NUM_SQRT 0x00004000L +#define SQL_FN_NUM_TAN 0x00008000L +#define SQL_FN_NUM_PI 0x00010000L +#define SQL_FN_NUM_RAND 0x00020000L +#if (ODBCVER >= 0x0200) +#define SQL_FN_NUM_DEGREES 0x00040000L +#define SQL_FN_NUM_LOG10 0x00080000L +#define SQL_FN_NUM_POWER 0x00100000L +#define SQL_FN_NUM_RADIANS 0x00200000L +#define SQL_FN_NUM_ROUND 0x00400000L +#define SQL_FN_NUM_TRUNCATE 0x00800000L +#endif /* ODBCVER >= 0x0200 */ + +/* SQL_TIMEDATE_FUNCTIONS functions */ + +#define SQL_FN_TD_NOW 0x00000001L +#define SQL_FN_TD_CURDATE 0x00000002L +#define SQL_FN_TD_DAYOFMONTH 0x00000004L +#define SQL_FN_TD_DAYOFWEEK 0x00000008L +#define SQL_FN_TD_DAYOFYEAR 0x00000010L +#define SQL_FN_TD_MONTH 0x00000020L +#define SQL_FN_TD_QUARTER 0x00000040L +#define SQL_FN_TD_WEEK 0x00000080L +#define SQL_FN_TD_YEAR 0x00000100L +#define SQL_FN_TD_CURTIME 0x00000200L +#define SQL_FN_TD_HOUR 0x00000400L +#define SQL_FN_TD_MINUTE 0x00000800L +#define SQL_FN_TD_SECOND 0x00001000L +#if (ODBCVER >= 0x0200) +#define SQL_FN_TD_TIMESTAMPADD 0x00002000L +#define SQL_FN_TD_TIMESTAMPDIFF 0x00004000L +#define SQL_FN_TD_DAYNAME 0x00008000L +#define SQL_FN_TD_MONTHNAME 0x00010000L +#endif /* ODBCVER >= 0x0200 */ + +/* SQL_SYSTEM_FUNCTIONS functions */ + +#define SQL_FN_SYS_USERNAME 0x00000001L +#define SQL_FN_SYS_DBNAME 0x00000002L +#define SQL_FN_SYS_IFNULL 0x00000004L + +/* SQL_TIMEDATE_ADD_INTERVALS and SQL_TIMEDATE_DIFF_INTERVALS functions */ + +#if (ODBCVER >= 0x0200) +#define SQL_FN_TSI_FRAC_SECOND 0x00000001L +#define SQL_FN_TSI_SECOND 0x00000002L +#define SQL_FN_TSI_MINUTE 0x00000004L +#define SQL_FN_TSI_HOUR 0x00000008L +#define SQL_FN_TSI_DAY 0x00000010L +#define SQL_FN_TSI_WEEK 0x00000020L +#define SQL_FN_TSI_MONTH 0x00000040L +#define SQL_FN_TSI_QUARTER 0x00000080L +#define SQL_FN_TSI_YEAR 0x00000100L +#endif /* ODBCVER >= 0x0200 */ + +/* SQL_ODBC_API_CONFORMANCE values */ + +#define SQL_OAC_NONE 0x0000 +#define SQL_OAC_LEVEL1 0x0001 +#define SQL_OAC_LEVEL2 0x0002 + +/* SQL_ODBC_SAG_CLI_CONFORMANCE values */ + +#define SQL_OSCC_NOT_COMPLIANT 0x0000 +#define SQL_OSCC_COMPLIANT 0x0001 + +/* SQL_ODBC_SQL_CONFORMANCE values */ + +#define SQL_OSC_MINIMUM 0x0000 +#define SQL_OSC_CORE 0x0001 +#define SQL_OSC_EXTENDED 0x0002 + +/* SQL_CONCAT_NULL_BEHAVIOR values */ + +#define SQL_CB_NULL 0x0000 +#define SQL_CB_NON_NULL 0x0001 + +/* SQL_CURSOR_COMMIT_BEHAVIOR and SQL_CURSOR_ROLLBACK_BEHAVIOR values */ + +#define SQL_CB_DELETE 0x0000 +#define SQL_CB_CLOSE 0x0001 +#define SQL_CB_PRESERVE 0x0002 + +/* SQL_IDENTIFIER_CASE values */ + +#define SQL_IC_UPPER 0x0001 +#define SQL_IC_LOWER 0x0002 +#define SQL_IC_SENSITIVE 0x0003 +#define SQL_IC_MIXED 0x0004 + +/* SQL_TXN_CAPABLE values */ + +#define SQL_TC_NONE 0x0000 +#define SQL_TC_DML 0x0001 +#define SQL_TC_ALL 0x0002 +#if (ODBCVER >= 0x0200) +#define SQL_TC_DDL_COMMIT 0x0003 +#define SQL_TC_DDL_IGNORE 0x0004 +#endif /* ODBCVER >= 0x0200 */ + +/* SQL_SCROLL_OPTIONS masks */ + +#define SQL_SO_FORWARD_ONLY 0x00000001L +#define SQL_SO_KEYSET_DRIVEN 0x00000002L +#define SQL_SO_DYNAMIC 0x00000004L +#define SQL_SO_MIXED 0x00000008L +#if (ODBCVER >= 0x0200) +#define SQL_SO_STATIC 0x00000010L +#endif /* ODBCVER >= 0x0200 */ + +/* SQL_SCROLL_CONCURRENCY masks */ + +#define SQL_SCCO_READ_ONLY 0x00000001L +#define SQL_SCCO_LOCK 0x00000002L +#define SQL_SCCO_OPT_ROWVER 0x00000004L +#define SQL_SCCO_OPT_VALUES 0x00000008L + +/* SQL_FETCH_DIRECTION masks */ + +#define SQL_FD_FETCH_NEXT 0x00000001L +#define SQL_FD_FETCH_FIRST 0x00000002L +#define SQL_FD_FETCH_LAST 0x00000004L +#define SQL_FD_FETCH_PRIOR 0x00000008L +#define SQL_FD_FETCH_ABSOLUTE 0x00000010L +#define SQL_FD_FETCH_RELATIVE 0x00000020L +#define SQL_FD_FETCH_RESUME 0x00000040L +#if (ODBCVER >= 0x0200) +#define SQL_FD_FETCH_BOOKMARK 0x00000080L +#endif /* ODBCVER >= 0x0200 */ + +/* SQL_TXN_ISOLATION_OPTION masks */ + +#define SQL_TXN_READ_UNCOMMITTED 0x00000001L +#define SQL_TXN_READ_COMMITTED 0x00000002L +#define SQL_TXN_REPEATABLE_READ 0x00000004L +#define SQL_TXN_SERIALIZABLE 0x00000008L +#define SQL_TXN_VERSIONING 0x00000010L + +/* SQL_CORRELATION_NAME values */ + +#define SQL_CN_NONE 0x0000 +#define SQL_CN_DIFFERENT 0x0001 +#define SQL_CN_ANY 0x0002 + +/* SQL_NON_NULLABLE_COLUMNS values */ + +#define SQL_NNC_NULL 0x0000 +#define SQL_NNC_NON_NULL 0x0001 + +#if (ODBCVER >= 0x0200) +/* SQL_NULL_COLLATION values */ + +#define SQL_NC_HIGH 0x0000 +#define SQL_NC_LOW 0x0001 +#define SQL_NC_START 0x0002 +#define SQL_NC_END 0x0004 + +/* SQL_FILE_USAGE values */ + +#define SQL_FILE_NOT_SUPPORTED 0x0000 +#define SQL_FILE_TABLE 0x0001 +#define SQL_FILE_QUALIFIER 0x0002 + +/* SQL_GETDATA_EXTENSIONS values */ + +#define SQL_GD_ANY_COLUMN 0x00000001L +#define SQL_GD_ANY_ORDER 0x00000002L +#define SQL_GD_BLOCK 0x00000004L +#define SQL_GD_BOUND 0x00000008L + +/* SQL_ALTER_TABLE values */ + +#define SQL_AT_ADD_COLUMN 0x00000001L +#define SQL_AT_DROP_COLUMN 0x00000002L + +/* SQL_POSITIONED_STATEMENTS masks */ + +#define SQL_PS_POSITIONED_DELETE 0x00000001L +#define SQL_PS_POSITIONED_UPDATE 0x00000002L +#define SQL_PS_SELECT_FOR_UPDATE 0x00000004L + +/* SQL_GROUP_BY values */ + +#define SQL_GB_NOT_SUPPORTED 0x0000 +#define SQL_GB_GROUP_BY_EQUALS_SELECT 0x0001 +#define SQL_GB_GROUP_BY_CONTAINS_SELECT 0x0002 +#define SQL_GB_NO_RELATION 0x0003 + +/* SQL_OWNER_USAGE masks */ + +#define SQL_OU_DML_STATEMENTS 0x00000001L +#define SQL_OU_PROCEDURE_INVOCATION 0x00000002L +#define SQL_OU_TABLE_DEFINITION 0x00000004L +#define SQL_OU_INDEX_DEFINITION 0x00000008L +#define SQL_OU_PRIVILEGE_DEFINITION 0x00000010L + +/* SQL_QUALIFIER_USAGE masks */ + +#define SQL_QU_DML_STATEMENTS 0x00000001L +#define SQL_QU_PROCEDURE_INVOCATION 0x00000002L +#define SQL_QU_TABLE_DEFINITION 0x00000004L +#define SQL_QU_INDEX_DEFINITION 0x00000008L +#define SQL_QU_PRIVILEGE_DEFINITION 0x00000010L + +/* SQL_SUBQUERIES masks */ + +#define SQL_SQ_COMPARISON 0x00000001L +#define SQL_SQ_EXISTS 0x00000002L +#define SQL_SQ_IN 0x00000004L +#define SQL_SQ_QUANTIFIED 0x00000008L +#define SQL_SQ_CORRELATED_SUBQUERIES 0x00000010L + +/* SQL_UNION masks */ + +#define SQL_U_UNION 0x00000001L +#define SQL_U_UNION_ALL 0x00000002L + +/* SQL_BOOKMARK_PERSISTENCE values */ + +#define SQL_BP_CLOSE 0x00000001L +#define SQL_BP_DELETE 0x00000002L +#define SQL_BP_DROP 0x00000004L +#define SQL_BP_TRANSACTION 0x00000008L +#define SQL_BP_UPDATE 0x00000010L +#define SQL_BP_OTHER_HSTMT 0x00000020L +#define SQL_BP_SCROLL 0x00000040L + +/* SQL_STATIC_SENSITIVITY values */ + +#define SQL_SS_ADDITIONS 0x00000001L +#define SQL_SS_DELETIONS 0x00000002L +#define SQL_SS_UPDATES 0x00000004L + +/* SQL_LOCK_TYPESL masks */ + +#define SQL_LCK_NO_CHANGE 0x00000001L +#define SQL_LCK_EXCLUSIVE 0x00000002L +#define SQL_LCK_UNLOCK 0x00000004L + +/* SQL_POS_OPERATIONS masks */ + +#define SQL_POS_POSITION 0x00000001L +#define SQL_POS_REFRESH 0x00000002L +#define SQL_POS_UPDATE 0x00000004L +#define SQL_POS_DELETE 0x00000008L +#define SQL_POS_ADD 0x00000010L + +/* SQL_QUALIFIER_LOCATION values */ + +#define SQL_QL_START 0x0001L +#define SQL_QL_END 0x0002L + +/* SQL_OJ_CAPABILITIES values */ + +#if (ODBCVER >= 0x0201) +#define SQL_OJ_LEFT 0x00000001L +#define SQL_OJ_RIGHT 0x00000002L +#define SQL_OJ_FULL 0x00000004L +#define SQL_OJ_NESTED 0x00000008L +#define SQL_OJ_NOT_ORDERED 0x00000010L +#define SQL_OJ_INNER 0x00000020L +#define SQL_OJ_ALL_COMPARISON_OPS 0x00000040L +#endif /* ODBCVER >= 0x0201 */ +#endif /* ODBCVER >= 0x0200 */ + +/* options for SQLGetStmtOption/SQLSetStmtOption */ +#define SQL_QUERY_TIMEOUT 0 +#define SQL_MAX_ROWS 1 +#define SQL_NOSCAN 2 +#define SQL_MAX_LENGTH 3 +#define SQL_ASYNC_ENABLE 4 +#define SQL_BIND_TYPE 5 +#if (ODBCVER >= 0x0200) +#define SQL_CURSOR_TYPE 6 +#define SQL_CONCURRENCY 7 +#define SQL_KEYSET_SIZE 8 +#define SQL_ROWSET_SIZE 9 +#define SQL_SIMULATE_CURSOR 10 +#define SQL_RETRIEVE_DATA 11 +#define SQL_USE_BOOKMARKS 12 +#define SQL_GET_BOOKMARK 13 /* GetStmtOption Only */ +#define SQL_ROW_NUMBER 14 /* GetStmtOption Only */ +#define SQL_STMT_OPT_MAX SQL_ROW_NUMBER +#else +#define SQL_STMT_OPT_MAX SQL_BIND_TYPE +#endif /* ODBCVER >= 0x0200 */ + +#define SQL_STMT_OPT_MIN SQL_QUERY_TIMEOUT + + +/* SQL_QUERY_TIMEOUT options */ +#define SQL_QUERY_TIMEOUT_DEFAULT 0UL + +/* SQL_MAX_ROWS options */ +#define SQL_MAX_ROWS_DEFAULT 0UL + +/* SQL_NOSCAN options */ +#define SQL_NOSCAN_OFF 0UL /* 1.0 FALSE */ +#define SQL_NOSCAN_ON 1UL /* 1.0 TRUE */ +#define SQL_NOSCAN_DEFAULT SQL_NOSCAN_OFF + +/* SQL_MAX_LENGTH options */ +#define SQL_MAX_LENGTH_DEFAULT 0UL + +/* SQL_ASYNC_ENABLE options */ +#define SQL_ASYNC_ENABLE_OFF 0UL +#define SQL_ASYNC_ENABLE_ON 1UL +#define SQL_ASYNC_ENABLE_DEFAULT SQL_ASYNC_ENABLE_OFF + +/* SQL_BIND_TYPE options */ +#define SQL_BIND_BY_COLUMN 0UL +#define SQL_BIND_TYPE_DEFAULT SQL_BIND_BY_COLUMN /* Default value */ + +/* SQL_CONCURRENCY options */ +#define SQL_CONCUR_READ_ONLY 1 +#define SQL_CONCUR_LOCK 2 +#define SQL_CONCUR_ROWVER 3 +#define SQL_CONCUR_VALUES 4 +#define SQL_CONCUR_DEFAULT SQL_CONCUR_READ_ONLY /* Default value +*/ + +#if (ODBCVER >= 0x0200) +/* SQL_CURSOR_TYPE options */ +#define SQL_CURSOR_FORWARD_ONLY 0UL +#define SQL_CURSOR_KEYSET_DRIVEN 1UL +#define SQL_CURSOR_DYNAMIC 2UL +#define SQL_CURSOR_STATIC 3UL +#define SQL_CURSOR_TYPE_DEFAULT SQL_CURSOR_FORWARD_ONLY /* Default value */ + +/* SQL_ROWSET_SIZE options */ +#define SQL_ROWSET_SIZE_DEFAULT 1UL + +/* SQL_KEYSET_SIZE options */ +#define SQL_KEYSET_SIZE_DEFAULT 0UL + +/* SQL_SIMULATE_CURSOR options */ +#define SQL_SC_NON_UNIQUE 0UL +#define SQL_SC_TRY_UNIQUE 1UL +#define SQL_SC_UNIQUE 2UL + +/* SQL_RETRIEVE_DATA options */ +#define SQL_RD_OFF 0UL +#define SQL_RD_ON 1UL +#define SQL_RD_DEFAULT SQL_RD_ON + +/* SQL_USE_BOOKMARKS options */ +#define SQL_UB_OFF 0UL +#define SQL_UB_ON 1UL +#define SQL_UB_DEFAULT SQL_UB_OFF + +#endif /* ODBCVER >= 0x0200 */ + +/* options for SQLSetConnectOption/SQLGetConnectOption */ +#define SQL_ACCESS_MODE 101 +#define SQL_AUTOCOMMIT 102 +#define SQL_LOGIN_TIMEOUT 103 +#define SQL_OPT_TRACE 104 +#define SQL_OPT_TRACEFILE 105 +#define SQL_TRANSLATE_DLL 106 +#define SQL_TRANSLATE_OPTION 107 +#define SQL_TXN_ISOLATION 108 +#define SQL_CURRENT_QUALIFIER 109 +#if (ODBCVER >= 0x0200) +#define SQL_ODBC_CURSORS 110 +#define SQL_QUIET_MODE 111 +#define SQL_PACKET_SIZE 112 +#define SQL_CONN_OPT_MAX SQL_PACKET_SIZE +#else +#define SQL_CONN_OPT_MAX SQL_CURRENT_QUALIFIER +#endif /* ODBCVER >= 0x0200 */ +#define SQL_CONNECT_OPT_DRVR_START 1000 + +#define SQL_CONN_OPT_MIN SQL_ACCESS_MODE + +/* SQL_ACCESS_MODE options */ +#define SQL_MODE_READ_WRITE 0UL +#define SQL_MODE_READ_ONLY 1UL +#define SQL_MODE_DEFAULT SQL_MODE_READ_WRITE + +/* SQL_AUTOCOMMIT options */ +#define SQL_AUTOCOMMIT_OFF 0UL +#define SQL_AUTOCOMMIT_ON 1UL +#define SQL_AUTOCOMMIT_DEFAULT SQL_AUTOCOMMIT_ON + +/* SQL_LOGIN_TIMEOUT options */ +#define SQL_LOGIN_TIMEOUT_DEFAULT 15UL + +/* SQL_OPT_TRACE options */ +#define SQL_OPT_TRACE_OFF 0UL +#define SQL_OPT_TRACE_ON 1UL +#define SQL_OPT_TRACE_DEFAULT SQL_OPT_TRACE_OFF +#define SQL_OPT_TRACE_FILE_DEFAULT "\\SQL.LOG" + +#if (ODBCVER >= 0x0200) +/* SQL_ODBC_CURSORS options */ +#define SQL_CUR_USE_IF_NEEDED 0UL +#define SQL_CUR_USE_ODBC 1UL +#define SQL_CUR_USE_DRIVER 2UL +#define SQL_CUR_DEFAULT SQL_CUR_USE_DRIVER +#endif /* ODBCVER >= 0x0200 */ + +/* Column types and scopes in SQLSpecialColumns. */ +#define SQL_BEST_ROWID 1 +#define SQL_ROWVER 2 + +#define SQL_SCOPE_CURROW 0 +#define SQL_SCOPE_TRANSACTION 1 +#define SQL_SCOPE_SESSION 2 + +/* Defines for SQLStatistics */ +#define SQL_INDEX_UNIQUE 0 +#define SQL_INDEX_ALL 1 + +#define SQL_QUICK 0 +#define SQL_ENSURE 1 + +/* Defines for SQLStatistics (returned in the result set) */ +#define SQL_TABLE_STAT 0 +#define SQL_INDEX_CLUSTERED 1 +#define SQL_INDEX_HASHED 2 +#define SQL_INDEX_OTHER 3 + +#if (ODBCVER >= 0x0200) +/* Defines for SQLSpecialColumns (returned in the result set) */ +#define SQL_PC_UNKNOWN 0 +#define SQL_PC_NOT_PSEUDO 1 +#define SQL_PC_PSEUDO 2 +#endif /* ODBCVER >= 0x0200 */ + +/* SQLDataSources "fDirection" values, also used on SQLExtendedFetch() */ +#define SQL_FETCH_NEXT 1 +#define SQL_FETCH_FIRST 2 + +#ifndef RC_INVOKED + +#if (ODBCVER >= 0x0200) +/* This define is too large for RC */ +#define SQL_ODBC_KEYWORDS \ +"ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,"\ +"ASC,ASSERTION,AT,AUTHORIZATION,AVG,"\ +"BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,"\ +"CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,"\ +"COBOL,COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,"\ +"CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,"\ +"CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,"\ +"DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE,"\ +"DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,"\ +"DISTINCT,DOMAIN,DOUBLE,DROP,"\ +"ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE,"\ +"EXISTS,EXTERNAL,EXTRACT,"\ +"FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,"\ +"GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,"\ +"IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,"\ +"INPUT,INSENSITIVE,INSERT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,"\ +"JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,"\ +"MATCH,MAX,MIN,MINUTE,MODULE,MONTH,MUMPS,"\ +"NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,"\ +"OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,"\ +"PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,"\ +"PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,"\ +"REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWS,"\ +"SCHEMA,SCROLL,SECOND,SECTION,SELECT,SEQUENCE,SESSION,SESSION_USER,SET,SIZE,"\ +"SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,"\ +"SUBSTRING,SUM,SYSTEM_USER,"\ +"TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,"\ +"TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,"\ +"UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,"\ +"VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,YEAR" +#endif /* ODBCVER >= 0x0200 */ + +/* Level 1 Prototypes */ +SQLRETURN SQL_API SQLColumns( + SQLHSTMT hstmt, + SQLCHAR FAR *szCatalogName, + SQLSMALLINT cbCatalogName, + SQLCHAR FAR *szSchemaName, + SQLSMALLINT cbSchemaName, + SQLCHAR FAR *szTableName, + SQLSMALLINT cbTableName, + SQLCHAR FAR *szColumnName, + SQLSMALLINT cbColumnName); + +SQLRETURN SQL_API SQLGetConnectOption( + SQLHDBC hdbc, + SQLUSMALLINT fOption, + SQLPOINTER pvParam); + +SQLRETURN SQL_API SQLGetData( + SQLHSTMT hstmt, + SQLUSMALLINT icol, + SQLSMALLINT fCType, + SQLPOINTER rgbValue, + SQLINTEGER cbValueMax, + SQLINTEGER FAR *pcbValue); + +SQLRETURN SQL_API SQLGetFunctions( + SQLHDBC hdbc, + SQLUSMALLINT fFunction, + SQLUSMALLINT FAR *pfExists); + +SQLRETURN SQL_API SQLGetInfo( + SQLHDBC hdbc, + SQLUSMALLINT fInfoType, + SQLPOINTER rgbInfoValue, + SQLSMALLINT cbInfoValueMax, + SQLSMALLINT FAR *pcbInfoValue); + +SQLRETURN SQL_API SQLGetStmtOption( + SQLHSTMT hstmt, + SQLUSMALLINT fOption, + SQLPOINTER pvParam); + +SQLRETURN SQL_API SQLGetTypeInfo( + SQLHSTMT hstmt, + SQLSMALLINT fSqlType); + +SQLRETURN SQL_API SQLParamData( + SQLHSTMT hstmt, + SQLPOINTER FAR *prgbValue); + +SQLRETURN SQL_API SQLPutData( + SQLHSTMT hstmt, + SQLPOINTER rgbValue, + SQLINTEGER cbValue); + +SQLRETURN SQL_API SQLSetConnectOption( + SQLHDBC hdbc, + SQLUSMALLINT fOption, + SQLUINTEGER vParam); + +SQLRETURN SQL_API SQLSetStmtOption( + SQLHSTMT hstmt, + SQLUSMALLINT fOption, + SQLUINTEGER vParam); + +SQLRETURN SQL_API SQLSpecialColumns( + SQLHSTMT hstmt, + SQLUSMALLINT fColType, + SQLCHAR FAR *szCatalogName, + SQLSMALLINT cbCatalogName, + SQLCHAR FAR *szSchemaName, + SQLSMALLINT cbSchemaName, + SQLCHAR FAR *szTableName, + SQLSMALLINT cbTableName, + SQLUSMALLINT fScope, + SQLUSMALLINT fNullable); + +SQLRETURN SQL_API SQLStatistics( + SQLHSTMT hstmt, + SQLCHAR FAR *szCatalogName, + SQLSMALLINT cbCatalogName, + SQLCHAR FAR *szSchemaName, + SQLSMALLINT cbSchemaName, + SQLCHAR FAR *szTableName, + SQLSMALLINT cbTableName, + SQLUSMALLINT fUnique, + SQLUSMALLINT fAccuracy); + +SQLRETURN SQL_API SQLTables( + SQLHSTMT hstmt, + SQLCHAR FAR *szCatalogName, + SQLSMALLINT cbCatalogName, + SQLCHAR FAR *szSchemaName, + SQLSMALLINT cbSchemaName, + SQLCHAR FAR *szTableName, + SQLSMALLINT cbTableName, + SQLCHAR FAR *szTableType, + SQLSMALLINT cbTableType); +#endif /* RC_INVOKED */ + + +/* Level 2 Functions */ + + + +#ifndef RC_INVOKED + +SQLRETURN SQL_API SQLDataSources( + SQLHENV henv, + SQLUSMALLINT fDirection, + SQLCHAR FAR *szDSN, + SQLSMALLINT cbDSNMax, + SQLSMALLINT FAR *pcbDSN, + SQLCHAR FAR *szDescription, + SQLSMALLINT cbDescriptionMax, + SQLSMALLINT FAR *pcbDescription); + + +#endif /* RC_INVOKED */ + +/* Deprecated defines from prior versions of ODBC */ +#define SQL_DATABASE_NAME 16 /* Use SQLGetConnectOption/SQL_CURRENT_QUALIFIER */ +#define SQL_FD_FETCH_PREV SQL_FD_FETCH_PRIOR +#define SQL_FETCH_PREV SQL_FETCH_PRIOR +#define SQL_CONCUR_TIMESTAMP SQL_CONCUR_ROWVER +#define SQL_SCCO_OPT_TIMESTAMP SQL_SCCO_OPT_ROWVER +#define SQL_CC_DELETE SQL_CB_DELETE +#define SQL_CR_DELETE SQL_CB_DELETE +#define SQL_CC_CLOSE SQL_CB_CLOSE +#define SQL_CR_CLOSE SQL_CB_CLOSE +#define SQL_CC_PRESERVE SQL_CB_PRESERVE +#define SQL_CR_PRESERVE SQL_CB_PRESERVE +#define SQL_FETCH_RESUME 7 /* Not supported by 2.0 drivers */ +#define SQL_SCROLL_FORWARD_ONLY 0L /*-SQL_CURSOR_FORWARD_ONLY */ +#define SQL_SCROLL_KEYSET_DRIVEN (-1L) /*-SQL_CURSOR_KEYSET_DRIVEN */ +#define SQL_SCROLL_DYNAMIC (-2L) /*-SQL_CURSOR_DYNAMIC */ +#if (ODBCVER >= 0x0200) +#define SQL_SCROLL_STATIC (-3L) /*-SQL_CURSOR_STATIC */ +#define SQL_PC_NON_PSEUDO SQL_PC_NOT_PSEUDO +#endif /* ODBCVER >= 0x0200 */ + +/* Deprecrated functions from prior versions of ODBC */ +#ifndef RC_INVOKED + +SQLRETURN SQL_API SQLSetScrollOptions( /* Use SQLSetStmtOptions */ + SQLHSTMT hstmt, + SQLUSMALLINT fConcurrency, + SQLINTEGER crowKeyset, + SQLUSMALLINT crowRowset); + +#endif /* RC_INVOKED */ + +#ifdef __cplusplus +} /* End of extern "C" { */ +#endif /* __cplusplus */ + +#endif /* #ifndef __SQL */ diff --git a/public/sdk/inc/mfc42/sqlext.h b/public/sdk/inc/mfc42/sqlext.h new file mode 100644 index 000000000..ee02cafaf --- /dev/null +++ b/public/sdk/inc/mfc42/sqlext.h @@ -0,0 +1,293 @@ +/***************************************************************** +** SQLEXT.H - This is the include for applications using +** the Microsoft SQL Extensions +** +** (C) Copyright 1990 - 1995 By Microsoft Corp. +** +** Updated 5/12/93 for 2.00 specification +** Updated 5/23/94 for 2.01 specification +** Updated 10/27/94 for 2.10 specification +** Updated 04/10/95 for 2.50 specification +*********************************************************************/ + +#ifndef __SQLEXT +#define __SQLEXT + +#ifndef __SQL +#include "sql.h" +#endif + +#ifdef __cplusplus +extern "C" { /* Assume C declarations for C++ */ +#endif /* __cplusplus */ + +/* SQLBindParameter extensions */ +#if (ODBCVER >= 0x0200) +#define SQL_DEFAULT_PARAM (-5) +#define SQL_IGNORE (-6) +#define SQL_LEN_DATA_AT_EXEC_OFFSET (-100) +#define SQL_LEN_DATA_AT_EXEC(length) (-length+SQL_LEN_DATA_AT_EXEC_OFFSET) +#endif /* ODBCVER >= 0x0200 */ + + +/* Defines for SQLSetPos */ +#define SQL_ENTIRE_ROWSET 0 + +/* Operations in SQLSetPos */ +#define SQL_POSITION 0 /* 1.0 FALSE */ +#define SQL_REFRESH 1 /* 1.0 TRUE */ +#if (ODBCVER >= 0x0200) +#define SQL_UPDATE 2 +#define SQL_DELETE 3 +#define SQL_ADD 4 +#endif /* ODBCVER >= 0x0200 */ + +/* Lock options in SQLSetPos */ +#define SQL_LOCK_NO_CHANGE 0 /* 1.0 FALSE */ +#define SQL_LOCK_EXCLUSIVE 1 /* 1.0 TRUE */ +#if (ODBCVER >= 0x0200) +#define SQL_LOCK_UNLOCK 2 + +/* Macros for SQLSetPos */ +#define SQL_POSITION_TO(hstmt,irow) SQLSetPos(hstmt,irow,SQL_POSITION,SQL_LOCK_NO_CHANGE) +#define SQL_LOCK_RECORD(hstmt,irow,fLock) SQLSetPos(hstmt,irow,SQL_POSITION,fLock) +#define SQL_REFRESH_RECORD(hstmt,irow,fLock) SQLSetPos(hstmt,irow,SQL_REFRESH,fLock) +#define SQL_UPDATE_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_UPDATE,SQL_LOCK_NO_CHANGE) +#define SQL_DELETE_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_DELETE,SQL_LOCK_NO_CHANGE) +#define SQL_ADD_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_ADD,SQL_LOCK_NO_CHANGE) +#endif /* ODBCVER >= 0x0200 */ + +/* Level 1 Prototypes */ + +/* Options for SQLDriverConnect */ +#define SQL_DRIVER_NOPROMPT 0 +#define SQL_DRIVER_COMPLETE 1 +#define SQL_DRIVER_PROMPT 2 +#define SQL_DRIVER_COMPLETE_REQUIRED 3 + +#ifndef RC_INVOKED + +SQLRETURN SQL_API SQLDriverConnect( + SQLHDBC hdbc, + SQLHWND hwnd, + SQLCHAR FAR *szConnStrIn, + SQLSMALLINT cbConnStrIn, + SQLCHAR FAR *szConnStrOut, + SQLSMALLINT cbConnStrOutMax, + SQLSMALLINT FAR *pcbConnStrOut, + SQLUSMALLINT fDriverCompletion); + +#endif /* RC_INVOKED */ + +/* Level 2 Functions */ + +/* SQLExtendedFetch "fFetchType" values */ +#ifndef SQL_FETCH_NEXT +#define SQL_FETCH_NEXT 1 +#endif +#ifndef SQL_FETCH_FIRST +#define SQL_FETCH_FIRST 2 +#endif +#define SQL_FETCH_LAST 3 +#define SQL_FETCH_PRIOR 4 +#define SQL_FETCH_ABSOLUTE 5 +#define SQL_FETCH_RELATIVE 6 +#if (ODBCVER >= 0x0200) +#define SQL_FETCH_BOOKMARK 8 +#endif /* ODBCVER >= 0x0200 */ + +/* SQLExtendedFetch "rgfRowStatus" element values */ +#define SQL_ROW_SUCCESS 0 +#define SQL_ROW_DELETED 1 +#define SQL_ROW_UPDATED 2 +#define SQL_ROW_NOROW 3 +#if (ODBCVER >= 0x0200) +#define SQL_ROW_ADDED 4 +#define SQL_ROW_ERROR 5 +#endif /* ODBCVER >= 0x0200 */ + +/* Defines for SQLForeignKeys (returned in result set) */ +#define SQL_CASCADE 0 +#define SQL_RESTRICT 1 +#define SQL_SET_NULL 2 +#if (ODBCVER >= 0x0250) +#define SQL_NO_ACTION 3 +#define SQL_SET_DEFAULT 4 +#endif + +/* Defines for SQLBindParameter and + SQLProcedureColumns (returned in the result set) */ +#define SQL_PARAM_TYPE_UNKNOWN 0 +#define SQL_PARAM_INPUT 1 +#define SQL_PARAM_INPUT_OUTPUT 2 +#define SQL_RESULT_COL 3 +#if (ODBCVER >= 0x0200) +#define SQL_PARAM_OUTPUT 4 +#define SQL_RETURN_VALUE 5 +#endif /* ODBCVER >= 0x0200 */ + + +#if (ODBCVER >= 0x0200) +/* Defines for SQLProcedures (returned in the result set) */ +#define SQL_PT_UNKNOWN 0 +#define SQL_PT_PROCEDURE 1 +#define SQL_PT_FUNCTION 2 + +#endif /* ODBCVER >= 0x0200 */ + +/* Defines used by Driver Manager when mapping SQLSetParam to SQLBindParameter +*/ +#define SQL_PARAM_TYPE_DEFAULT SQL_PARAM_INPUT_OUTPUT +#define SQL_SETPARAM_VALUE_MAX (-1L) + + +#ifndef RC_INVOKED + +/* Level 2 Prototypes */ +SQLRETURN SQL_API SQLBrowseConnect( + SQLHDBC hdbc, + SQLCHAR FAR *szConnStrIn, + SQLSMALLINT cbConnStrIn, + SQLCHAR FAR *szConnStrOut, + SQLSMALLINT cbConnStrOutMax, + SQLSMALLINT FAR *pcbConnStrOut); + +SQLRETURN SQL_API SQLColumnPrivileges( + SQLHSTMT hstmt, + SQLCHAR FAR *szCatalogName, + SQLSMALLINT cbCatalogName, + SQLCHAR FAR *szSchemaName, + SQLSMALLINT cbSchemaName, + SQLCHAR FAR *szTableName, + SQLSMALLINT cbTableName, + SQLCHAR FAR *szColumnName, + SQLSMALLINT cbColumnName); + +SQLRETURN SQL_API SQLDescribeParam( + SQLHSTMT hstmt, + SQLUSMALLINT ipar, + SQLSMALLINT FAR *pfSqlType, + SQLUINTEGER FAR *pcbParamDef, + SQLSMALLINT FAR *pibScale, + SQLSMALLINT FAR *pfNullable); + +SQLRETURN SQL_API SQLExtendedFetch( + SQLHSTMT hstmt, + SQLUSMALLINT fFetchType, + SQLINTEGER irow, + SQLUINTEGER FAR *pcrow, + SQLUSMALLINT FAR *rgfRowStatus); + +SQLRETURN SQL_API SQLForeignKeys( + SQLHSTMT hstmt, + SQLCHAR FAR *szPkCatalogName, + SQLSMALLINT cbPkCatalogName, + SQLCHAR FAR *szPkSchemaName, + SQLSMALLINT cbPkSchemaName, + SQLCHAR FAR *szPkTableName, + SQLSMALLINT cbPkTableName, + SQLCHAR FAR *szFkCatalogName, + SQLSMALLINT cbFkCatalogName, + SQLCHAR FAR *szFkSchemaName, + SQLSMALLINT cbFkSchemaName, + SQLCHAR FAR *szFkTableName, + SQLSMALLINT cbFkTableName); + +SQLRETURN SQL_API SQLMoreResults( + SQLHSTMT hstmt); + +SQLRETURN SQL_API SQLNativeSql( + SQLHDBC hdbc, + SQLCHAR FAR *szSqlStrIn, + SQLINTEGER cbSqlStrIn, + SQLCHAR FAR *szSqlStr, + SQLINTEGER cbSqlStrMax, + SQLINTEGER FAR *pcbSqlStr); + +SQLRETURN SQL_API SQLNumParams( + SQLHSTMT hstmt, + SQLSMALLINT FAR *pcpar); + +SQLRETURN SQL_API SQLParamOptions( + SQLHSTMT hstmt, + SQLUINTEGER crow, + SQLUINTEGER FAR *pirow); + +SQLRETURN SQL_API SQLPrimaryKeys( + SQLHSTMT hstmt, + SQLCHAR FAR *szCatalogName, + SQLSMALLINT cbCatalogName, + SQLCHAR FAR *szSchemaName, + SQLSMALLINT cbSchemaName, + SQLCHAR FAR *szTableName, + SQLSMALLINT cbTableName); + +SQLRETURN SQL_API SQLProcedureColumns( + SQLHSTMT hstmt, + SQLCHAR FAR *szCatalogName, + SQLSMALLINT cbCatalogName, + SQLCHAR FAR *szSchemaName, + SQLSMALLINT cbSchemaName, + SQLCHAR FAR *szProcName, + SQLSMALLINT cbProcName, + SQLCHAR FAR *szColumnName, + SQLSMALLINT cbColumnName); + +SQLRETURN SQL_API SQLProcedures( + SQLHSTMT hstmt, + SQLCHAR FAR *szCatalogName, + SQLSMALLINT cbCatalogName, + SQLCHAR FAR *szSchemaName, + SQLSMALLINT cbSchemaName, + SQLCHAR FAR *szProcName, + SQLSMALLINT cbProcName); + +SQLRETURN SQL_API SQLSetPos( + SQLHSTMT hstmt, + SQLUSMALLINT irow, + SQLUSMALLINT fOption, + SQLUSMALLINT fLock); + +SQLRETURN SQL_API SQLTablePrivileges( + SQLHSTMT hstmt, + SQLCHAR FAR *szCatalogName, + SQLSMALLINT cbCatalogName, + SQLCHAR FAR *szSchemaName, + SQLSMALLINT cbSchemaName, + SQLCHAR FAR *szTableName, + SQLSMALLINT cbTableName); + +/* SDK 2.0 Additions */ + +#if (ODBCVER >= 0x0200) +SQLRETURN SQL_API SQLDrivers( + SQLHENV henv, + SQLUSMALLINT fDirection, + SQLCHAR FAR *szDriverDesc, + SQLSMALLINT cbDriverDescMax, + SQLSMALLINT FAR *pcbDriverDesc, + SQLCHAR FAR *szDriverAttributes, + SQLSMALLINT cbDrvrAttrMax, + SQLSMALLINT FAR *pcbDrvrAttr); + +SQLRETURN SQL_API SQLBindParameter( + SQLHSTMT hstmt, + SQLUSMALLINT ipar, + SQLSMALLINT fParamType, + SQLSMALLINT fCType, + SQLSMALLINT fSqlType, + SQLUINTEGER cbColDef, + SQLSMALLINT ibScale, + SQLPOINTER rgbValue, + SQLINTEGER cbValueMax, + SQLINTEGER FAR *pcbValue); +#endif /* ODBCVER >= 0x0200 */ + +#endif /* RC_INVOKED */ + + +#ifdef __cplusplus +} /* End of extern "C" { */ +#endif /* __cplusplus */ + +#endif /* __SQLEXT */ diff --git a/public/sdk/inc/mfc42/sqltypes.h b/public/sdk/inc/mfc42/sqltypes.h new file mode 100644 index 000000000..ae9d39e2c --- /dev/null +++ b/public/sdk/inc/mfc42/sqltypes.h @@ -0,0 +1,138 @@ +/********************************************************************* +** SQLTYPES.H - This file defines the types used in ODBC +** +** (C) Copyright 1995 By Microsoft Corp. +** +** Created 4/10/95 for 2.50 specification +*********************************************************************/ + +#ifndef __SQLTYPES +#define __SQLTYPES + +/* if ODBCVER is not defined, assume version 2.50 */ +#ifndef ODBCVER +#define ODBCVER 0x0250 +#endif + +/* environment specific definitions */ +#ifndef EXPORT +#define EXPORT _export +#endif + +/* define WINDOWS */ +/* _WINDOWS_ is defined in windows.h for 32 bit */ +/* _INC_WINDOWS is defined in windows.h for 16 bit */ +#if (defined(_WINDOWS_) || defined(_INC_WINDOWS)) && !defined(WINDOWS) +#define WINDOWS +#endif + +#ifdef WIN32 +#define SQL_API __stdcall +#elif defined(WINDOWS) +#define SQL_API EXPORT CALLBACK +#else +#define SQL_API +#endif + + +#ifndef RC_INVOKED + +#if !defined(WINDOWS) && !defined(FAR) +#define FAR +#endif + +/* SQL portable types for C */ +typedef unsigned char UCHAR; +typedef signed char SCHAR; +typedef long int SDWORD; +typedef short int SWORD; +typedef unsigned long int UDWORD; +typedef unsigned short int UWORD; + +#if (ODBCVER >= 0x0200) +typedef signed long SLONG; +typedef signed short SSHORT; +typedef unsigned long ULONG; +typedef unsigned short USHORT; +#endif /* ODBCVER >= 0x0200 */ +typedef double SDOUBLE; +#if defined(WIN32) +typedef double LDOUBLE; /* long double == short double in Win32 */ +#elif defined(WINDOWS) +typedef long double LDOUBLE; +#else +typedef double LDOUBLE; +#endif +typedef float SFLOAT; + +typedef void FAR * PTR; + +typedef void FAR * HENV; +typedef void FAR * HDBC; +typedef void FAR * HSTMT; + +typedef signed short RETCODE; + +typedef UCHAR SQLCHAR; +typedef SCHAR SQLSCHAR; +typedef SDWORD SQLINTEGER; +typedef SWORD SQLSMALLINT; +typedef UDWORD SQLUINTEGER; +typedef UWORD SQLUSMALLINT; + +typedef void FAR * SQLPOINTER; + +#if defined(WINDOWS) || defined(WIN32) +typedef HENV SQLHENV; +typedef HDBC SQLHDBC; +typedef HSTMT SQLHSTMT; +#else +typedef SQLINTEGER SQLHENV; +typedef SQLINTEGER SQLHDBC; +typedef SQLINTEGER SQLHSTMT; +#endif + +typedef SQLSMALLINT SQLRETURN; + +#if defined(WINDOWS) || defined(WIN32) || defined(OS2) +typedef HWND SQLHWND; +#elif defined (UNIX) +typedef Widget SQLHWND; +#else +/* placehold for future O/S GUI window handle definition */ +typedef SQLPOINTER SQLHWND; +#endif + +/* transfer types for DATE, TIME, TIMESTAMP */ +typedef struct tagDATE_STRUCT +{ + SQLSMALLINT year; + SQLUSMALLINT month; + SQLUSMALLINT day; +} DATE_STRUCT; + +typedef struct tagTIME_STRUCT +{ + SQLUSMALLINT hour; + SQLUSMALLINT minute; + SQLUSMALLINT second; +} TIME_STRUCT; + +typedef struct tagTIMESTAMP_STRUCT +{ + SQLSMALLINT year; + SQLUSMALLINT month; + SQLUSMALLINT day; + SQLUSMALLINT hour; + SQLUSMALLINT minute; + SQLUSMALLINT second; + SQLUINTEGER fraction; +} TIMESTAMP_STRUCT; + +#if (ODBCVER >= 0x0200) +typedef unsigned long int BOOKMARK; +#endif /* ODBCVER >= 0x0200 */ + +#endif + +#endif /* #ifndef __SQLTYPES */ diff --git a/public/sdk/inc/mfc42/winres.h b/public/sdk/inc/mfc42/winres.h new file mode 100644 index 000000000..910df28a9 --- /dev/null +++ b/public/sdk/inc/mfc42/winres.h @@ -0,0 +1,597 @@ +// 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. + +// winres.h - Windows resource definitions +// extracted from WINUSER.H and COMMCTRL.H + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, off) +#endif + +#define VS_VERSION_INFO 1 + +#ifdef APSTUDIO_INVOKED +#define APSTUDIO_HIDDEN_SYMBOLS // Ignore following symbols +#endif + +#ifndef WINVER +#define WINVER 0x0400 // default to Windows Version 4.0 +#endif + +#define OBM_CLOSE 32754 +#define OBM_UPARROW 32753 +#define OBM_DNARROW 32752 +#define OBM_RGARROW 32751 +#define OBM_LFARROW 32750 +#define OBM_REDUCE 32749 +#define OBM_ZOOM 32748 +#define OBM_RESTORE 32747 +#define OBM_REDUCED 32746 +#define OBM_ZOOMD 32745 +#define OBM_RESTORED 32744 +#define OBM_UPARROWD 32743 +#define OBM_DNARROWD 32742 +#define OBM_RGARROWD 32741 +#define OBM_LFARROWD 32740 +#define OBM_MNARROW 32739 +#define OBM_COMBO 32738 +#define OBM_UPARROWI 32737 +#define OBM_DNARROWI 32736 +#define OBM_RGARROWI 32735 +#define OBM_LFARROWI 32734 +#define OBM_OLD_CLOSE 32767 +#define OBM_SIZE 32766 +#define OBM_OLD_UPARROW 32765 +#define OBM_OLD_DNARROW 32764 +#define OBM_OLD_RGARROW 32763 +#define OBM_OLD_LFARROW 32762 +#define OBM_BTSIZE 32761 +#define OBM_CHECK 32760 +#define OBM_CHECKBOXES 32759 +#define OBM_BTNCORNERS 32758 +#define OBM_OLD_REDUCE 32757 +#define OBM_OLD_ZOOM 32756 +#define OBM_OLD_RESTORE 32755 +#define OCR_NORMAL 32512 +#define OCR_IBEAM 32513 +#define OCR_WAIT 32514 +#define OCR_CROSS 32515 +#define OCR_UP 32516 +#define OCR_SIZE 32640 +#define OCR_ICON 32641 +#define OCR_SIZENWSE 32642 +#define OCR_SIZENESW 32643 +#define OCR_SIZEWE 32644 +#define OCR_SIZENS 32645 +#define OCR_SIZEALL 32646 +#define OCR_ICOCUR 32647 +#define OCR_NO 32648 +#define OIC_SAMPLE 32512 +#define OIC_HAND 32513 +#define OIC_QUES 32514 +#define OIC_BANG 32515 +#define OIC_NOTE 32516 + +#if (WINVER >= 0x0400) +#define OCR_APPSTARTING 32650 +#define OIC_WINLOGO 32517 +#define OIC_WARNING OIC_BANG +#define OIC_ERROR OIC_HAND +#define OIC_INFORMATION OIC_NOTE +#endif + +#define WS_OVERLAPPED 0x00000000L +#define WS_POPUP 0x80000000L +#define WS_CHILD 0x40000000L +#define WS_CLIPSIBLINGS 0x04000000L +#define WS_CLIPCHILDREN 0x02000000L +#define WS_VISIBLE 0x10000000L +#define WS_DISABLED 0x08000000L +#define WS_MINIMIZE 0x20000000L +#define WS_MAXIMIZE 0x01000000L +#define WS_CAPTION 0x00C00000L +#define WS_BORDER 0x00800000L +#define WS_DLGFRAME 0x00400000L +#define WS_VSCROLL 0x00200000L +#define WS_HSCROLL 0x00100000L +#define WS_SYSMENU 0x00080000L +#define WS_THICKFRAME 0x00040000L +#define WS_MINIMIZEBOX 0x00020000L +#define WS_MAXIMIZEBOX 0x00010000L +#define WS_GROUP 0x00020000L +#define WS_TABSTOP 0x00010000L + +// other aliases +#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX) +#define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU) +#define WS_CHILDWINDOW (WS_CHILD) +#define WS_TILED WS_OVERLAPPED +#define WS_ICONIC WS_MINIMIZE +#define WS_SIZEBOX WS_THICKFRAME +#define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW + +#define WS_EX_DLGMODALFRAME 0x00000001L +#define WS_EX_NOPARENTNOTIFY 0x00000004L +#define WS_EX_TOPMOST 0x00000008L +#define WS_EX_ACCEPTFILES 0x00000010L +#define WS_EX_TRANSPARENT 0x00000020L +#if (WINVER >= 0x0400) +#define WS_EX_MDICHILD 0x00000040L +#define WS_EX_TOOLWINDOW 0x00000080L +#define WS_EX_WINDOWEDGE 0x00000100L +#define WS_EX_CLIENTEDGE 0x00000200L +#define WS_EX_CONTEXTHELP 0x00000400L + +#define WS_EX_RIGHT 0x00001000L +#define WS_EX_LEFT 0x00000000L +#define WS_EX_RTLREADING 0x00002000L +#define WS_EX_LTRREADING 0x00000000L +#define WS_EX_LEFTSCROLLBAR 0x00004000L +#define WS_EX_RIGHTSCROLLBAR 0x00000000L + +#define WS_EX_CONTROLPARENT 0x00010000L +#define WS_EX_STATICEDGE 0x00020000L +#define WS_EX_APPWINDOW 0x00040000L + +#define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE) +#define WS_EX_PALETTEWINDOW (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST) +#endif + +#define VK_LBUTTON 0x01 +#define VK_RBUTTON 0x02 +#define VK_CANCEL 0x03 +#define VK_MBUTTON 0x04 +#define VK_BACK 0x08 +#define VK_TAB 0x09 +#define VK_CLEAR 0x0C +#define VK_RETURN 0x0D +#define VK_SHIFT 0x10 +#define VK_CONTROL 0x11 +#define VK_MENU 0x12 +#define VK_PAUSE 0x13 +#define VK_CAPITAL 0x14 +#define VK_ESCAPE 0x1B +#define VK_SPACE 0x20 +#define VK_PRIOR 0x21 +#define VK_NEXT 0x22 +#define VK_END 0x23 +#define VK_HOME 0x24 +#define VK_LEFT 0x25 +#define VK_UP 0x26 +#define VK_RIGHT 0x27 +#define VK_DOWN 0x28 +#define VK_SELECT 0x29 +#define VK_PRINT 0x2A +#define VK_EXECUTE 0x2B +#define VK_SNAPSHOT 0x2C +#define VK_INSERT 0x2D +#define VK_DELETE 0x2E +#define VK_HELP 0x2F +#define VK_NUMPAD0 0x60 +#define VK_NUMPAD1 0x61 +#define VK_NUMPAD2 0x62 +#define VK_NUMPAD3 0x63 +#define VK_NUMPAD4 0x64 +#define VK_NUMPAD5 0x65 +#define VK_NUMPAD6 0x66 +#define VK_NUMPAD7 0x67 +#define VK_NUMPAD8 0x68 +#define VK_NUMPAD9 0x69 +#define VK_MULTIPLY 0x6A +#define VK_ADD 0x6B +#define VK_SEPARATOR 0x6C +#define VK_SUBTRACT 0x6D +#define VK_DECIMAL 0x6E +#define VK_DIVIDE 0x6F +#define VK_F1 0x70 +#define VK_F2 0x71 +#define VK_F3 0x72 +#define VK_F4 0x73 +#define VK_F5 0x74 +#define VK_F6 0x75 +#define VK_F7 0x76 +#define VK_F8 0x77 +#define VK_F9 0x78 +#define VK_F10 0x79 +#define VK_F11 0x7A +#define VK_F12 0x7B +#define VK_F13 0x7C +#define VK_F14 0x7D +#define VK_F15 0x7E +#define VK_F16 0x7F +#define VK_F17 0x80 +#define VK_F18 0x81 +#define VK_F19 0x82 +#define VK_F20 0x83 +#define VK_F21 0x84 +#define VK_F22 0x85 +#define VK_F23 0x86 +#define VK_F24 0x87 +#define VK_NUMLOCK 0x90 +#define VK_SCROLL 0x91 + +#define VK_LSHIFT 0xA0 +#define VK_RSHIFT 0xA1 +#define VK_LCONTROL 0xA2 +#define VK_RCONTROL 0xA3 +#define VK_LMENU 0xA4 +#define VK_RMENU 0xA5 + +#if (WINVER >= 0x0400) +#define VK_PROCESSKEY 0xE5 +#endif /* WINVER >= 0x0400 */ + +#define VK_ATTN 0xF6 +#define VK_CRSEL 0xF7 +#define VK_EXSEL 0xF8 +#define VK_EREOF 0xF9 +#define VK_PLAY 0xFA +#define VK_ZOOM 0xFB +#define VK_NONAME 0xFC +#define VK_PA1 0xFD +#define VK_OEM_CLEAR 0xFE + +#define SC_SIZE 0xF000 +#define SC_MOVE 0xF010 +#define SC_MINIMIZE 0xF020 +#define SC_MAXIMIZE 0xF030 +#define SC_NEXTWINDOW 0xF040 +#define SC_PREVWINDOW 0xF050 +#define SC_CLOSE 0xF060 +#define SC_VSCROLL 0xF070 +#define SC_HSCROLL 0xF080 +#define SC_MOUSEMENU 0xF090 +#define SC_KEYMENU 0xF100 +#define SC_ARRANGE 0xF110 +#define SC_RESTORE 0xF120 +#define SC_TASKLIST 0xF130 +#define SC_SCREENSAVE 0xF140 +#define SC_HOTKEY 0xF150 + +#define DS_ABSALIGN 0x01L +#define DS_SYSMODAL 0x02L +#define DS_LOCALEDIT 0x20L +#define DS_SETFONT 0x40L +#define DS_MODALFRAME 0x80L +#define DS_NOIDLEMSG 0x100L +#define DS_SETFOREGROUND 0x200L + +#ifdef _MAC +#define DS_WINDOWSUI 0x8000L +#endif + +#if (WINVER >= 0x0400) +#define DS_3DLOOK 0x0004L +#define DS_FIXEDSYS 0x0008L +#define DS_NOFAILCREATE 0x0010L +#define DS_CONTROL 0x0400L +#define DS_CENTER 0x0800L +#define DS_CENTERMOUSE 0x1000L +#define DS_CONTEXTHELP 0x2000L +#endif + +#define SS_LEFT 0x00000000L +#define SS_CENTER 0x00000001L +#define SS_RIGHT 0x00000002L +#define SS_ICON 0x00000003L +#define SS_BLACKRECT 0x00000004L +#define SS_GRAYRECT 0x00000005L +#define SS_WHITERECT 0x00000006L +#define SS_BLACKFRAME 0x00000007L +#define SS_GRAYFRAME 0x00000008L +#define SS_WHITEFRAME 0x00000009L +#define SS_SIMPLE 0x0000000BL +#define SS_LEFTNOWORDWRAP 0x0000000CL +#define SS_BITMAP 0x0000000EL + +#if (WINVER >= 0x0400) +#define SS_OWNERDRAW 0x0000000DL +#define SS_ENHMETAFILE 0x0000000FL +#define SS_ETCHEDHORZ 0x00000010L +#define SS_ETCHEDVERT 0x00000011L +#define SS_ETCHEDFRAME 0x00000012L +#endif + +#define SS_NOPREFIX 0x00000080L +#if (WINVER >= 0x0400) +#define SS_NOTIFY 0x00000100L +#endif +#define SS_CENTERIMAGE 0x00000200L +#if (WINVER >= 0x0400) +#define SS_RIGHTJUST 0x00000400L +#define SS_REALSIZEIMAGE 0x00000800L +#define SS_SUNKEN 0x00001000L +#endif + +#define BS_PUSHBUTTON 0x00000000L +#define BS_DEFPUSHBUTTON 0x00000001L +#define BS_CHECKBOX 0x00000002L +#define BS_AUTOCHECKBOX 0x00000003L +#define BS_RADIOBUTTON 0x00000004L +#define BS_3STATE 0x00000005L +#define BS_AUTO3STATE 0x00000006L +#define BS_GROUPBOX 0x00000007L +#define BS_USERBUTTON 0x00000008L +#define BS_AUTORADIOBUTTON 0x00000009L +#define BS_OWNERDRAW 0x0000000BL +#define BS_LEFTTEXT 0x00000020L +#if (WINVER >= 0x0400) +#define BS_TEXT 0x00000000L +#define BS_ICON 0x00000040L +#define BS_BITMAP 0x00000080L +#define BS_LEFT 0x00000100L +#define BS_RIGHT 0x00000200L +#define BS_CENTER 0x00000300L +#define BS_TOP 0x00000400L +#define BS_BOTTOM 0x00000800L +#define BS_VCENTER 0x00000C00L +#define BS_PUSHLIKE 0x00001000L +#define BS_MULTILINE 0x00002000L +#define BS_NOTIFY 0x00004000L +#define BS_FLAT 0x00008000L +#define BS_RIGHTBUTTON BS_LEFTTEXT +#endif + +#define ES_LEFT 0x00000000L +#define ES_CENTER 0x00000001L +#define ES_RIGHT 0x00000002L +#define ES_MULTILINE 0x00000004L +#define ES_UPPERCASE 0x00000008L +#define ES_LOWERCASE 0x00000010L +#define ES_PASSWORD 0x00000020L +#define ES_AUTOVSCROLL 0x00000040L +#define ES_AUTOHSCROLL 0x00000080L +#define ES_NOHIDESEL 0x00000100L +#define ES_OEMCONVERT 0x00000400L +#define ES_READONLY 0x00000800L +#define ES_WANTRETURN 0x00001000L +#if (WINVER >= 0x0400) +#define ES_NUMBER 0x2000L +#endif + +#define SBS_HORZ 0x0000L +#define SBS_VERT 0x0001L +#define SBS_TOPALIGN 0x0002L +#define SBS_LEFTALIGN 0x0002L +#define SBS_BOTTOMALIGN 0x0004L +#define SBS_RIGHTALIGN 0x0004L +#define SBS_SIZEBOXTOPLEFTALIGN 0x0002L +#define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L +#define SBS_SIZEBOX 0x0008L +#if (WINVER >= 0x0400) +#define SBS_SIZEGRIP 0x0010L +#endif + +#define LBS_NOTIFY 0x0001L +#define LBS_SORT 0x0002L +#define LBS_NOREDRAW 0x0004L +#define LBS_MULTIPLESEL 0x0008L +#define LBS_OWNERDRAWFIXED 0x0010L +#define LBS_OWNERDRAWVARIABLE 0x0020L +#define LBS_HASSTRINGS 0x0040L +#define LBS_USETABSTOPS 0x0080L +#define LBS_NOINTEGRALHEIGHT 0x0100L +#define LBS_MULTICOLUMN 0x0200L +#define LBS_WANTKEYBOARDINPUT 0x0400L +#define LBS_EXTENDEDSEL 0x0800L +#define LBS_DISABLENOSCROLL 0x1000L +#if (WINVER >= 0x0400) +#define LBS_NOSEL 0x4000L +#endif +#define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER) + +#define CBS_SIMPLE 0x0001L +#define CBS_DROPDOWN 0x0002L +#define CBS_DROPDOWNLIST 0x0003L +#define CBS_OWNERDRAWFIXED 0x0010L +#define CBS_OWNERDRAWVARIABLE 0x0020L +#define CBS_AUTOHSCROLL 0x0040L +#define CBS_OEMCONVERT 0x0080L +#define CBS_SORT 0x0100L +#define CBS_HASSTRINGS 0x0200L +#define CBS_NOINTEGRALHEIGHT 0x0400L +#define CBS_DISABLENOSCROLL 0x0800L +#if (WINVER >= 0x0400) +#define CBS_UPPERCASE 0x2000L +#define CBS_LOWERCASE 0x4000L +#endif + +// operation messages sent to DLGINIT +#define WM_USER 0x0400 +#define LB_ADDSTRING (WM_USER+1) +#define CB_ADDSTRING (WM_USER+3) + +#if (WINVER >= 0x0400) + +#define HDS_HORZ 0x00000000 +#define HDS_BUTTONS 0x00000002 +#define HDS_HIDDEN 0x00000008 + +#define TTS_ALWAYSTIP 0x01 +#define TTS_NOPREFIX 0x02 + +#define SBARS_SIZEGRIP 0x0100 + +#define TBS_AUTOTICKS 0x0001 +#define TBS_VERT 0x0002 +#define TBS_HORZ 0x0000 +#define TBS_TOP 0x0004 +#define TBS_BOTTOM 0x0000 +#define TBS_LEFT 0x0004 +#define TBS_RIGHT 0x0000 +#define TBS_BOTH 0x0008 +#define TBS_NOTICKS 0x0010 +#define TBS_ENABLESELRANGE 0x0020 +#define TBS_FIXEDLENGTH 0x0040 +#define TBS_NOTHUMB 0x0080 + +#define UDS_WRAP 0x0001 +#define UDS_SETBUDDYINT 0x0002 +#define UDS_ALIGNRIGHT 0x0004 +#define UDS_ALIGNLEFT 0x0008 +#define UDS_AUTOBUDDY 0x0010 +#define UDS_ARROWKEYS 0x0020 +#define UDS_HORZ 0x0040 +#define UDS_NOTHOUSANDS 0x0080 + +#define CCS_TOP 0x00000001L +#define CCS_NOMOVEY 0x00000002L +#define CCS_BOTTOM 0x00000003L +#define CCS_NORESIZE 0x00000004L +#define CCS_NOPARENTALIGN 0x00000008L +#define CCS_NOHILITE 0x00000010L +#define CCS_ADJUSTABLE 0x00000020L +#define CCS_NODIVIDER 0x00000040L + +#define LVS_ICON 0x0000 +#define LVS_REPORT 0x0001 +#define LVS_SMALLICON 0x0002 +#define LVS_LIST 0x0003 +#define LVS_TYPEMASK 0x0003 +#define LVS_SINGLESEL 0x0004 +#define LVS_SHOWSELALWAYS 0x0008 +#define LVS_SORTASCENDING 0x0010 +#define LVS_SORTDESCENDING 0x0020 +#define LVS_SHAREIMAGELISTS 0x0040 +#define LVS_NOLABELWRAP 0x0080 +#define LVS_AUTOARRANGE 0x0100 +#define LVS_EDITLABELS 0x0200 +#define LVS_NOSCROLL 0x2000 + +#define LVS_ALIGNTOP 0x0000 +#define LVS_ALIGNLEFT 0x0800 +#define LVS_ALIGNMASK 0x0c00 + +#define LVS_OWNERDRAWFIXED 0x0400 +#define LVS_NOCOLUMNHEADER 0x4000 +#define LVS_NOSORTHEADER 0x8000 + +#define TVS_HASBUTTONS 0x0001 +#define TVS_HASLINES 0x0002 +#define TVS_LINESATROOT 0x0004 +#define TVS_EDITLABELS 0x0008 +#define TVS_DISABLEDRAGDROP 0x0010 +#define TVS_SHOWSELALWAYS 0x0020 + +#define TCS_FORCEICONLEFT 0x0010 +#define TCS_FORCELABELLEFT 0x0020 +#define TCS_SHAREIMAGELISTS 0x0040 +#define TCS_TABS 0x0000 +#define TCS_BUTTONS 0x0100 +#define TCS_SINGLELINE 0x0000 +#define TCS_MULTILINE 0x0200 +#define TCS_RIGHTJUSTIFY 0x0000 +#define TCS_FIXEDWIDTH 0x0400 +#define TCS_RAGGEDRIGHT 0x0800 +#define TCS_FOCUSONBUTTONDOWN 0x1000 +#define TCS_OWNERDRAWFIXED 0x2000 +#define TCS_TOOLTIPS 0x4000 +#define TCS_FOCUSNEVER 0x8000 + +#define ACS_CENTER 0x0001 +#define ACS_TRANSPARENT 0x0002 +#define ACS_AUTOPLAY 0x0004 + +#endif // (WINVER >= 0x0400) + +// 32-bit language/sub-language identifiers + +#ifndef LANG_NEUTRAL +// Primary language IDs. +#define LANG_NEUTRAL 0x00 + +#define LANG_BULGARIAN 0x02 +#define LANG_CHINESE 0x04 +#define LANG_CROATIAN 0x1a +#define LANG_CZECH 0x05 +#define LANG_DANISH 0x06 +#define LANG_DUTCH 0x13 +#define LANG_ENGLISH 0x09 +#define LANG_FINNISH 0x0b +#define LANG_FRENCH 0x0c +#define LANG_GERMAN 0x07 +#define LANG_GREEK 0x08 +#define LANG_HUNGARIAN 0x0e +#define LANG_ICELANDIC 0x0f +#define LANG_ITALIAN 0x10 +#define LANG_JAPANESE 0x11 +#define LANG_KOREAN 0x12 +#define LANG_NORWEGIAN 0x14 +#define LANG_POLISH 0x15 +#define LANG_PORTUGUESE 0x16 +#define LANG_ROMANIAN 0x18 +#define LANG_RUSSIAN 0x19 +#define LANG_SLOVAK 0x1b +#define LANG_SLOVENIAN 0x24 +#define LANG_SPANISH 0x0a +#define LANG_SWEDISH 0x1d +#define LANG_TURKISH 0x1f +#endif //!LANG_NEUTRAL + +#ifndef SUBLANG_NEUTRAL +// Sublanguage IDs. +#define SUBLANG_NEUTRAL 0x00 +#define SUBLANG_DEFAULT 0x01 +#define SUBLANG_SYS_DEFAULT 0x02 + +#define SUBLANG_CHINESE_TRADITIONAL 0x01 +#define SUBLANG_CHINESE_SIMPLIFIED 0x02 +#define SUBLANG_CHINESE_HONGKONG 0x03 +#define SUBLANG_CHINESE_SINGAPORE 0x04 +#define SUBLANG_DUTCH 0x01 +#define SUBLANG_DUTCH_BELGIAN 0x02 +#define SUBLANG_ENGLISH_US 0x01 +#define SUBLANG_ENGLISH_UK 0x02 +#define SUBLANG_ENGLISH_AUS 0x03 +#define SUBLANG_ENGLISH_CAN 0x04 +#define SUBLANG_ENGLISH_NZ 0x05 +#define SUBLANG_ENGLISH_EIRE 0x06 +#define SUBLANG_FRENCH 0x01 +#define SUBLANG_FRENCH_BELGIAN 0x02 +#define SUBLANG_FRENCH_CANADIAN 0x03 +#define SUBLANG_FRENCH_SWISS 0x04 +#define SUBLANG_GERMAN 0x01 +#define SUBLANG_GERMAN_SWISS 0x02 +#define SUBLANG_GERMAN_AUSTRIAN 0x03 +#define SUBLANG_ITALIAN 0x01 +#define SUBLANG_ITALIAN_SWISS 0x02 +#define SUBLANG_NORWEGIAN_BOKMAL 0x01 +#define SUBLANG_NORWEGIAN_NYNORSK 0x02 +#define SUBLANG_PORTUGUESE 0x02 +#define SUBLANG_PORTUGUESE_BRAZILIAN 0x01 +#define SUBLANG_SPANISH 0x01 +#define SUBLANG_SPANISH_MEXICAN 0x02 +#define SUBLANG_SPANISH_MODERN 0x03 +#endif //!SUBLANG_NEUTRAL + +#ifdef APSTUDIO_INVOKED +#undef APSTUDIO_HIDDEN_SYMBOLS +#endif + +#define IDOK 1 +#define IDCANCEL 2 +#define IDABORT 3 +#define IDRETRY 4 +#define IDIGNORE 5 +#define IDYES 6 +#define IDNO 7 +#if (WINVER >= 0x0400) +#define IDCLOSE 8 +#define IDHELP 9 +#endif + +#ifdef IDC_STATIC +#undef IDC_STATIC +#endif +#define IDC_STATIC (-1) + +#ifdef _AFX_MINREBUILD +#pragma component(minrebuild, on) +#endif |