Hi,

This is a resend of a patch I sent last week.  I'm including
additional information on each of the changes.

Changelog:

        * include/tlhelp32.h: Define CloseToolhelp32Snapshot. CE doesn't
        have unicode variants of toolhelp (there is a Process32Next, but
        no Process32NextW.)
        * include/winnt.h: Define PAGE_PHYSICAL
        * include/winbase.h: Define GetStoreInformation and
        CeSetThreadQuantum.  LockResource is a noop on wince.
        * include/winuser.h: Define CheckDlgButton in terms of
        SendDlgItemMessage.  Define CreateDialogParamW using
        CreateDialogIndirectParamW.

Change info:

> --- src/w32api/include/tlhelp32.h     (revision 784)
> +++ src/w32api/include/tlhelp32.h     (working copy)
> @@ -70,7 +70,7 @@
>       DWORD th32ParentProcessID;
>       LONG pcPriClassBase;
>       DWORD dwFlags;
> -     CHAR  szExeFile[MAX_PATH];
> +     TCHAR szExeFile[MAX_PATH];
>  } PROCESSENTRY32,*PPROCESSENTRY32,*LPPROCESSENTRY32;

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesdkr/html/wcesdkrPROCESSENTRY32_str.asp

>  typedef struct tagTHREADENTRY32 {
>       DWORD dwSize;
> @@ -102,8 +102,8 @@
>       BYTE *modBaseAddr;
>       DWORD modBaseSize;
>       HMODULE hModule;
> -     char szModule[MAX_MODULE_NAME32 + 1];
> -     char szExePath[MAX_PATH];
> +     TCHAR szModule[MAX_MODULE_NAME32 + 1];
> +     TCHAR szExePath[MAX_PATH];
>  } MODULEENTRY32,*PMODULEENTRY32,*LPMODULEENTRY32;

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesdkr/html/wcesdkrMODULEENTRY32_str.asp

>  BOOL WINAPI Heap32First(LPHEAPENTRY32,DWORD,DWORD);
>  BOOL WINAPI Heap32ListFirst(HANDLE,LPHEAPLIST32);
> @@ -121,7 +121,8 @@
>  BOOL WINAPI Thread32Next(HANDLE,LPTHREADENTRY32);
>  BOOL WINAPI Toolhelp32ReadProcessMemory(DWORD,LPCVOID,LPVOID,DWORD,LPDWORD);
>  HANDLE WINAPI CreateToolhelp32Snapshot(DWORD,DWORD);
> -#ifdef UNICODE
> +BOOL WINAPI CloseToolhelp32Snapshot(HANDLE hSnapshot);
> +#if defined(UNICODE) && !defined(_WIN32_WCE)
>  #define LPMODULEENTRY32 LPMODULEENTRY32W

This is from experience - Process32First is in toolhelp.dll, and
Process32FirstW is definitely not.  Also, I can find no reference to
Process32FirstW or PROCESSENTRY32W anywhere from msdn.

>  #define LPPROCESSENTRY32 LPPROCESSENTRY32W
>  #define MODULEENTRY32 MODULEENTRY32W
> Index: src/w32api/include/winnt.h
> ===================================================================
> --- src/w32api/include/winnt.h        (revision 784)
> +++ src/w32api/include/winnt.h        (working copy)
> @@ -989,6 +989,7 @@
>  #define PAGE_EXECUTE_WRITECOPY       0x0080
>  #define PAGE_GUARD           0x0100
>  #define PAGE_NOCACHE         0x0200
> +#define PAGE_PHYSICAL                0x0400
>  #define MEM_COMMIT           0x1000

The name of the above is from:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcemain4/html/cmrefVirtualCopy.asp

The value was pulled out of haret's code.  I don't know the origin.

