⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hxmullan.cpp

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			output = LoadString(hTempDLL, idResource, 
					    OS_STRING2(lpszBuffer, cbBuffer), 
					    cbBuffer);
			if (output)
			{
				bLoaded = TRUE;
				break; // for
				
			} // if output
			
		} // if some handle
		
	} // for

	if (!bLoaded)
	{
		output = LoadString(g_hInstBase, idResource, 
				    OS_STRING2(lpszBuffer, cbBuffer), 
				    cbBuffer);
	}
	return output;
}


HBITMAP HXLoadBitmap(LPCSTR pszName)
{
	BOOL	bLoaded = FALSE;
	HBITMAP	output = NULL;

	HXCheckLocale();

	HINSTANCE hTempDLL;
	// First Check in Language DLLs
	for (int ndx = 0; ndx < g_nLangDLLs; ndx++)
	{
		if (g_hLangDLLs[ndx])
		{
			hTempDLL = g_hLangDLLs[ndx];
			output = LoadBitmap(hTempDLL, OS_STRING(pszName));
			if (output)
			{
				bLoaded = TRUE;
				break; // for
				
			} // if output
			
		} // if some handle
		
	} // for

	if (!bLoaded)
	{
		output = LoadBitmap(g_hInstBase, OS_STRING(pszName));
	}
	return output;
}


HICON HXLoadIcon(LPCSTR pszName)
{
	BOOL	bLoaded = FALSE;
	HICON	output = NULL;

	HXCheckLocale();

	HINSTANCE hTempDLL;
	// First Check in Language DLLs
	for (int ndx = 0; ndx < g_nLangDLLs; ndx++)
	{
		if (g_hLangDLLs[ndx])
		{
			hTempDLL = g_hLangDLLs[ndx];
			output = LoadIcon(hTempDLL, OS_STRING(pszName));
			if (output)
			{
				bLoaded = TRUE;
				break; // for
				
			} // if output
			
		} // if some handle
		
	} // for
	if (!bLoaded)
	{
		output = LoadIcon(g_hInstBase, OS_STRING(pszName));
	}
	return output;
}

HCURSOR HXLoadCursor(LPCSTR pszName)
{
	BOOL	bLoaded = FALSE;
	HCURSOR	output = NULL;

	HXCheckLocale();

	HINSTANCE hTempDLL;
	// First Check in Language DLLs
	for (int ndx = 0; ndx < g_nLangDLLs; ndx++)
	{
		if (g_hLangDLLs[ndx])
		{
			hTempDLL = g_hLangDLLs[ndx];
			output = LoadCursor(hTempDLL, OS_STRING(pszName));
			if (output)
			{
				bLoaded = TRUE;
				break; // for
				
			} // if output
			
		} // if some handle
		
	} // for
	if (!bLoaded)
	{
		output = LoadCursor(g_hInstBase, OS_STRING(pszName));
	}
	return output;
}

HMENU HXLoadMenu(LPCSTR pszName)
{
	BOOL	bLoaded = FALSE;
	HMENU	output = NULL;

	HXCheckLocale();

	HINSTANCE hTempDLL;
	// First Check in Language DLLs
	for (int ndx = 0; ndx < g_nLangDLLs; ndx++)
	{
		if (g_hLangDLLs[ndx])
		{
			hTempDLL = g_hLangDLLs[ndx];
			output = LoadMenu(hTempDLL, OS_STRING(pszName));
			if (output)
			{
				bLoaded = TRUE;
				break; // for
				
			} // if output
			
		} // if some handle
		
	} // for
	if (!bLoaded)
	{
		output = LoadMenu(g_hInstBase, OS_STRING(pszName));
	}
	return output;
}

void * LoadDialogBoxTemplate(HINSTANCE hInst, LPCSTR pszName, HGLOBAL * pHMem)
{
	*pHMem = NULL;
	
	HRSRC hRsrc = FindResource(hInst, OS_STRING(pszName),RT_DIALOG);

	if (hRsrc)
	{
		*pHMem = LoadResource(hInst,hRsrc);
		return LockResource(*pHMem);
	}

	return NULL;
}

void * HXLoadDialogBoxTemplate(LPCSTR pszName, HGLOBAL * pHMem)
{
	BOOL	bLoaded = FALSE;
	void *  pTemplate = NULL;
	*pHMem = NULL;

	HXCheckLocale();

	HINSTANCE hTempDLL;
	// First Check in Language DLLs
	for (int ndx = 0; ndx < g_nLangDLLs; ndx++)
	{
		if (g_hLangDLLs[ndx])
		{
			hTempDLL = g_hLangDLLs[ndx];
			pTemplate = LoadDialogBoxTemplate(hTempDLL, pszName, pHMem);
			if (pTemplate)
			{
				bLoaded = TRUE;
				break; // for
				
			} // if output
			
		} // if some handle
		
	} // for
	if (!bLoaded)
	{
		pTemplate = LoadDialogBoxTemplate(g_hInstBase, pszName, pHMem);
	}
	return pTemplate;
}

int HXDialogBox(LPCSTR pszName, HWND hwndOwner, DLGPROC dlgprc)
{
	int	output = 0;                                                   
	HGLOBAL hMem;
#ifdef _WIN32
	LPDLGTEMPLATE pDlgTemp = (LPDLGTEMPLATE)HXLoadDialogBoxTemplate(pszName, &hMem);
#else
	void * pDlgTemp = HXLoadDialogBoxTemplate(pszName, &hMem);
#endif

	if (pDlgTemp && hMem)
	{
#ifdef _WIN32	
		output = DialogBoxIndirect(g_hInstBase, pDlgTemp, hwndOwner, dlgprc);
#else		                                                                 
      	output = DialogBoxIndirect(g_hInstBase, hMem, hwndOwner, dlgprc);
		UnlockResource(hMem);
		FreeResource(hMem);
#endif        		
	}
	return output;
}

int HXDialogBoxParam(LPCSTR pszName, HWND hwndOwner, DLGPROC dlgprc, LPARAM lParamInit)
{
	int	output = 0;   
	HGLOBAL hMem;
#ifdef _WIN32
	LPDLGTEMPLATE pDlgTemp = (LPDLGTEMPLATE)HXLoadDialogBoxTemplate(pszName, &hMem);
#else
	void * pDlgTemp = HXLoadDialogBoxTemplate(pszName, &hMem);
#endif

	if (pDlgTemp && hMem)
	{
#ifdef _WIN32	
		output = DialogBoxIndirectParam(g_hInstBase, pDlgTemp, hwndOwner, dlgprc, lParamInit);
#else		                                                                 
      	output = DialogBoxIndirectParam(g_hInstBase, hMem, hwndOwner, dlgprc, lParamInit);
		UnlockResource(hMem);
		FreeResource(hMem);
#endif        		
	}
	return output;
}

HWND HXCreateDialog(LPCSTR pszName, HWND hwndOwner, DLGPROC dlgprc)
{
	HWND output = 0;  
	HGLOBAL hMem;
#ifdef _WIN32
	LPDLGTEMPLATE pDlgTemp = (LPDLGTEMPLATE)HXLoadDialogBoxTemplate(pszName, &hMem);
#else
	void * pDlgTemp = HXLoadDialogBoxTemplate(pszName, &hMem);
#endif


	if (pDlgTemp && hMem)
	{
		output = CreateDialogIndirect(g_hInstBase, pDlgTemp, hwndOwner, dlgprc);
#ifdef _WIN16
                UnlockResource(hMem);
		FreeResource(hMem);
#endif
	}
	return output;
}

HWND HXCreateDialogParam(LPCSTR pszName, HWND hwndOwner, DLGPROC dlgprc, LPARAM lParamInit)
{
	HWND output = 0;
	HGLOBAL hMem;
#ifdef _WIN32
	LPDLGTEMPLATE pDlgTemp = (LPDLGTEMPLATE)HXLoadDialogBoxTemplate(pszName, &hMem);
#else
	void * pDlgTemp = HXLoadDialogBoxTemplate(pszName, &hMem);
#endif

	if (pDlgTemp && hMem)
	{
		output = CreateDialogIndirectParam(g_hInstBase, pDlgTemp, hwndOwner, dlgprc, lParamInit);
#ifdef _WIN16
		UnlockResource(hMem);
		FreeResource(hMem);
#endif
	}
	return output;
}

void HXResetWindowText(HWND hwnd, UINT idResource)
{
	char szText[256]; /* Flawfinder: ignore */
	int nCharCount = HXLoadString(idResource,szText,255);

	if (nCharCount > 0)
	{
		// Try and set the new text
		SetWindowText(hwnd, OS_STRING(szText));
	}
	
}

#ifndef WIN32_PLATFORM_PSPC

void HXResetWindowMenu(HWND hwnd, LPCSTR pszName)
{
	HMENU hNewMenu = HXLoadMenu(pszName);
	HMENU hOldMenu = GetMenu(hwnd);

	// Try and set the new menu
	if (SetMenu(hwnd,hNewMenu))
	{
		hNewMenu = NULL;
	}
	
	// If we succesfully set the new menu than it
	// will be NULL, otherwise we need to clean it
	// up correctly.
	if (hNewMenu)
	{
		DestroyMenu(hNewMenu);
	}
	
	// Normally we got the old menu and we need to
	// clean it up. Otherwise we don't need to do
	// anything.
	if (hOldMenu)
	{
		DestroyMenu(hOldMenu);
	}
	
}

