win32-def
Version:
win32 definitions for node-ffi
129 lines (120 loc) • 3.12 kB
text/typescript
import * as D from '##/lib/common.def.js'
import type * as T from '##/lib/common.types.js'
import type { StructFactoryResult, StructInitType } from '##/lib/types.js'
import { genFixedInt16Array, genStruct } from '../struct.helper.js'
import { POINT_Factory } from '../windef/POINT.js'
import type { POINT_Type } from '../windef/POINT.js'
const key = 'DEVMODEW'
const ptr = `${key}*` as const
const init: StructInitType = {
dmDeviceName: genFixedInt16Array(32),
dmSpecVersion: D.WORD,
dmDriverVersion: D.WORD,
dmSize: D.WORD,
dmDriverExtra: D.WORD,
dmFields: D.DWORD,
u1: {
s1: {
dmOrientation: D.SHORT,
dmPaperSize: D.SHORT,
dmPaperLength: D.SHORT,
dmPaperWidth: D.SHORT,
dmScale: D.SHORT,
dmCopies: D.SHORT,
dmDefaultSource: D.SHORT,
dmPrintQuality: D.SHORT,
},
dmPosition: POINT_Factory,
s2: {
dmPosition: POINT_Factory,
dmDisplayOrientation: D.DWORD,
dmDisplayFixedOutput: D.DWORD,
},
},
dmColor: D.SHORT,
dmDuplex: D.SHORT,
dmYResolution: D.SHORT,
dmTTOption: D.SHORT,
dmCollate: D.SHORT,
dmFormName: genFixedInt16Array(32),
dmLogPixels: D.WORD,
dmBitsPerPel: D.DWORD,
dmPelsWidth: D.DWORD,
dmPelsHeight: D.DWORD,
u2: {
dmDisplayFlags: D.DWORD,
dmNup: D.DWORD,
},
dmDisplayFrequency: D.DWORD,
dmICMMethod: D.DWORD,
dmICMIntent: D.DWORD,
dmMediaType: D.DWORD,
dmDitherType: D.DWORD,
dmReserved1: D.DWORD,
dmReserved2: D.DWORD,
dmPanningWidth: D.DWORD,
dmPanningHeight: D.DWORD,
} as const
export const LPDEVMODEW = ptr
export const DEVMODEW_Name = key
export const DEVMODEW_Init: typeof init = init
/**
* DEVMODEW structure
* @link https://learn.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-devmodew
*/
export function DEVMODEW_Factory(): StructFactoryResult<DEVMODEW_Type> {
return genStruct<DEVMODEW_Type>(init, key, ptr, ['dmSize'])
}
/**
* DEVMODEW structure
* @link https://learn.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-devmodew
*/
export interface DEVMODEW_Type {
dmDeviceName: T.WCHAR
dmSpecVersion: T.WORD
dmDriverVersion: T.WORD
dmSize: T.WORD
dmDriverExtra: T.WORD
dmFields: T.DWORD
u1: {
s1: {
dmOrientation: T.SHORT,
dmPaperSize: T.SHORT,
dmPaperLength: T.SHORT,
dmPaperWidth: T.SHORT,
dmScale: T.SHORT,
dmCopies: T.SHORT,
dmDefaultSource: T.SHORT,
dmPrintQuality: T.SHORT,
},
dmPosition: POINT_Type,
s2: {
dmPosition: POINT_Type,
dmDisplayOrientation: T.DWORD,
dmDisplayFixedOutput: T.DWORD,
},
}
dmColor: T.SHORT
dmDuplex: T.SHORT
dmYResolution: T.SHORT
dmTTOption: T.SHORT
dmCollate: T.SHORT
dmFormName: T.WCHAR
dmLogPixels: T.WORD
dmBitsPerPel: T.DWORD
dmPelsWidth: T.DWORD
dmPelsHeight: T.DWORD
u2: {
dmDisplayFlags: T.DWORD,
dmNup: T.DWORD,
}
dmDisplayFrequency: T.DWORD
dmICMMethod: T.DWORD
dmICMIntent: T.DWORD
dmMediaType: T.DWORD
dmDitherType: T.DWORD
dmReserved1: T.DWORD
dmReserved2: T.DWORD
dmPanningWidth: T.DWORD
dmPanningHeight: T.DWORD
}