>  #define MEM_RESERVE          0x2000
>  #define MEM_DECOMMIT         0x4000
> Index: src/w32api/include/winbase.h
> ===================================================================
> --- src/w32api/include/winbase.h      (revision 784)
> +++ src/w32api/include/winbase.h      (working copy)
> @@ -1728,7 +1728,11 @@
>  WINBASEAPI BOOL WINAPI LocalUnlock(HLOCAL);
>  WINBASEAPI BOOL WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
>  WINBASEAPI BOOL WINAPI 
> LockFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,LPOVERLAPPED);
> +#ifdef _WIN32_WCE
> +#define LockResource(h) ((PVOID)(h))
> +#else
>  WINBASEAPI PVOID WINAPI LockResource(HGLOBAL);
> +#endif

I found that LockResource was a noop by looking at a header file from
the videolan code.  The definition of LockResource can be found here:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/_cereflockresource.asp

>  #define LockSegment(w) GlobalFix((HANDLE)(w)) /* Obsolete: Has no effect. */
>  WINBASEAPI BOOL WINAPI LogonUserA(LPSTR,LPSTR,LPSTR,DWORD,DWORD,PHANDLE);
>  WINBASEAPI BOOL WINAPI LogonUserW(LPWSTR,LPWSTR,LPWSTR,DWORD,DWORD,PHANDLE);
> @@ -2040,6 +2044,15 @@
>  WINBASEAPI BOOL WINAPI 
> MapUserPhysicalPagesScatter(PVOID*,ULONG_PTR,PULONG_PTR);
>  #endif
>  
> +typedef struct STORE_INFORMATION {
> +  DWORD dwStoreSize;
> +  DWORD dwFreeSize;
> +} STORE_INFORMATION, *LPSTORE_INFORMATION;

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceappservices5/html/wce50lrfSTOREINFORMATION.asp

> +
> +WINBASEAPI BOOL GetStoreInformation(LPSTORE_INFORMATION lpsi);
> +

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcedata5/html/wce50lrfgetstoreinformation.asp

> +WINBASEAPI BOOL CeSetThreadQuantum(HANDLE hThread, DWORD dwTime);
> +

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcekernl/html/_wcesdk_CeSetThreadQuantum.asp

>  #ifdef UNICODE
>  typedef STARTUPINFOW STARTUPINFO,*LPSTARTUPINFO;
>  typedef WIN32_FIND_DATAW 
> WIN32_FIND_DATA,*PWIN32_FIND_DATA,*LPWIN32_FIND_DATA;
> Index: src/w32api/include/winuser.h
> ===================================================================
> --- src/w32api/include/winuser.h      (revision 784)
> +++ src/w32api/include/winuser.h      (working copy)
> @@ -3396,7 +3396,11 @@
>  WINUSERAPI LPWSTR WINAPI CharUpperW(LPWSTR);
>  WINUSERAPI DWORD WINAPI CharUpperBuffA(LPSTR,DWORD);
>  WINUSERAPI DWORD WINAPI CharUpperBuffW(LPWSTR,DWORD);
> +#ifdef _WIN32_WCE
> +#define CheckDlgButton(h,i,c) SendDlgItemMessage(h, i, BM_SETCHECK, c, 0)
> +#else
>  WINUSERAPI BOOL WINAPI CheckDlgButton(HWND,int,UINT);
> +#endif

I wrote the above after it failed to link and I found the remarks at:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefcheckdlgbutton.asp

>  WINUSERAPI DWORD WINAPI CheckMenuItem(HMENU,UINT,UINT);
>  WINUSERAPI BOOL WINAPI CheckMenuRadioItem(HMENU,UINT,UINT,UINT,UINT);
>  WINUSERAPI BOOL WINAPI CheckRadioButton(HWND,int,int,int);
> @@ -3429,8 +3433,12 @@
>  #define CreateDialogIndirectW(h,t,w,f) CreateDialogIndirectParamW(h,t,w,f,0)
>  WINUSERAPI HWND WINAPI 
> CreateDialogIndirectParamA(HINSTANCE,LPCDLGTEMPLATE,HWND,DLGPROC,LPARAM);
>  WINUSERAPI HWND WINAPI 
> CreateDialogIndirectParamW(HINSTANCE,LPCDLGTEMPLATE,HWND,DLGPROC,LPARAM);
> +#ifdef _WIN32_WCE
> +#define CreateDialogParamW(h,n,w,f,p) CreateDialogIndirectParamW(h, 
> (LPCDLGTEMPLATE)LoadResource(h, FindResource(h, n, RT_DIALOG)), w, f, p)
> +#else
>  WINUSERAPI HWND WINAPI 
> CreateDialogParamA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM);
>  WINUSERAPI HWND WINAPI 
> CreateDialogParamW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM);
> +#endif

