www.pudn.com > gspmidi101src.zip > wcehelper.cpp


#include "resource.h" 
#include "windows.h" 
#include "wcehelper.h" 
 
// class CWinceHelper 
CWinceHelper::CWinceHelper() :  
m_hAygShell(NULL), m_pSHInitDialog(NULL) 
{ 
	m_hAygShell = LoadLibrary(_T("aygshell.dll")); 
	if (m_hAygShell) { 
		(FARPROC&)m_pSHInitDialog = GetProcAddress(m_hAygShell, _T("SHInitDialog")); 
		(FARPROC&)m_pSHCreateMenuBar = GetProcAddress(m_hAygShell, _T("SHCreateMenuBar"));		 
	} 
	m_hCoreDll = LoadLibrary(_T("coredll.dll")); 
	if (m_hCoreDll) { 
		(FARPROC&)m_pSipGetInfo = GetProcAddress(m_hCoreDll, _T("SipGetInfo")); 
	} 
} 
 
CWinceHelper::~CWinceHelper() 
{ 
	if (m_hAygShell) 
		FreeLibrary(m_hAygShell); 
	if (m_hCoreDll) 
		FreeLibrary(m_hCoreDll); 
} 
 
BOOL CWinceHelper::DefDlgPaintProc(HWND hDlg, WPARAM wParam, LPARAM lParam) 
{ 
	if (IsPocketPC()) { 
		if (GetSystemMetrics(SM_CXSCREEN) != 240 || GetSystemMetrics(SM_CYSCREEN) != 320) 
			return FALSE; 
 
		PAINTSTRUCT ps; 
		HDC hDC = BeginPaint(hDlg, &ps); 
		POINT pt[2] = {{0, 24},{GetSystemMetrics(SM_CXSCREEN),24}}; 
		Polyline(hDC, pt, sizeof(pt)/sizeof(POINT)); 
		EndPaint(hDlg, &ps); 
		return TRUE; 
	} 
	return FALSE; 
} 
 
BOOL CWinceHelper::DefDlgCtlColorStaticProc(HWND hDlg, WPARAM wParam, LPARAM lParam) 
{ 
	if (IsPocketPC()) { 
		HDC hDC = (HDC)wParam; 
		if (GetDlgCtrlID((HWND)lParam) == IDC_TITLE) 
		{ 
			SetBkMode(hDC, TRANSPARENT); 
			SetTextColor(hDC, GetSysColor(COLOR_HIGHLIGHT)); 
			return (long)GetStockObject(WHITE_BRUSH); 
		} 
		else 
			return FALSE; 
	} 
	return FALSE; 
} 
 
void CWinceHelper::SHInitDialog(HWND hwndDlg) 
{ 
	if (m_hAygShell && m_pSHInitDialog) { 
		SHINITDLGINFO shidi; 
		shidi.dwMask = SHIDIM_FLAGS; 
		shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN; 
		shidi.hDlg = hwndDlg; 
		m_pSHInitDialog(&shidi); 
	} 
} 
 
HWND CWinceHelper::SHCreateMenuBar(HWND hwndParent, int nMenuID, int nBmpID, int cBmpImages) 
{ 
	if (m_pSHCreateMenuBar) { 
		SHMENUBARINFO mbi; 
		memset(&mbi, 0, sizeof(SHMENUBARINFO)); 
		mbi.cbSize = sizeof(SHMENUBARINFO); 
		mbi.hwndParent = hwndParent; 
		mbi.nToolBarId = nMenuID; 
		mbi.hInstRes = g_hInst; 
		mbi.nBmpId = nBmpID; 
		mbi.cBmpImages = cBmpImages; 
		//mbi.dwFlags = SHCMBF_EMPTYBAR; 
 
		if (m_pSHCreateMenuBar(&mbi))  
			return mbi.hwndMB; 
	} 
	return NULL; 
} 
 
BOOL CWinceHelper::IsSipPanelVisible() 
{ 
	if (m_pSipGetInfo) { 
		SIPINFO si; 
		memset(&si, 0, sizeof(SIPINFO)); 
		si.cbSize = sizeof(SIPINFO); 
		m_pSipGetInfo(&si); 
		if ((si.fdwFlags & SIPF_ON)) 
			return TRUE; 
	} 
	return FALSE; 
}