20.4.1 • Published 1 year ago

win32-def v20.4.1

Weekly downloads
115
License
MIT
Repository
github
Last release
1 year 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

20.4.1

1 year ago

20.4.0

1 year ago

20.3.0

1 year ago

19.8.3

2 years ago

20.0.0

2 years ago

19.0.0

2 years ago

10.0.0

2 years ago

13.7.0

2 years ago

13.5.0

2 years ago

13.3.0

2 years ago

18.4.0

2 years ago

19.4.0

2 years ago

13.1.0

2 years ago

19.6.0

2 years ago

19.8.1

2 years ago

18.0.0

2 years ago

19.8.0

2 years ago

13.12.0

2 years ago

17.1.1

2 years ago

12.0.0

2 years ago

17.1.0

2 years ago

11.0.2

2 years ago

11.0.0

2 years ago

19.3.0

2 years ago

15.0.0

2 years ago

13.8.0

2 years ago

13.6.0

2 years ago

13.4.0

2 years ago

13.2.0

2 years ago

14.0.0

2 years ago

13.0.0

2 years ago

18.3.0

2 years ago

18.1.0

2 years ago

13.11.0

2 years ago

17.2.1

2 years ago

17.2.0

2 years ago

17.0.0

2 years ago

13.13.0

2 years ago

16.0.0

2 years ago

11.1.0

2 years ago

9.4.0

4 years ago

9.3.0

4 years ago

9.2.0

4 years ago

9.1.0

4 years ago

9.0.0

4 years ago

7.1.0

4 years ago

8.0.0

4 years ago

7.0.0

4 years ago

3.3.0

5 years ago

3.2.0

5 years ago

3.1.0

5 years ago

3.0.0

5 years ago

2.8.1

5 years ago

2.8.0

5 years ago

2.7.0

5 years ago

2.6.0

5 years ago

2.5.0

5 years ago

2.4.4

5 years ago

2.4.3

5 years ago

2.4.2

5 years ago

2.4.1

6 years ago

2.4.0

6 years ago

2.3.0

6 years ago

2.2.0

6 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.2

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago