ImportC: Windows.h
name
n at m.e
Fri Dec 1 09:18:17 UTC 2023
On Friday, 1 December 2023 at 08:45:30 UTC, Kagamin wrote:
> Is GENERIC_WRITE awailable?
No, it's not.
I tried building with LDC 1.35.0:
```"D:\ldc2-1.35.0-windows-x64\bin\ldc2.exe" main.d -i
-vcg-ast```.
winnt.h:
```c
// begin_wdm
// begin_ntoshvp
typedef DWORD ACCESS_MASK;
typedef ACCESS_MASK *PACCESS_MASK;
// end_ntoshvp
// begin_access
////////////////////////////////////////////////////////////////////////
//
//
// ACCESS TYPES
//
//
//
////////////////////////////////////////////////////////////////////////
// begin_wdm
//
// The following are masks for the predefined standard access
types
//
#define DELETE (0x00010000L)
#define READ_CONTROL (0x00020000L)
#define WRITE_DAC (0x00040000L)
#define WRITE_OWNER (0x00080000L)
#define SYNCHRONIZE (0x00100000L)
#define STANDARD_RIGHTS_REQUIRED (0x000F0000L)
#define STANDARD_RIGHTS_READ (READ_CONTROL)
#define STANDARD_RIGHTS_WRITE (READ_CONTROL)
#define STANDARD_RIGHTS_EXECUTE (READ_CONTROL)
#define STANDARD_RIGHTS_ALL (0x001F0000L)
#define SPECIFIC_RIGHTS_ALL (0x0000FFFFL)
//
// AccessSystemAcl access type
//
#define ACCESS_SYSTEM_SECURITY (0x01000000L)
//
// MaximumAllowed access type
//
#define MAXIMUM_ALLOWED (0x02000000L)
//
// These are the generic rights.
//
#define GENERIC_READ (0x80000000L)
#define GENERIC_WRITE (0x40000000L)
#define GENERIC_EXECUTE (0x20000000L)
#define GENERIC_ALL (0x10000000L)
//
// Define the generic mapping array. This is used to denote the
// mapping of each generic access right to a specific access
mask.
//
typedef struct _GENERIC_MAPPING {
ACCESS_MASK GenericRead;
ACCESS_MASK GenericWrite;
ACCESS_MASK GenericExecute;
ACCESS_MASK GenericAll;
} GENERIC_MAPPING;
typedef GENERIC_MAPPING *PGENERIC_MAPPING;
```
wintest.c.cg:
```d
alias ACCESS_MASK = uint;
alias PACCESS_MASK = uint*;
align struct _GENERIC_MAPPING
{
uint GenericRead = void;
uint GenericWrite = void;
uint GenericExecute = void;
uint GenericAll = void;
}
alias GENERIC_MAPPING = _GENERIC_MAPPING;
alias PGENERIC_MAPPING = _GENERIC_MAPPING*;
```
It ended up not producing any enums inbetween...
More information about the Digitalmars-d-learn
mailing list