I wrote the above after I couldn't get CreateDialogParam to work.  I
read:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefcreatedialogparam.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefcreatedialogparam.asp

and just followed the same thing that was done for DialogBoxParamW.

>  WINUSERAPI HICON WINAPI CreateIcon(HINSTANCE,int,int,BYTE,BYTE,const 
> BYTE*,const BYTE*);
>  WINUSERAPI HICON WINAPI CreateIconFromResource(PBYTE,DWORD,BOOL,DWORD);
>  WINUSERAPI HICON WINAPI 
> CreateIconFromResourceEx(PBYTE,DWORD,BOOL,DWORD,int,int,UINT);

-Kevin
Index: src/w32api/include/tlhelp32.h
===================================================================
--- src/w32api/include/tlhelp32.h       (revision 784)
+++ src/w32api/include/tlhelp32.h       (working copy)
@@ -70,7 +70,7 @@
        DWORD th32ParentProcessID;
        LONG pcPriClassBase;
        DWORD dwFlags;
-       CHAR  szExeFile[MAX_PATH];
+       TCHAR szExeFile[MAX_PATH];
 } PROCESSENTRY32,*PPROCESSENTRY32,*LPPROCESSENTRY32;
 typedef struct tagTHREADENTRY32 {
        DWORD dwSize;
@@ -102,8 +102,8 @@
        BYTE *modBaseAddr;
        DWORD modBaseSize;
        HMODULE hModule;
-       char szModule[MAX_MODULE_NAME32 + 1];
-       char szExePath[MAX_PATH];
+       TCHAR szModule[MAX_MODULE_NAME32 + 1];
+       TCHAR szExePath[MAX_PATH];
 } MODULEENTRY32,*PMODULEENTRY32,*LPMODULEENTRY32;
 BOOL WINAPI Heap32First(LPHEAPENTRY32,DWORD,DWORD);
 BOOL WINAPI Heap32ListFirst(HANDLE,LPHEAPLIST32);
@@ -121,7 +121,8 @@
 BOOL WINAPI Thread32Next(HANDLE,LPTHREADENTRY32);
 BOOL WINAPI Toolhelp32ReadProcessMemory(DWORD,LPCVOID,LPVOID,DWORD,LPDWORD);
 HANDLE WINAPI CreateToolhelp32Snapshot(DWORD,DWORD);
-#ifdef UNICODE
+BOOL WINAPI CloseToolhelp32Snapshot(HANDLE hSnapshot);
+#if defined(UNICODE) && !defined(_WIN32_WCE)
 #define LPMODULEENTRY32 LPMODULEENTRY32W
 #define LPPROCESSENTRY32 LPPROCESSENTRY32W
 #define MODULEENTRY32 MODULEENTRY32W
Index: src/w32api/include/winnt.h
===================================================================
--- src/w32api/include/winnt.h  (revision 784)
+++ src/w32api/include/winnt.h  (working copy)
@@ -989,6 +989,7 @@
 #define PAGE_EXECUTE_WRITECOPY 0x0080
 #define PAGE_GUARD             0x0100
 #define PAGE_NOCACHE           0x0200
+#define PAGE_PHYSICAL          0x0400
 #define MEM_COMMIT           0x1000
 #define MEM_RESERVE          0x2000
 #define MEM_DECOMMIT         0x4000
Index: src/w32api/include/winbase.h
===================================================================
--- src/w32api/include/winbase.h        (revision 784)
+++ src/w32api/include/winbase.h        (working copy)
@@ -1728,7 +1728,11 @@
 WINBASEAPI BOOL WINAPI LocalUnlock(HLOCAL);
 WINBASEAPI BOOL WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
 WINBASEAPI BOOL WINAPI LockFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,LPOVERLAPPED);
