Differences From Artifact [57d6b78740d2c6bb]:
- File        
src/win32/tlhelp32.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
 
 
To Artifact [ae72c8193c7063ac]:
- File        
src/win32/tlhelp32.d
- 
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate] 
 - 
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
 
    30     30    TH32CS_SNAPTHREAD   = 0x4,
    31     31    TH32CS_SNAPMODULE   = 0x8,
    32     32    TH32CS_SNAPALL      = (TH32CS_SNAPHEAPLIST|TH32CS_SNAPPROCESS|TH32CS_SNAPTHREAD|TH32CS_SNAPMODULE),
    33     33    TH32CS_INHERIT      = 0x80000000
    34     34   }
    35     35   
    36     36   struct HEAPLIST32 {
    37         - DWORD dwSize;
           37  + SIZE_T dwSize;
    38     38    DWORD th32ProcessID;
    39         - DWORD th32HeapID;
           39  + ULONG_PTR th32HeapID;
    40     40    DWORD dwFlags;
    41     41   }
    42     42   alias HEAPLIST32* PHEAPLIST32;
    43     43   alias HEAPLIST32* LPHEAPLIST32;
    44     44   
    45     45   struct HEAPENTRY32 {
    46         - DWORD dwSize;
           46  + SIZE_T dwSize;
    47     47    HANDLE hHandle;
    48         - DWORD dwAddress;
    49         - DWORD dwBlockSize;
           48  + ULONG_PTR dwAddress;
           49  + SIZE_T dwBlockSize;
    50     50    DWORD dwFlags;
    51     51    DWORD dwLockCount;
    52     52    DWORD dwResvd;
    53     53    DWORD th32ProcessID;
    54         - DWORD th32HeapID;
           54  + ULONG_PTR th32HeapID;
    55     55   }
    56     56   alias HEAPENTRY32* PHEAPENTRY32;
    57     57   alias HEAPENTRY32* LPHEAPENTRY32;
    58     58   
    59     59   struct PROCESSENTRY32W {
    60     60    DWORD dwSize;
    61     61    DWORD cntUsage;
    62     62    DWORD th32ProcessID;
    63         - DWORD th32DefaultHeapID;
           63  + ULONG_PTR th32DefaultHeapID;
    64     64    DWORD th32ModuleID;
    65     65    DWORD cntThreads;
    66     66    DWORD th32ParentProcessID;
    67     67    LONG pcPriClassBase;
    68     68    DWORD dwFlags;
    69         - WCHAR szExeFile[MAX_PATH];
           69  + WCHAR[MAX_PATH] szExeFile;
    70     70   }
    71     71   alias PROCESSENTRY32W* PPROCESSENTRY32W;
    72     72   alias PROCESSENTRY32W* LPPROCESSENTRY32W;
    73     73   
    74     74   struct THREADENTRY32 {
    75     75    DWORD dwSize;
    76     76    DWORD cntUsage;
................................................................................
    88     88    DWORD th32ModuleID;
    89     89    DWORD th32ProcessID;
    90     90    DWORD GlblcntUsage;
    91     91    DWORD ProccntUsage;
    92     92    BYTE *modBaseAddr;
    93     93    DWORD modBaseSize;
    94     94    HMODULE hModule;
    95         - WCHAR szModule[MAX_MODULE_NAME32 + 1];
    96         - WCHAR szExePath[MAX_PATH];
           95  + WCHAR[MAX_MODULE_NAME32 + 1] szModule;
           96  + WCHAR[MAX_PATH] szExePath;
    97     97   }
    98     98   alias MODULEENTRY32W* PMODULEENTRY32W;
    99     99   alias MODULEENTRY32W* LPMODULEENTRY32W;
   100    100   
   101    101   version(Unicode) {
   102    102    alias PROCESSENTRY32W PROCESSENTRY32;
   103    103    alias PPROCESSENTRY32W PPROCESSENTRY32;
................................................................................
   107    107    alias PMODULEENTRY32W PMODULEENTRY32;
   108    108    alias LPMODULEENTRY32W LPMODULEENTRY32;
   109    109   } else {
   110    110    struct PROCESSENTRY32 {
   111    111     DWORD dwSize;
   112    112     DWORD cntUsage;
   113    113     DWORD th32ProcessID;
   114         -  DWORD th32DefaultHeapID;
          114  +  ULONG_PTR th32DefaultHeapID;
   115    115     DWORD th32ModuleID;
   116    116     DWORD cntThreads;
   117    117     DWORD th32ParentProcessID;
   118    118     LONG pcPriClassBase;
   119    119     DWORD dwFlags;
   120         -  CHAR  szExeFile[MAX_PATH];
          120  +  CHAR[MAX_PATH] szExeFile;
   121    121    }
   122    122    alias PROCESSENTRY32* PPROCESSENTRY32;
   123    123    alias PROCESSENTRY32* LPPROCESSENTRY32;
   124    124   
   125    125    struct MODULEENTRY32 {
   126    126     DWORD dwSize;
   127    127     DWORD th32ModuleID;
   128    128     DWORD th32ProcessID;
   129    129     DWORD GlblcntUsage;
   130    130     DWORD ProccntUsage;
   131    131     BYTE *modBaseAddr;
   132    132     DWORD modBaseSize;
   133    133     HMODULE hModule;
   134         -  char szModule[MAX_MODULE_NAME32 + 1];
   135         -  char szExePath[MAX_PATH];
          134  +  char[MAX_MODULE_NAME32 + 1] szModule;
          135  +  char[MAX_PATH] szExePath;
   136    136    }
   137    137    alias MODULEENTRY32* PMODULEENTRY32;
   138    138    alias MODULEENTRY32* LPMODULEENTRY32;
   139    139   }
   140    140   
   141    141   
   142    142   extern(Windows) {