HMENU HXLoadPopupMenu(LPCSTR pMenuName)
{
	HMENU hPopup = NULL;
	HMENU hMenu = HXLoadMenu(pMenuName);

	if (hMenu)
	{
		hPopup = CreatePopupMenu();
		int nItemCount = GetMenuItemCount(hMenu);

		for (int nItem = 0; nItem < nItemCount; nItem++)
		{
			char buffer[256]; /* Flawfinder: ignore */
			UINT unID = GetMenuItemID(hMenu,nItem);
			UINT unState = GetMenuState(hMenu,nItem,MF_BYPOSITION);
			GetMenuString(hMenu,nItem,buffer,sizeof(buffer)-1,MF_BYPOSITION);
			AppendMenu(hPopup,unState | MF_STRING,unID,buffer);
   		}
	}
	return hPopup;
}

HFONT HXCreateFont (int nHeight,					
					int nWidth,						
					int nEscapement,					
					int nOrientation,					
					int fnWeight,	 					
					DWORD fdwItalic,
					DWORD fdwUnderline,
					DWORD fdwStrikeOut,
					DWORD fdwCharSet,
					DWORD fdwOutputPrecision,
					DWORD fdwClipPrecision,
					DWORD fdwQuality,
					DWORD fdwPitchAndFamily,
					LPCSTR lpszFace)
{
	HINSTANCE hTempDLL;
	HFONT rtnFont;
	CREATE_FONT Create_Font_Func = NULL;
	BOOL	bLoaded = FALSE;
	int		output = 0;

	HXCheckLocale();
	
	// First Check in Language DLLs
	for (int ndx = 0; ndx < g_nLangDLLs; ndx++)
	{
		if (g_hLangDLLs[ndx])
		{
			hTempDLL = g_hLangDLLs[ndx];
			Create_Font_Func = (CREATE_FONT)GetProcAddress((HINSTANCE)hTempDLL, OS_STRING(Name_Create_Font));  
			if (Create_Font_Func)
			{
				bLoaded = TRUE;
				rtnFont = (* Create_Font_Func) (nHeight, nWidth, nEscapement,
												nOrientation, fnWeight, fdwItalic,
												fdwUnderline, fdwStrikeOut, fdwCharSet,
												fdwOutputPrecision, fdwClipPrecision,
												fdwQuality, fdwPitchAndFamily,
												lpszFace);
				break; // for				
			} // if output
			
		} // if some handle
		
	} // for

	if (!bLoaded)
	{
		// NOTE: Win32 and Win16 versions take different sized parameters!
		rtnFont = CreateFont(nHeight, nWidth, nEscapement, nOrientation, fnWeight, 
#ifdef _WIN32
							fdwItalic, fdwUnderline, fdwStrikeOut, fdwCharSet, 
							fdwOutputPrecision, fdwClipPrecision, fdwQuality, 
							fdwPitchAndFamily,
#else
							(BYTE)fdwItalic, (BYTE)fdwUnderline, (BYTE)fdwStrikeOut, 
							(BYTE)fdwCharSet, (BYTE)fdwOutputPrecision, (BYTE)fdwClipPrecision,
							(BYTE)fdwQuality, (BYTE)fdwPitchAndFamily,
#endif
							lpszFace);
	}
	return rtnFont;

}

HFONT HXGetStockFont ( int stockFontId )
{
	HINSTANCE hTempDLL;
	HFONT rtnFont;
	LOAD_FONT Load_Font_Func = NULL;
	BOOL	bLoaded = FALSE;
	int		output = 0;

	HXCheckLocale();
	

	// First Check in Language DLLs
	for (int ndx = 0; ndx < g_nLangDLLs; ndx++)
	{
		if (g_hLangDLLs[ndx])
		{
			hTempDLL = g_hLangDLLs[ndx];
		    Load_Font_Func = (LOAD_FONT)GetProcAddress((HINSTANCE)hTempDLL, OS_STRING(Name_Load_Font));  
			if (Load_Font_Func)
			{
				bLoaded = TRUE;
				rtnFont = (* Load_Font_Func) ( stockFontId );
				break;
			}
		}
	}

	if (!bLoaded)
	{
		return (HFONT) GetStockObject ( stockFontId );
	}

	return rtnFont;
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -