|
|
| version 1.2, 2007/01/10 14:43:36 | version 1.3, 2007/07/20 14:39:11 |
|---|---|
| Line 19 void __msgbox(const char *title, const c | Line 19 void __msgbox(const char *title, const c |
| // WinAPIだと Win95でバグあるの | // WinAPIだと Win95でバグあるの |
| int loadstring2(HINSTANCE hInstance, UINT uID, | static int loadstringresource(HINSTANCE hInstance, UINT uID, |
| LPTSTR lpBuffer, int nBufferMax) { | LPTSTR lpBuffer, int nBufferMax) { |
| HMODULE hModule; | HMODULE hModule; |
| Line 40 int loadstring2(HINSTANCE hInstance, UIN | Line 40 int loadstring2(HINSTANCE hInstance, UIN |
| if (hGlobal == NULL) { | if (hGlobal == NULL) { |
| return(0); | return(0); |
| } | } |
| pRes = (UINT16 *)LockResource(hRsrc); | pRes = (UINT16 *)LockResource(hGlobal); |
| dwPos = 0; | dwPos = 0; |
| uID = uID & 15; | uID = uID & 15; |
| while((uID) && (dwPos < dwResSize)) { | while((uID) && (dwPos < dwResSize)) { |
| Line 83 int loadstring2(HINSTANCE hInstance, UIN | Line 83 int loadstring2(HINSTANCE hInstance, UIN |
| return(nLength); | return(nLength); |
| } | } |
| // WinAPIだと Win95でバグあるの | |
| TCHAR *lockstringresource(HINSTANCE hInstance, LPCTSTR pszString) { | |
| TCHAR *pszRet; | |
| int nSize; | |
| pszRet = NULL; | |
| if (HIWORD(pszString)) { | |
| nSize = (lstrlen(pszString) + 1) * sizeof(TCHAR); | |
| pszRet = (TCHAR *)_MALLOC(nSize, ""); | |
| if (pszRet) { | |
| CopyMemory(pszRet, pszString, nSize); | |
| } | |
| } | |
| else if (LOWORD(pszString)) { | |
| nSize = loadstringresource(hInstance, (UINT)pszString, NULL, 0); | |
| if (nSize) { | |
| pszRet = (TCHAR *)_MALLOC((nSize + 1) * sizeof(TCHAR), ""); | |
| if (pszRet) { | |
| loadstringresource(hInstance, (UINT)pszString, | |
| pszRet, nSize + 1); | |
| } | |
| } | |
| } | |
| return(pszRet); | |
| } | |
| void unlockstringresource(TCHAR *pszString) { | |
| if (pszString) { | |
| _MFREE(pszString); | |
| } | |
| } | |