26.0.3 • Published 9 months ago

win32-def v26.0.3

Weekly downloads
115
License
MIT
Repository
github
Last release
9 months ago

win32-api

Definitions of Windows Date Types for node-ffi, node-ffi-napi

GitHub tag License npm.io Available platform ci Build status codecov Conventional Commits lerna

Initialization

npm run repo:init

Packages

PackageVersion
win32-apimain-svg
win32-defdef-svg

What can I do with this?

Write node-ffi or node-ffi-napi calling win32 native functions code by Typescript with Types support.

Installing

npm install win32-def

Usage

FFI

import * as ffi from 'ffi-napi'
import { DModel as M, DTypes as W, FModel as FM } from 'win32-def'

export interface Win32Fns extends FM.DllFuncsModel {
  ClientToScreen(hWnd: M.HWND, lpPoint: M.LPPOINT): M.BOOL
  GetAncestor(hwnd: M.HWND, gaFlags: M.UINT): M.HWND
}

export const user32: Win32Fns = ffi.Library('user32.dll', {
  ClientToScreen: [W.BOOL, [W.HWND, W.LPPOINT] ],
  GetAncestor: [W.HWND, [W.HWND, W.UINT] ],
})
import * as ffi from 'ffi-napi'
import { DModel as M, DTypes as W, FModel as FM } from 'win32-def'

export interface Win32Fns extends FM.DllFuncsModel {
  ClientToScreen(hWnd: M.HWND, lpPoint: M.LPPOINT): M.BOOL
  GetAncestor(hwnd: M.HWND, gaFlags: M.UINT): M.HWND
}

export const user32: FM.ExpandFnModel<Win32Fns> = ffi.Library('user32.dll', {
  ClientToScreen: [W.BOOL, [W.HWND, W.LPPOINT] ],
  GetAncestor: [W.HWND, [W.HWND, W.UINT] ],
})

// You can calling with BOTH sync and async method
const hWnd = user32.GetAncestor(hWnd, uint)
user32.GetAncestor.async(handle, uint, (err, hWnd) => {
  // typeof hWnd will be the same of ReturnType of sync method
  if (err) {
    throw err
  }
  if (hWnd && !ref.isNull(hWnd) && ref.address(hWnd)) {
    // ...
  }
  else {
    throw new Error('hWnd invalid')
  }
})

Relevant

License

MIT

Languages

26.0.3

9 months ago

23.0.0

12 months ago

22.2.0

12 months ago

22.0.0

12 months ago

22.4.0

12 months ago

21.0.2

12 months ago

21.0.0

12 months ago

22.3.0

12 months ago

26.0.2

11 months ago

26.0.1

12 months ago

26.0.0

12 months ago

22.7.3

12 months ago

22.7.2

12 months ago

22.7.1

12 months ago

22.5.1

12 months ago

25.0.0

12 months ago

20.5.0

12 months ago

24.0.0

12 months ago

20.4.1

2 years ago

20.4.0

2 years ago

20.3.0

2 years ago

19.8.3

3 years ago

20.0.0

3 years ago

19.0.0

3 years ago

10.0.0

3 years ago

13.7.0

3 years ago

13.5.0

3 years ago

13.3.0

3 years ago

18.4.0

3 years ago

19.4.0

3 years ago

13.1.0

3 years ago

19.6.0

3 years ago

19.8.1

3 years ago

18.0.0

3 years ago

19.8.0

3 years ago

13.12.0

3 years ago

17.1.1

3 years ago

12.0.0

3 years ago

17.1.0

3 years ago

11.0.2

3 years ago

11.0.0

3 years ago

19.3.0

3 years ago

15.0.0

3 years ago

13.8.0

3 years ago

13.6.0

3 years ago

13.4.0

3 years ago

13.2.0

3 years ago

14.0.0

3 years ago

13.0.0

3 years ago

18.3.0

3 years ago

18.1.0

3 years ago

13.11.0

3 years ago

17.2.1

3 years ago

17.2.0

3 years ago

17.0.0

3 years ago

13.13.0

3 years ago

16.0.0

3 years ago

11.1.0

3 years ago

9.4.0

5 years ago

9.3.0

5 years ago

9.2.0

5 years ago

9.1.0

5 years ago

9.0.0

5 years ago

7.1.0

5 years ago

8.0.0

5 years ago

7.0.0

5 years ago

3.3.0

6 years ago

3.2.0

6 years ago

3.1.0

6 years ago

3.0.0

6 years ago

2.8.1

6 years ago

2.8.0

6 years ago

2.7.0

6 years ago

2.6.0

6 years ago

2.5.0

6 years ago

2.4.4

6 years ago

2.4.3

6 years ago

2.4.2

7 years ago

2.4.1

7 years ago

2.4.0

7 years ago

2.3.0

7 years ago

2.2.0

7 years ago

2.1.1

7 years ago

2.1.0

7 years ago

2.0.2

7 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago