コード例 #1
0
ファイル: olecnvrt.cpp プロジェクト: Rupan/winscp
LPDEVMODEW AFXAPI AfxDevModeA2W(LPDEVMODEW lpDevModeW, LPDEVMODEA lpDevModeA)
{
	if (lpDevModeA == NULL)
		return NULL;
	ASSERT(lpDevModeW != NULL);
	AfxA2WHelper(lpDevModeW->dmDeviceName, (LPCSTR)lpDevModeA->dmDeviceName, 32*sizeof(WCHAR));
	memcpy(&lpDevModeW->dmSpecVersion, &lpDevModeA->dmSpecVersion,
		offsetof(DEVMODEW, dmFormName) - offsetof(DEVMODEW, dmSpecVersion));
	AfxA2WHelper(lpDevModeW->dmFormName, (LPCSTR)lpDevModeA->dmFormName, 32*sizeof(WCHAR));
	memcpy(&lpDevModeW->dmLogPixels, &lpDevModeA->dmLogPixels,
		sizeof(DEVMODEW) - offsetof(DEVMODEW, dmLogPixels));
	if (lpDevModeA->dmDriverExtra != 0)
		memcpy(lpDevModeW+1, lpDevModeA+1, lpDevModeA->dmDriverExtra);
	lpDevModeW->dmSize = sizeof(DEVMODEW);
	return lpDevModeW;
}
コード例 #2
0
ファイル: olecnvrt.cpp プロジェクト: CyberShadow/Far-NetBox
LPDEVMODEW AFXAPI AfxDevModeA2W(LPDEVMODEW lpDevModeW, LPDEVMODEA lpDevModeA)
{
	if (lpDevModeA == NULL)
		return NULL;
	ASSERT(lpDevModeW != NULL);
	AfxA2WHelper(lpDevModeW->dmDeviceName, (LPCSTR)lpDevModeA->dmDeviceName, CCHDEVICENAME);
	Checked::memcpy_s(&lpDevModeW->dmSpecVersion, offsetof(DEVMODEW, dmFormName) - offsetof(DEVMODEW, dmSpecVersion),
		&lpDevModeA->dmSpecVersion, offsetof(DEVMODEW, dmFormName) - offsetof(DEVMODEW, dmSpecVersion));
	AfxA2WHelper(lpDevModeW->dmFormName, (LPCSTR)lpDevModeA->dmFormName, CCHFORMNAME);
	Checked::memcpy_s(&lpDevModeW->dmLogPixels, sizeof(DEVMODEW) - offsetof(DEVMODEW, dmLogPixels), 
		&lpDevModeA->dmLogPixels, sizeof(DEVMODEW) - offsetof(DEVMODEW, dmLogPixels));

	if (lpDevModeA->dmDriverExtra != 0)
	{
		Checked::memcpy_s(lpDevModeW+1, lpDevModeA->dmDriverExtra, 
			lpDevModeA+1, lpDevModeA->dmDriverExtra);
	}
	lpDevModeW->dmSize = sizeof(DEVMODEW);
	return lpDevModeW;
}
コード例 #3
0
//*******************************************************************************
BOOL CBCGPTagManager::LoadFromResource (LPCTSTR lpszResID, LPCTSTR lpszResType)
{
	if (lpszResID == NULL)
	{
		ASSERT (FALSE);
		return FALSE;
	}

	if (lpszResType == NULL)
	{
		ASSERT (FALSE);
		return FALSE;
	}

	BOOL bRes = FALSE;

	HINSTANCE hInst = AfxFindResourceHandle(lpszResID, lpszResType);
	HRSRC hRsrc = ::FindResource(hInst, lpszResID, lpszResType);
	
	if (hRsrc == NULL)
	{
		return FALSE;
	}

	HGLOBAL hGlobal = LoadResource(hInst, hRsrc);

	if (hGlobal == NULL)
	{
		return FALSE;
	}

#ifdef _UNICODE
	LPWSTR lpChars = NULL;

	LPSTR lpa = (LPSTR) LockResource (hGlobal);
	VERIFY(lpa != NULL);
	const size_t nChars = strlen (lpa) + 1;
	lpChars = (LPWSTR) new WCHAR[nChars];

	LPCTSTR lpszXML = AfxA2WHelper (lpChars, lpa, (int)nChars);
#else
	LPCTSTR lpszXML = (LPCTSTR) LockResource (hGlobal);
#endif

	if (lpszXML != NULL)
	{
		SetBuffer (lpszXML);
		bRes = TRUE;
	}

	UnlockResource (hGlobal);
	FreeResource (hGlobal);

#ifdef _UNICODE
	if (lpChars != NULL)
	{
		delete [] lpChars;
		lpChars = NULL;
	}
#endif

	return bRes;
}