Sandboxie/SandboxiePlus/MiscHelpers/Archive/7z/CPP/7zip/IPassword.h

55 lines
1.5 KiB
C
Raw Normal View History

2022-11-12 09:45:35 +00:00
// IPassword.h
2023-09-14 16:51:54 +01:00
#ifndef ZIP7_INC_IPASSWORD_H
#define ZIP7_INC_IPASSWORD_H
2022-11-12 09:45:35 +00:00
2023-09-14 16:51:54 +01:00
#include "../Common/MyTypes.h"
2022-11-12 09:45:35 +00:00
#include "IDecl.h"
2023-09-14 16:51:54 +01:00
Z7_PURE_INTERFACES_BEGIN
2022-11-12 09:45:35 +00:00
2023-09-14 16:51:54 +01:00
#define Z7_IFACE_CONSTR_PASSWORD(i, n) \
Z7_DECL_IFACE_7ZIP(i, 5, n) \
{ Z7_IFACE_COM7_PURE(i) };
2022-11-12 09:45:35 +00:00
2023-09-14 16:51:54 +01:00
/*
How to use output parameter (BSTR *password):
in: The caller is required to set BSTR value as NULL (no string).
The callee (in 7-Zip code) ignores the input value stored in BSTR variable,
out: The callee rewrites BSTR variable (*password) with new allocated string pointer.
The caller must free BSTR string with function SysFreeString();
*/
#define Z7_IFACEM_ICryptoGetTextPassword(x) \
x(CryptoGetTextPassword(BSTR *password))
Z7_IFACE_CONSTR_PASSWORD(ICryptoGetTextPassword, 0x10)
2022-11-12 09:45:35 +00:00
2023-09-14 16:51:54 +01:00
/*
CryptoGetTextPassword2()
in:
The caller is required to set BSTR value as NULL (no string).
The caller is not required to set (*passwordIsDefined) value.
out:
Return code: != S_OK : error code
Return code: S_OK : success
if (*passwordIsDefined == 1), the variable (*password) contains password string
if (*passwordIsDefined == 0), the password is not defined,
but the callee still could set (*password) to some allocated string, for example, as empty string.
The caller must free BSTR string with function SysFreeString()
*/
#define Z7_IFACEM_ICryptoGetTextPassword2(x) \
x(CryptoGetTextPassword2(Int32 *passwordIsDefined, BSTR *password))
Z7_IFACE_CONSTR_PASSWORD(ICryptoGetTextPassword2, 0x11)
Z7_PURE_INTERFACES_END
#endif