pub unsafe fn CreateProcessAsUserA<P0, P1, P2, P3>(
    htoken: P0,
    lpapplicationname: P1,
    lpcommandline: PSTR,
    lpprocessattributes: Option<*const SECURITY_ATTRIBUTES>,
    lpthreadattributes: Option<*const SECURITY_ATTRIBUTES>,
    binherithandles: P2,
    dwcreationflags: PROCESS_CREATION_FLAGS,
    lpenvironment: Option<*const c_void>,
    lpcurrentdirectory: P3,
    lpstartupinfo: *const STARTUPINFOA,
    lpprocessinformation: *mut PROCESS_INFORMATION
) -> Result<()>
where P0: IntoParam<HANDLE>, P1: IntoParam<PCSTR>, P2: IntoParam<BOOL>, P3: IntoParam<PCSTR>,