Changeset 316

Show
Ignore:
Timestamp:
11/06/08 10:19:54 (4 years ago)
Author:
smjg
Message:

Added CPtr template to support D2, so far applied only to a few things

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/win32/aclui.d

    r207 r316  
    6262 
    6363struct SI_ACCESS { 
    64     GUID*      pguid; 
     64    CPtr!(GUID) pguid; 
    6565    ACCESS_MASK mask; 
    6666    LPCWSTR     pszName; 
     
    7878 
    7979struct SI_INHERIT_TYPE { 
    80     GUID*  pguid; 
    81     ULONG   dwFlags; 
    82     LPCWSTR pszName; 
     80    CPtr!(GUID) pguid; 
     81    ULONG       dwFlags; 
     82    LPCWSTR     pszName; 
    8383} 
    8484alias SI_INHERIT_TYPE* PSI_INHERIT_TYPE; 
     
    101101    HRESULT GetSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR*, BOOL); 
    102102    HRESULT SetSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 
    103     HRESULT GetAccessRights(GUID*, DWORD, PSI_ACCESS*, ULONG*, ULONG*); 
    104     HRESULT MapGeneric(GUID*, UCHAR*, ACCESS_MASK*); 
     103    HRESULT GetAccessRights(CPtr!(GUID), DWORD, PSI_ACCESS*, ULONG*, ULONG*); 
     104    HRESULT MapGeneric(CPtr!(GUID), UCHAR*, ACCESS_MASK*); 
    105105    HRESULT GetInheritTypes(PSI_INHERIT_TYPE*, ULONG*); 
    106106    HRESULT PropertySheetPageCallback(HWND, UINT, SI_PAGE_TYPE); 
  • trunk/win32/basetsd.d

    r223 r316  
    1212 
    1313private import win32.winnt; 
     14 
     15/*  This template is used in these modules to declare constant pointer types, 
     16 *  in order to support both D 1.x and 2.x. 
     17 */ 
     18template CPtr(T) { 
     19    version (D_Version2) { 
     20        // must use mixin so that it doesn't cause a syntax error under D1 
     21        mixin("alias const(T)* CPtr;"); 
     22    } else { 
     23        alias T* CPtr; 
     24    } 
     25} 
    1426 
    1527version (Win64) { 
     
    4355    alias ushort* PUHALF_PTR; 
    4456 
    45     uint HandleToUlong(HANDLE h)    { return cast(uint) h; } 
    46     int HandleToLong(HANDLE h)      { return cast(int) h; } 
    47     HANDLE LongToHandle(LONG_PTR h) { return cast(HANDLE) h; } 
    48     uint PtrToUlong(void* p)        { return cast(uint) p; } 
    49     uint PtrToUint(void* p)         { return cast(uint) p; } 
    50     int PtrToInt(void* p)           { return cast(int) p; } 
    51     ushort PtrToUshort(void* p)    { return cast(ushort) p; } 
    52     short PtrToShort(void* p)       { return cast(short) p; } 
    53     void* IntToPtr(int i)           { return cast(void*) i; } 
    54     void* UIntToPtr(uint ui)        { return cast(void*) ui; } 
     57    uint HandleToUlong(HANDLE h)      { return cast(uint) h; } 
     58    int HandleToLong(HANDLE h)        { return cast(int) h; } 
     59    HANDLE LongToHandle(LONG_PTR h)   { return cast(HANDLE) h; } 
     60    uint PtrToUlong(CPtr!(void) p)    { return cast(uint) p; } 
     61    uint PtrToUint(CPtr!(void) p)     { return cast(uint) p; } 
     62    int PtrToInt(CPtr!(void) p)       { return cast(int) p; } 
     63    ushort PtrToUshort(CPtr!(void) p) { return cast(ushort) p; } 
     64    short PtrToShort(CPtr!(void) p)   { return cast(short) p; } 
     65    void* IntToPtr(int i)             { return cast(void*) i; } 
     66    void* UIntToPtr(uint ui)          { return cast(void*) ui; } 
    5567    alias IntToPtr LongToPtr; 
    5668    alias UIntToPtr ULongToPtr; 
  • trunk/win32/basetyps.d

    r212 r316  
    1010module win32.basetyps; 
    1111 
    12 private import win32.windef
     12private import win32.windef, win32.basetsd
    1313 
    1414align(1) struct GUID {  // size is 16 
     
    1919} 
    2020alias GUID UUID, IID, CLSID, FMTID, uuid_t; 
    21 alias GUID* REFGUID, LPGUID, LPCLSID, REFCLSID, LPIID, REFIID, REFFMTID; 
     21alias GUID* LPGUID, LPCLSID, LPIID; 
     22alias CPtr!(GUID) REFGUID, REFIID, REFCLSID, REFFMTID; 
    2223 
    2324alias uint error_status_t, PROPID; 
  • trunk/win32/commctrl.d

    r310 r316  
    44*                       Windows API header module                       * 
    55*                                                                       * 
    6 *                 Translated from MinGW Windows headers                 * 
    7 *                           by Vladimir Vlasov                          * 
     6*             Translated from MinGW API for MS-Windows 3.12             * 
    87*                                                                       * 
    98*                       Placed into public domain                       * 
  • trunk/win32/odbcinst.d

    r155 r316  
    114114    BOOL  SQLConfigDriverW(HWND,WORD,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*); 
    115115    deprecated { 
    116     BOOL  SQLInstallTranslator(LPCSTR,LPCSTR,LPCSTR,LPSTR,WORD,WORD*,WORD,LPDWORD); 
    117     BOOL  SQLInstallTranslatorW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*,WORD,LPDWORD); 
     116       BOOL  SQLInstallTranslator(LPCSTR,LPCSTR,LPCSTR,LPSTR,WORD,WORD*,WORD,LPDWORD); 
     117       BOOL  SQLInstallTranslatorW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*,WORD,LPDWORD); 
    118118    } 
    119119    BOOL  SQLRemoveDriver(LPCSTR,BOOL,LPDWORD); 
     
    153153    alias SQLInstallerErrorW SQLInstallerError; 
    154154    alias SQLInstallODBCW SQLInstallODBC; 
    155     alias SQLInstallTranslatorW SQLInstallTranslator; 
     155    deprecated alias SQLInstallTranslatorW SQLInstallTranslator; 
    156156    alias SQLInstallTranslatorExW SQLInstallTranslatorEx; 
    157157    alias SQLPostInstallerErrorW SQLPostInstallerError; 
  • trunk/win32/winnt.d

    r309 r316  
    4545 
    4646// const versions 
    47 alias char*  LPCCH, PCSTR, LPCSTR; 
    48 alias wchar* LPCWCH, PCWCH, LPCWSTR, PCWSTR; 
     47//alias char*  LPCCH, PCSTR, LPCSTR; 
     48alias CPtr!(char) LPCCH, PCSTR, LPCSTR; 
     49//alias wchar* LPCWCH, PCWCH, LPCWSTR, PCWSTR; 
     50alias CPtr!(wchar) LPCWCH, PCWCH, LPCWSTR, PCWSTR; 
    4951 
    5052version (Unicode) {