+#ifdef _WIN32_WCE
+#define LockResource(h) ((PVOID)(h))
+#else
 WINBASEAPI PVOID WINAPI LockResource(HGLOBAL);
+#endif
 #define LockSegment(w) GlobalFix((HANDLE)(w)) /* Obsolete: Has no effect. */
 WINBASEAPI BOOL WINAPI LogonUserA(LPSTR,LPSTR,LPSTR,DWORD,DWORD,PHANDLE);
 WINBASEAPI BOOL WINAPI LogonUserW(LPWSTR,LPWSTR,LPWSTR,DWORD,DWORD,PHANDLE);
@@ -2040,6 +2044,15 @@
 WINBASEAPI BOOL WINAPI 
MapUserPhysicalPagesScatter(PVOID*,ULONG_PTR,PULONG_PTR);
 #endif
 
+typedef struct STORE_INFORMATION {
+  DWORD dwStoreSize;
+  DWORD dwFreeSize;
+} STORE_INFORMATION, *LPSTORE_INFORMATION;
+
+WINBASEAPI BOOL GetStoreInformation(LPSTORE_INFORMATION lpsi);
+
+WINBASEAPI BOOL CeSetThreadQuantum(HANDLE hThread, DWORD dwTime);
+
 #ifdef UNICODE
 typedef STARTUPINFOW STARTUPINFO,*LPSTARTUPINFO;
 typedef WIN32_FIND_DATAW WIN32_FIND_DATA,*PWIN32_FIND_DATA,*LPWIN32_FIND_DATA;
Index: src/w32api/include/winuser.h
===================================================================
--- src/w32api/include/winuser.h        (revision 784)
+++ src/w32api/include/winuser.h        (working copy)
@@ -3396,7 +3396,11 @@
 WINUSERAPI LPWSTR WINAPI CharUpperW(LPWSTR);
 WINUSERAPI DWORD WINAPI CharUpperBuffA(LPSTR,DWORD);
 WINUSERAPI DWORD WINAPI CharUpperBuffW(LPWSTR,DWORD);
+#ifdef _WIN32_WCE
+#define CheckDlgButton(h,i,c) SendDlgItemMessage(h, i, BM_SETCHECK, c, 0)
+#else
 WINUSERAPI BOOL WINAPI CheckDlgButton(HWND,int,UINT);
+#endif
 WINUSERAPI DWORD WINAPI CheckMenuItem(HMENU,UINT,UINT);
 WINUSERAPI BOOL WINAPI CheckMenuRadioItem(HMENU,UINT,UINT,UINT,UINT);
 WINUSERAPI BOOL WINAPI CheckRadioButton(HWND,int,int,int);
@@ -3429,8 +3433,12 @@
 #define CreateDialogIndirectW(h,t,w,f) CreateDialogIndirectParamW(h,t,w,f,0)
 WINUSERAPI HWND WINAPI 
CreateDialogIndirectParamA(HINSTANCE,LPCDLGTEMPLATE,HWND,DLGPROC,LPARAM);
 WINUSERAPI HWND WINAPI 
CreateDialogIndirectParamW(HINSTANCE,LPCDLGTEMPLATE,HWND,DLGPROC,LPARAM);
+#ifdef _WIN32_WCE
+#define CreateDialogParamW(h,n,w,f,p) CreateDialogIndirectParamW(h, 
(LPCDLGTEMPLATE)LoadResource(h, FindResource(h, n, RT_DIALOG)), w, f, p)
+#else
 WINUSERAPI HWND WINAPI 
CreateDialogParamA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM);
 WINUSERAPI HWND WINAPI 
CreateDialogParamW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM);
+#endif
 WINUSERAPI HICON WINAPI CreateIcon(HINSTANCE,int,int,BYTE,BYTE,const 
BYTE*,const BYTE*);
 WINUSERAPI HICON WINAPI CreateIconFromResource(PBYTE,DWORD,BOOL,DWORD);
 WINUSERAPI HICON WINAPI 
CreateIconFromResourceEx(PBYTE,DWORD,BOOL,DWORD,int,int,UINT);
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to