macro_rules! delayload {
{$dll:literal {$($($idents:ident)+ ($($params:ident : $types:ty),* $(,)?) -> $result:ty;)*}} => { ... };
(@func pub fn $name:ident($($params:ident : $types:ty),* $(,)?) -> $result:ty) => { ... };
(@func fn $name:ident($($params:ident : $types:ty),* $(,)?) -> $result:ty) => { ... };
(@body $name:ident($($params:ident : $types:ty),* $(,)?) -> $result:ty) => { ... };
(@result_from_win32((i32), $val:expr)) => { ... };
(@result_from_win32((u32), $val:expr)) => { ... };
(@result_from_win32((DWORD), $val:expr)) => { ... };
(@result_from_win32((HRESULT), $val:expr)) => { ... };
(@result_from_win32(($t:tt), $val:expr)) => { ... };
}