LPDEVMODEA AFXAPI AfxDevModeW2A(LPDEVMODEA lpDevModeA, LPDEVMODEW lpDevModeW) { if (lpDevModeW == NULL) return NULL; ASSERT(lpDevModeA != NULL); AfxW2AHelper((LPSTR)lpDevModeA->dmDeviceName, lpDevModeW->dmDeviceName, 32*sizeof(char)); memcpy(&lpDevModeA->dmSpecVersion, &lpDevModeW->dmSpecVersion, offsetof(DEVMODEA, dmFormName) - offsetof(DEVMODEA, dmSpecVersion)); AfxW2AHelper((LPSTR)lpDevModeA->dmFormName, lpDevModeW->dmFormName, 32*sizeof(char)); memcpy(&lpDevModeA->dmLogPixels, &lpDevModeW->dmLogPixels, sizeof(DEVMODEA) - offsetof(DEVMODEA, dmLogPixels)); if (lpDevModeW->dmDriverExtra != 0) memcpy(lpDevModeA+1, lpDevModeW+1, lpDevModeW->dmDriverExtra); lpDevModeA->dmSize = sizeof(DEVMODEA); return lpDevModeA; }
CRuntimeClass* CBCGPGlobalUtils::RuntimeClassFromName(LPCWSTR lpszClassName) { #if (_MSC_VER <= 1200) if(lpszClassName == NULL) { return NULL; } int length = (int)wcslen(lpszClassName); if (length == 0) { return NULL; } LPSTR lpszClassNameA = new char[length + 1]; AfxW2AHelper(lpszClassNameA, lpszClassName, length); CRuntimeClass* pClass = RuntimeClassFromName(lpszClassNameA); if (lpszClassNameA != NULL) { delete [] lpszClassNameA; } return pClass; #else return CRuntimeClass::FromName(lpszClassName); #endif }
LPDEVMODEA AFXAPI AfxDevModeW2A(LPDEVMODEA lpDevModeA, LPDEVMODEW lpDevModeW) { if (lpDevModeW == NULL) return NULL; ASSERT(lpDevModeA != NULL); AfxW2AHelper((LPSTR)lpDevModeA->dmDeviceName, lpDevModeW->dmDeviceName, CCHDEVICENAME*sizeof(char)); Checked::memcpy_s(&lpDevModeA->dmSpecVersion, offsetof(DEVMODEA, dmFormName) - offsetof(DEVMODEA, dmSpecVersion), &lpDevModeW->dmSpecVersion, offsetof(DEVMODEA, dmFormName) - offsetof(DEVMODEA, dmSpecVersion)); AfxW2AHelper((LPSTR)lpDevModeA->dmFormName, lpDevModeW->dmFormName, CCHFORMNAME*sizeof(char)); Checked::memcpy_s(&lpDevModeA->dmLogPixels, sizeof(DEVMODEA) - offsetof(DEVMODEA, dmLogPixels), &lpDevModeW->dmLogPixels, sizeof(DEVMODEA) - offsetof(DEVMODEA, dmLogPixels)); if (lpDevModeW->dmDriverExtra != 0) { Checked::memcpy_s(lpDevModeA+1, lpDevModeW->dmDriverExtra, lpDevModeW+1, lpDevModeW->dmDriverExtra); } lpDevModeA->dmSize = sizeof(DEVMODEA); return lpDevModeA; }