2025-04-27 07:49:33 -04:00

57 lines
1.7 KiB
Plaintext

import "unknwn.idl";
//
// PTP command request
//
const DWORD VENDOR_COMMAND_NUMPARAMS_MAX = 5;
typedef struct _VENDOR_COMMAND
{
WORD OpCode; // the opcode
DWORD SessionId; // the session id
DWORD TransactionId; // the transaction id
DWORD Params[VENDOR_COMMAND_NUMPARAMS_MAX]; // parameters
}VENDOR_COMMAND, *PVENDOR_COMMAND;
//
// PTP response block
//
const DWORD VENDOR_RESPONSE_NUMPARAMS_MAX = 5;
typedef struct _VENDOR_RESPONSE
{
WORD ResponseCode; // response code
DWORD SessionId; // the session id
DWORD TransactionId; // the transaction id
DWORD Params[VENDOR_RESPONSE_NUMPARAMS_MAX]; // parameters
}VENDOR_RESPONSE, *PVENDOR_RESPONSE;
//
// NextPhase constants
//
const int VENDORCOMMAND_READ_DATA = 3;
const int VENDORCOMMAND_WRITE_DATA = 4;
const int VENDORCOMMAND_NO_DATA = 5;
//
// IWiaPtpVendorExt definition
//
[ object,
uuid(D5F0C4B7-7981-4d92-BC1A-D3686BDF2045),
helpstring("PTP vendor access"),
]
interface IWiaPtpVendorExt : IUnknown
{
[local]
HRESULT VendorCommand(
[in] VENDOR_COMMAND *pCommand,
[out] VENDOR_RESPONSE *pResponse,
[in, out] unsigned int *pReadDataSize,
[out, size_is(*pReadDataSize)] unsigned char *pReadData,
[in] unsigned int WriteDataSize,
[in, size_is(WriteDataSize)] unsigned char *pWriteData,
[in] unsigned int NumCommandParams,
[in] int NextPhase
);
};