home *** CD-ROM | disk | FTP | other *** search
-
- /* noafxstr.h:
-
- need string conversions for OLE, but don't want all of MFC;
- these were borrowed from various MFC header files */
-
- LPWSTR NoAfxA2WHelper(LPWSTR lpw, LPCSTR lpa, int nChars);
- LPSTR NoAfxW2AHelper(LPSTR lpa, LPCWSTR lpw, int nChars);
-
- #define A2CW(lpa) (\
- ((LPCSTR)lpa == NULL) ? NULL : (\
- _convert = (strlen(lpa)+1),\
- (LPCWSTR)NoAfxA2WHelper((LPWSTR) alloca(_convert*2), lpa, _convert)\
- )\
- )
-
- #define A2W(lpa) (\
- ((LPCSTR)lpa == NULL) ? NULL : (\
- _convert = (strlen(lpa)+1),\
- NoAfxA2WHelper((LPWSTR) alloca(_convert*2), lpa, _convert)\
- )\
- )
-
- #define W2CA(lpw) (\
- ((LPCWSTR)lpw == NULL) ? NULL : (\
- _convert = (wcslen(lpw)+1)*2,\
- (LPCSTR)NoAfxW2AHelper((LPSTR) alloca(_convert), lpw, _convert)\
- )\
- )
-
- #define W2A(lpw) (\
- ((LPCWSTR)lpw == NULL) ? NULL : (\
- _convert = (wcslen(lpw)+1)*2,\
- NoAfxW2AHelper((LPSTR) alloca(_convert), lpw, _convert)\
- )\
- )
-
- #ifndef _DEBUG
- #define USES_CONVERSION int _convert; _convert
- #else
- #define USES_CONVERSION int _convert = 0;
- #endif
-
- #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 strlen(x); }
- inline OLECHAR* ocscpy(LPOLESTR dest, LPCOLESTR src) { return strcpy(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 _UNICODE
- #define T2A W2A
- #define A2T A2W
- #define T2W(x) (x)
- #define W2T(x) (x)
- #else
- #define T2W A2W
- #define W2T W2A
- #define T2A(x) (x)
- #define A2T(x) (x)
- #endif
-
-