//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (185)
//--------------------------------------------------------------------------------
pub const PRLT = @as(u32, 0);
pub const PRLE = @as(u32, 1);
pub const PRGT = @as(u32, 2);
pub const PRGE = @as(u32, 3);
pub const PREQ = @as(u32, 4);
pub const PRNE = @as(u32, 5);
pub const QUERY_SORTASCEND = @as(u32, 0);
pub const QUERY_SORTDESCEND = @as(u32, 1);
pub const MQ_MOVE_ACCESS = @as(u32, 4);
pub const MQ_ACTION_RECEIVE = @as(u32, 0);
pub const MQ_ACTION_PEEK_CURRENT = @as(u32, 2147483648);
pub const MQ_ACTION_PEEK_NEXT = @as(u32, 2147483649);
pub const MQ_LOOKUP_PEEK_CURRENT = @as(u32, 1073741840);
pub const MQ_LOOKUP_PEEK_NEXT = @as(u32, 1073741841);
pub const MQ_LOOKUP_PEEK_PREV = @as(u32, 1073741842);
pub const MQ_LOOKUP_PEEK_FIRST = @as(u32, 1073741844);
pub const MQ_LOOKUP_PEEK_LAST = @as(u32, 1073741848);
pub const MQ_LOOKUP_RECEIVE_CURRENT = @as(u32, 1073741856);
pub const MQ_LOOKUP_RECEIVE_NEXT = @as(u32, 1073741857);
pub const MQ_LOOKUP_RECEIVE_PREV = @as(u32, 1073741858);
pub const MQ_LOOKUP_RECEIVE_FIRST = @as(u32, 1073741860);
pub const MQ_LOOKUP_RECEIVE_LAST = @as(u32, 1073741864);
pub const MQ_LOOKUP_RECEIVE_ALLOW_PEEK = @as(u32, 1073742112);
pub const PROPID_M_BASE = @as(u32, 0);
pub const PROPID_M_CLASS = @as(u32, 1);
pub const PROPID_M_MSGID = @as(u32, 2);
pub const PROPID_M_CORRELATIONID = @as(u32, 3);
pub const PROPID_M_PRIORITY = @as(u32, 4);
pub const PROPID_M_DELIVERY = @as(u32, 5);
pub const PROPID_M_ACKNOWLEDGE = @as(u32, 6);
pub const PROPID_M_JOURNAL = @as(u32, 7);
pub const PROPID_M_APPSPECIFIC = @as(u32, 8);
pub const PROPID_M_BODY = @as(u32, 9);
pub const PROPID_M_BODY_SIZE = @as(u32, 10);
pub const PROPID_M_LABEL = @as(u32, 11);
pub const PROPID_M_LABEL_LEN = @as(u32, 12);
pub const PROPID_M_TIME_TO_REACH_QUEUE = @as(u32, 13);
pub const PROPID_M_TIME_TO_BE_RECEIVED = @as(u32, 14);
pub const PROPID_M_RESP_QUEUE = @as(u32, 15);
pub const PROPID_M_RESP_QUEUE_LEN = @as(u32, 16);
pub const PROPID_M_ADMIN_QUEUE = @as(u32, 17);
pub const PROPID_M_ADMIN_QUEUE_LEN = @as(u32, 18);
pub const PROPID_M_VERSION = @as(u32, 19);
pub const PROPID_M_SENDERID = @as(u32, 20);
pub const PROPID_M_SENDERID_LEN = @as(u32, 21);
pub const PROPID_M_SENDERID_TYPE = @as(u32, 22);
pub const PROPID_M_PRIV_LEVEL = @as(u32, 23);
pub const PROPID_M_AUTH_LEVEL = @as(u32, 24);
pub const PROPID_M_AUTHENTICATED = @as(u32, 25);
pub const PROPID_M_HASH_ALG = @as(u32, 26);
pub const PROPID_M_ENCRYPTION_ALG = @as(u32, 27);
pub const PROPID_M_SENDER_CERT = @as(u32, 28);
pub const PROPID_M_SENDER_CERT_LEN = @as(u32, 29);
pub const PROPID_M_SRC_MACHINE_ID = @as(u32, 30);
pub const PROPID_M_SENTTIME = @as(u32, 31);
pub const PROPID_M_ARRIVEDTIME = @as(u32, 32);
pub const PROPID_M_DEST_QUEUE = @as(u32, 33);
pub const PROPID_M_DEST_QUEUE_LEN = @as(u32, 34);
pub const PROPID_M_EXTENSION = @as(u32, 35);
pub const PROPID_M_EXTENSION_LEN = @as(u32, 36);
pub const PROPID_M_SECURITY_CONTEXT = @as(u32, 37);
pub const PROPID_M_CONNECTOR_TYPE = @as(u32, 38);
pub const PROPID_M_XACT_STATUS_QUEUE = @as(u32, 39);
pub const PROPID_M_XACT_STATUS_QUEUE_LEN = @as(u32, 40);
pub const PROPID_M_TRACE = @as(u32, 41);
pub const PROPID_M_BODY_TYPE = @as(u32, 42);
pub const PROPID_M_DEST_SYMM_KEY = @as(u32, 43);
pub const PROPID_M_DEST_SYMM_KEY_LEN = @as(u32, 44);
pub const PROPID_M_SIGNATURE = @as(u32, 45);
pub const PROPID_M_SIGNATURE_LEN = @as(u32, 46);
pub const PROPID_M_PROV_TYPE = @as(u32, 47);
pub const PROPID_M_PROV_NAME = @as(u32, 48);
pub const PROPID_M_PROV_NAME_LEN = @as(u32, 49);
pub const PROPID_M_FIRST_IN_XACT = @as(u32, 50);
pub const PROPID_M_LAST_IN_XACT = @as(u32, 51);
pub const PROPID_M_XACTID = @as(u32, 52);
pub const PROPID_M_AUTHENTICATED_EX = @as(u32, 53);
pub const PROPID_M_RESP_FORMAT_NAME = @as(u32, 54);
pub const PROPID_M_RESP_FORMAT_NAME_LEN = @as(u32, 55);
pub const PROPID_M_DEST_FORMAT_NAME = @as(u32, 58);
pub const PROPID_M_DEST_FORMAT_NAME_LEN = @as(u32, 59);
pub const PROPID_M_LOOKUPID = @as(u32, 60);
pub const PROPID_M_SOAP_ENVELOPE = @as(u32, 61);
pub const PROPID_M_SOAP_ENVELOPE_LEN = @as(u32, 62);
pub const PROPID_M_COMPOUND_MESSAGE = @as(u32, 63);
pub const PROPID_M_COMPOUND_MESSAGE_SIZE = @as(u32, 64);
pub const PROPID_M_SOAP_HEADER = @as(u32, 65);
pub const PROPID_M_SOAP_BODY = @as(u32, 66);
pub const PROPID_M_DEADLETTER_QUEUE = @as(u32, 67);
pub const PROPID_M_DEADLETTER_QUEUE_LEN = @as(u32, 68);
pub const PROPID_M_ABORT_COUNT = @as(u32, 69);
pub const PROPID_M_MOVE_COUNT = @as(u32, 70);
pub const PROPID_M_LAST_MOVE_TIME = @as(u32, 75);
pub const PROPID_M_MSGID_SIZE = @as(u32, 20);
pub const PROPID_M_CORRELATIONID_SIZE = @as(u32, 20);
pub const PROPID_M_XACTID_SIZE = @as(u32, 20);
pub const MQMSG_PRIV_LEVEL_BODY_AES = @as(u32, 5);
pub const MQMSG_AUTHENTICATED_QM_MESSAGE = @as(u32, 11);
pub const MQMSG_NOT_FIRST_IN_XACT = @as(u32, 0);
pub const MQMSG_FIRST_IN_XACT = @as(u32, 1);
pub const MQMSG_NOT_LAST_IN_XACT = @as(u32, 0);
pub const MQMSG_LAST_IN_XACT = @as(u32, 1);
pub const PROPID_Q_BASE = @as(u32, 100);
pub const PROPID_Q_INSTANCE = @as(u32, 101);
pub const PROPID_Q_TYPE = @as(u32, 102);
pub const PROPID_Q_PATHNAME = @as(u32, 103);
pub const PROPID_Q_JOURNAL = @as(u32, 104);
pub const PROPID_Q_QUOTA = @as(u32, 105);
pub const PROPID_Q_BASEPRIORITY = @as(u32, 106);
pub const PROPID_Q_JOURNAL_QUOTA = @as(u32, 107);
pub const PROPID_Q_LABEL = @as(u32, 108);
pub const PROPID_Q_CREATE_TIME = @as(u32, 109);
pub const PROPID_Q_MODIFY_TIME = @as(u32, 110);
pub const PROPID_Q_AUTHENTICATE = @as(u32, 111);
pub const PROPID_Q_PRIV_LEVEL = @as(u32, 112);
pub const PROPID_Q_TRANSACTION = @as(u32, 113);
pub const PROPID_Q_PATHNAME_DNS = @as(u32, 124);
pub const PROPID_Q_MULTICAST_ADDRESS = @as(u32, 125);
pub const PROPID_Q_ADS_PATH = @as(u32, 126);
pub const PROPID_QM_BASE = @as(u32, 200);
pub const PROPID_QM_SITE_ID = @as(u32, 201);
pub const PROPID_QM_MACHINE_ID = @as(u32, 202);
pub const PROPID_QM_PATHNAME = @as(u32, 203);
pub const PROPID_QM_CONNECTION = @as(u32, 204);
pub const PROPID_QM_ENCRYPTION_PK = @as(u32, 205);
pub const PROPID_QM_ENCRYPTION_PK_BASE = @as(u32, 231);
pub const PROPID_QM_ENCRYPTION_PK_ENHANCED = @as(u32, 232);
pub const PROPID_QM_PATHNAME_DNS = @as(u32, 233);
pub const PROPID_QM_ENCRYPTION_PK_AES = @as(u32, 244);
pub const PROPID_PC_BASE = @as(u32, 5800);
pub const PROPID_PC_VERSION = @as(u32, 5801);
pub const PROPID_PC_DS_ENABLED = @as(u32, 5802);
pub const PROPID_MGMT_MSMQ_BASE = @as(u32, 0);
pub const PROPID_MGMT_MSMQ_ACTIVEQUEUES = @as(u32, 1);
pub const PROPID_MGMT_MSMQ_PRIVATEQ = @as(u32, 2);
pub const PROPID_MGMT_MSMQ_DSSERVER = @as(u32, 3);
pub const PROPID_MGMT_MSMQ_CONNECTED = @as(u32, 4);
pub const PROPID_MGMT_MSMQ_TYPE = @as(u32, 5);
pub const PROPID_MGMT_MSMQ_BYTES_IN_ALL_QUEUES = @as(u32, 6);
pub const PROPID_MGMT_QUEUE_BASE = @as(u32, 0);
pub const PROPID_MGMT_QUEUE_PATHNAME = @as(u32, 1);
pub const PROPID_MGMT_QUEUE_FORMATNAME = @as(u32, 2);
pub const PROPID_MGMT_QUEUE_TYPE = @as(u32, 3);
pub const PROPID_MGMT_QUEUE_LOCATION = @as(u32, 4);
pub const PROPID_MGMT_QUEUE_XACT = @as(u32, 5);
pub const PROPID_MGMT_QUEUE_FOREIGN = @as(u32, 6);
pub const PROPID_MGMT_QUEUE_MESSAGE_COUNT = @as(u32, 7);
pub const PROPID_MGMT_QUEUE_BYTES_IN_QUEUE = @as(u32, 8);
pub const PROPID_MGMT_QUEUE_JOURNAL_MESSAGE_COUNT = @as(u32, 9);
pub const PROPID_MGMT_QUEUE_BYTES_IN_JOURNAL = @as(u32, 10);
pub const PROPID_MGMT_QUEUE_STATE = @as(u32, 11);
pub const PROPID_MGMT_QUEUE_NEXTHOPS = @as(u32, 12);
pub const PROPID_MGMT_QUEUE_EOD_LAST_ACK = @as(u32, 13);
pub const PROPID_MGMT_QUEUE_EOD_LAST_ACK_TIME = @as(u32, 14);
pub const PROPID_MGMT_QUEUE_EOD_LAST_ACK_COUNT = @as(u32, 15);
pub const PROPID_MGMT_QUEUE_EOD_FIRST_NON_ACK = @as(u32, 16);
pub const PROPID_MGMT_QUEUE_EOD_LAST_NON_ACK = @as(u32, 17);
pub const PROPID_MGMT_QUEUE_EOD_NEXT_SEQ = @as(u32, 18);
pub const PROPID_MGMT_QUEUE_EOD_NO_READ_COUNT = @as(u32, 19);
pub const PROPID_MGMT_QUEUE_EOD_NO_ACK_COUNT = @as(u32, 20);
pub const PROPID_MGMT_QUEUE_EOD_RESEND_TIME = @as(u32, 21);
pub const PROPID_MGMT_QUEUE_EOD_RESEND_INTERVAL = @as(u32, 22);
pub const PROPID_MGMT_QUEUE_EOD_RESEND_COUNT = @as(u32, 23);
pub const PROPID_MGMT_QUEUE_EOD_SOURCE_INFO = @as(u32, 24);
pub const PROPID_MGMT_QUEUE_CONNECTION_HISTORY = @as(u32, 25);
pub const PROPID_MGMT_QUEUE_SUBQUEUE_COUNT = @as(u32, 26);
pub const PROPID_MGMT_QUEUE_SUBQUEUE_NAMES = @as(u32, 27);
pub const PROPID_MGMT_QUEUE_USED_QUOTA = @as(u32, 8);
pub const PROPID_MGMT_QUEUE_JOURNAL_USED_QUOTA = @as(u32, 10);
pub const LONG_LIVED = @as(u32, 4294967294);
pub const MQSEC_DELETE_MESSAGE = @as(u32, 1);
pub const MQSEC_PEEK_MESSAGE = @as(u32, 2);
pub const MQSEC_WRITE_MESSAGE = @as(u32, 4);
pub const MQSEC_DELETE_JOURNAL_MESSAGE = @as(u32, 8);
pub const MQSEC_SET_QUEUE_PROPERTIES = @as(u32, 16);
pub const MQSEC_GET_QUEUE_PROPERTIES = @as(u32, 32);
pub const MQSEC_DELETE_QUEUE = @as(u32, 65536);
pub const MQSEC_CHANGE_QUEUE_PERMISSIONS = @as(u32, 262144);
pub const MQSEC_TAKE_QUEUE_OWNERSHIP = @as(u32, 524288);
pub const MQSEC_QUEUE_GENERIC_EXECUTE = @as(u32, 0);
pub const MQ_OK = @import("../zig.zig").typedConst(HRESULT, @as(i32, 0));
pub const MQ_ERROR_RESOLVE_ADDRESS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072824167));
pub const MQ_ERROR_TOO_MANY_PROPERTIES = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072824166));
pub const MQ_ERROR_MESSAGE_NOT_AUTHENTICATED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072824165));
pub const MQ_ERROR_MESSAGE_LOCKED_UNDER_TRANSACTION = @import("../zig.zig").typedConst(HRESULT, @as(i32, -1072824164));

//--------------------------------------------------------------------------------
// Section: Types (89)
//--------------------------------------------------------------------------------
const CLSID_MSMQQuery_Value = Guid.initString("d7d6e073-dccd-11d0-aa4b-0060970debae");
pub const CLSID_MSMQQuery = &CLSID_MSMQQuery_Value;

const CLSID_MSMQMessage_Value = Guid.initString("d7d6e075-dccd-11d0-aa4b-0060970debae");
pub const CLSID_MSMQMessage = &CLSID_MSMQMessage_Value;

const CLSID_MSMQQueue_Value = Guid.initString("d7d6e079-dccd-11d0-aa4b-0060970debae");
pub const CLSID_MSMQQueue = &CLSID_MSMQQueue_Value;

const CLSID_MSMQEvent_Value = Guid.initString("d7d6e07a-dccd-11d0-aa4b-0060970debae");
pub const CLSID_MSMQEvent = &CLSID_MSMQEvent_Value;

const CLSID_MSMQQueueInfo_Value = Guid.initString("d7d6e07c-dccd-11d0-aa4b-0060970debae");
pub const CLSID_MSMQQueueInfo = &CLSID_MSMQQueueInfo_Value;

const CLSID_MSMQQueueInfos_Value = Guid.initString("d7d6e07e-dccd-11d0-aa4b-0060970debae");
pub const CLSID_MSMQQueueInfos = &CLSID_MSMQQueueInfos_Value;

const CLSID_MSMQTransaction_Value = Guid.initString("d7d6e080-dccd-11d0-aa4b-0060970debae");
pub const CLSID_MSMQTransaction = &CLSID_MSMQTransaction_Value;

const CLSID_MSMQCoordinatedTransactionDispenser_Value = Guid.initString("d7d6e082-dccd-11d0-aa4b-0060970debae");
pub const CLSID_MSMQCoordinatedTransactionDispenser = &CLSID_MSMQCoordinatedTransactionDispenser_Value;

const CLSID_MSMQTransactionDispenser_Value = Guid.initString("d7d6e084-dccd-11d0-aa4b-0060970debae");
pub const CLSID_MSMQTransactionDispenser = &CLSID_MSMQTransactionDispenser_Value;

const CLSID_MSMQApplication_Value = Guid.initString("d7d6e086-dccd-11d0-aa4b-0060970debae");
pub const CLSID_MSMQApplication = &CLSID_MSMQApplication_Value;

const CLSID_MSMQDestination_Value = Guid.initString("eba96b18-2168-11d3-898c-00e02c074f6b");
pub const CLSID_MSMQDestination = &CLSID_MSMQDestination_Value;

const CLSID_MSMQCollection_Value = Guid.initString("f72b9031-2f0c-43e8-924e-e6052cdc493f");
pub const CLSID_MSMQCollection = &CLSID_MSMQCollection_Value;

const CLSID_MSMQManagement_Value = Guid.initString("39ce96fe-f4c5-4484-a143-4c2d5d324229");
pub const CLSID_MSMQManagement = &CLSID_MSMQManagement_Value;

const CLSID_MSMQOutgoingQueueManagement_Value = Guid.initString("0188401c-247a-4fed-99c6-bf14119d7055");
pub const CLSID_MSMQOutgoingQueueManagement = &CLSID_MSMQOutgoingQueueManagement_Value;

const CLSID_MSMQQueueManagement_Value = Guid.initString("33b6d07e-f27d-42fa-b2d7-bf82e11e9374");
pub const CLSID_MSMQQueueManagement = &CLSID_MSMQQueueManagement_Value;

pub const MQCALG = enum(i32) {
    MD2 = 32769,
    MD4 = 32770,
    MD5 = 32771,
    SHA = 32772,
    // SHA1 = 32772, this enum value conflicts with SHA
    MAC = 32773,
    RSA_SIGN = 9216,
    DSS_SIGN = 8704,
    RSA_KEYX = 41984,
    DES = 26113,
    RC2 = 26114,
    RC4 = 26625,
    SEAL = 26626,
};
pub const MQMSG_CALG_MD2 = MQCALG.MD2;
pub const MQMSG_CALG_MD4 = MQCALG.MD4;
pub const MQMSG_CALG_MD5 = MQCALG.MD5;
pub const MQMSG_CALG_SHA = MQCALG.SHA;
pub const MQMSG_CALG_SHA1 = MQCALG.SHA;
pub const MQMSG_CALG_MAC = MQCALG.MAC;
pub const MQMSG_CALG_RSA_SIGN = MQCALG.RSA_SIGN;
pub const MQMSG_CALG_DSS_SIGN = MQCALG.DSS_SIGN;
pub const MQMSG_CALG_RSA_KEYX = MQCALG.RSA_KEYX;
pub const MQMSG_CALG_DES = MQCALG.DES;
pub const MQMSG_CALG_RC2 = MQCALG.RC2;
pub const MQMSG_CALG_RC4 = MQCALG.RC4;
pub const MQMSG_CALG_SEAL = MQCALG.SEAL;

pub const MQTRANSACTION = enum(i32) {
    NO_TRANSACTION = 0,
    MTS_TRANSACTION = 1,
    XA_TRANSACTION = 2,
    SINGLE_MESSAGE = 3,
};
pub const MQ_NO_TRANSACTION = MQTRANSACTION.NO_TRANSACTION;
pub const MQ_MTS_TRANSACTION = MQTRANSACTION.MTS_TRANSACTION;
pub const MQ_XA_TRANSACTION = MQTRANSACTION.XA_TRANSACTION;
pub const MQ_SINGLE_MESSAGE = MQTRANSACTION.SINGLE_MESSAGE;

pub const RELOPS = enum(i32) {
    NOP = 0,
    EQ = 1,
    NEQ = 2,
    LT = 3,
    GT = 4,
    LE = 5,
    GE = 6,
};
pub const REL_NOP = RELOPS.NOP;
pub const REL_EQ = RELOPS.EQ;
pub const REL_NEQ = RELOPS.NEQ;
pub const REL_LT = RELOPS.LT;
pub const REL_GT = RELOPS.GT;
pub const REL_LE = RELOPS.LE;
pub const REL_GE = RELOPS.GE;

pub const MQCERT_REGISTER = enum(i32) {
    ALWAYS = 1,
    IF_NOT_EXIST = 2,
};
pub const MQCERT_REGISTER_ALWAYS = MQCERT_REGISTER.ALWAYS;
pub const MQCERT_REGISTER_IF_NOT_EXIST = MQCERT_REGISTER.IF_NOT_EXIST;

pub const MQMSGCURSOR = enum(i32) {
    FIRST = 0,
    CURRENT = 1,
    NEXT = 2,
};
pub const MQMSG_FIRST = MQMSGCURSOR.FIRST;
pub const MQMSG_CURRENT = MQMSGCURSOR.CURRENT;
pub const MQMSG_NEXT = MQMSGCURSOR.NEXT;

pub const MQMSGCLASS = enum(i32) {
    NORMAL = 0,
    REPORT = 1,
    ACK_REACH_QUEUE = 2,
    ACK_RECEIVE = 16384,
    NACK_BAD_DST_Q = 32768,
    NACK_PURGED = 32769,
    NACK_REACH_QUEUE_TIMEOUT = 32770,
    NACK_Q_EXCEED_QUOTA = 32771,
    NACK_ACCESS_DENIED = 32772,
    NACK_HOP_COUNT_EXCEEDED = 32773,
    NACK_BAD_SIGNATURE = 32774,
    NACK_BAD_ENCRYPTION = 32775,
    NACK_COULD_NOT_ENCRYPT = 32776,
    NACK_NOT_TRANSACTIONAL_Q = 32777,
    NACK_NOT_TRANSACTIONAL_MSG = 32778,
    NACK_UNSUPPORTED_CRYPTO_PROVIDER = 32779,
    NACK_SOURCE_COMPUTER_GUID_CHANGED = 32780,
    NACK_Q_DELETED = 49152,
    NACK_Q_PURGED = 49153,
    NACK_RECEIVE_TIMEOUT = 49154,
    NACK_RECEIVE_TIMEOUT_AT_SENDER = 49155,
};
pub const MQMSG_CLASS_NORMAL = MQMSGCLASS.NORMAL;
pub const MQMSG_CLASS_REPORT = MQMSGCLASS.REPORT;
pub const MQMSG_CLASS_ACK_REACH_QUEUE = MQMSGCLASS.ACK_REACH_QUEUE;
pub const MQMSG_CLASS_ACK_RECEIVE = MQMSGCLASS.ACK_RECEIVE;
pub const MQMSG_CLASS_NACK_BAD_DST_Q = MQMSGCLASS.NACK_BAD_DST_Q;
pub const MQMSG_CLASS_NACK_PURGED = MQMSGCLASS.NACK_PURGED;
pub const MQMSG_CLASS_NACK_REACH_QUEUE_TIMEOUT = MQMSGCLASS.NACK_REACH_QUEUE_TIMEOUT;
pub const MQMSG_CLASS_NACK_Q_EXCEED_QUOTA = MQMSGCLASS.NACK_Q_EXCEED_QUOTA;
pub const MQMSG_CLASS_NACK_ACCESS_DENIED = MQMSGCLASS.NACK_ACCESS_DENIED;
pub const MQMSG_CLASS_NACK_HOP_COUNT_EXCEEDED = MQMSGCLASS.NACK_HOP_COUNT_EXCEEDED;
pub const MQMSG_CLASS_NACK_BAD_SIGNATURE = MQMSGCLASS.NACK_BAD_SIGNATURE;
pub const MQMSG_CLASS_NACK_BAD_ENCRYPTION = MQMSGCLASS.NACK_BAD_ENCRYPTION;
pub const MQMSG_CLASS_NACK_COULD_NOT_ENCRYPT = MQMSGCLASS.NACK_COULD_NOT_ENCRYPT;
pub const MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_Q = MQMSGCLASS.NACK_NOT_TRANSACTIONAL_Q;
pub const MQMSG_CLASS_NACK_NOT_TRANSACTIONAL_MSG = MQMSGCLASS.NACK_NOT_TRANSACTIONAL_MSG;
pub const MQMSG_CLASS_NACK_UNSUPPORTED_CRYPTO_PROVIDER = MQMSGCLASS.NACK_UNSUPPORTED_CRYPTO_PROVIDER;
pub const MQMSG_CLASS_NACK_SOURCE_COMPUTER_GUID_CHANGED = MQMSGCLASS.NACK_SOURCE_COMPUTER_GUID_CHANGED;
pub const MQMSG_CLASS_NACK_Q_DELETED = MQMSGCLASS.NACK_Q_DELETED;
pub const MQMSG_CLASS_NACK_Q_PURGED = MQMSGCLASS.NACK_Q_PURGED;
pub const MQMSG_CLASS_NACK_RECEIVE_TIMEOUT = MQMSGCLASS.NACK_RECEIVE_TIMEOUT;
pub const MQMSG_CLASS_NACK_RECEIVE_TIMEOUT_AT_SENDER = MQMSGCLASS.NACK_RECEIVE_TIMEOUT_AT_SENDER;

pub const MQMSGDELIVERY = enum(i32) {
    EXPRESS = 0,
    RECOVERABLE = 1,
};
pub const MQMSG_DELIVERY_EXPRESS = MQMSGDELIVERY.EXPRESS;
pub const MQMSG_DELIVERY_RECOVERABLE = MQMSGDELIVERY.RECOVERABLE;

pub const MQMSGACKNOWLEDGEMENT = enum(i32) {
    NONE = 0,
    POS_ARRIVAL = 1,
    POS_RECEIVE = 2,
    NEG_ARRIVAL = 4,
    NEG_RECEIVE = 8,
    // NACK_REACH_QUEUE = 4, this enum value conflicts with NEG_ARRIVAL
    FULL_REACH_QUEUE = 5,
    NACK_RECEIVE = 12,
    FULL_RECEIVE = 14,
};
pub const MQMSG_ACKNOWLEDGMENT_NONE = MQMSGACKNOWLEDGEMENT.NONE;
pub const MQMSG_ACKNOWLEDGMENT_POS_ARRIVAL = MQMSGACKNOWLEDGEMENT.POS_ARRIVAL;
pub const MQMSG_ACKNOWLEDGMENT_POS_RECEIVE = MQMSGACKNOWLEDGEMENT.POS_RECEIVE;
pub const MQMSG_ACKNOWLEDGMENT_NEG_ARRIVAL = MQMSGACKNOWLEDGEMENT.NEG_ARRIVAL;
pub const MQMSG_ACKNOWLEDGMENT_NEG_RECEIVE = MQMSGACKNOWLEDGEMENT.NEG_RECEIVE;
pub const MQMSG_ACKNOWLEDGMENT_NACK_REACH_QUEUE = MQMSGACKNOWLEDGEMENT.NEG_ARRIVAL;
pub const MQMSG_ACKNOWLEDGMENT_FULL_REACH_QUEUE = MQMSGACKNOWLEDGEMENT.FULL_REACH_QUEUE;
pub const MQMSG_ACKNOWLEDGMENT_NACK_RECEIVE = MQMSGACKNOWLEDGEMENT.NACK_RECEIVE;
pub const MQMSG_ACKNOWLEDGMENT_FULL_RECEIVE = MQMSGACKNOWLEDGEMENT.FULL_RECEIVE;

pub const MQMSGJOURNAL = enum(i32) {
    JOURNAL_NONE = 0,
    DEADLETTER = 1,
    JOURNAL = 2,
};
pub const MQMSG_JOURNAL_NONE = MQMSGJOURNAL.JOURNAL_NONE;
pub const MQMSG_DEADLETTER = MQMSGJOURNAL.DEADLETTER;
pub const MQMSG_JOURNAL = MQMSGJOURNAL.JOURNAL;

pub const MQMSGTRACE = enum(i32) {
    TRACE_NONE = 0,
    SEND_ROUTE_TO_REPORT_QUEUE = 1,
};
pub const MQMSG_TRACE_NONE = MQMSGTRACE.TRACE_NONE;
pub const MQMSG_SEND_ROUTE_TO_REPORT_QUEUE = MQMSGTRACE.SEND_ROUTE_TO_REPORT_QUEUE;

pub const MQMSGSENDERIDTYPE = enum(i32) {
    NONE = 0,
    SID = 1,
};
pub const MQMSG_SENDERID_TYPE_NONE = MQMSGSENDERIDTYPE.NONE;
pub const MQMSG_SENDERID_TYPE_SID = MQMSGSENDERIDTYPE.SID;

pub const MQMSGPRIVLEVEL = enum(i32) {
    NONE = 0,
    BODY_BASE = 1,
    BODY_ENHANCED = 3,
};
pub const MQMSG_PRIV_LEVEL_NONE = MQMSGPRIVLEVEL.NONE;
pub const MQMSG_PRIV_LEVEL_BODY_BASE = MQMSGPRIVLEVEL.BODY_BASE;
pub const MQMSG_PRIV_LEVEL_BODY_ENHANCED = MQMSGPRIVLEVEL.BODY_ENHANCED;

pub const MQMSGAUTHLEVEL = enum(i32) {
    NONE = 0,
    ALWAYS = 1,
    MSMQ10 = 2,
    // SIG10 = 2, this enum value conflicts with MSMQ10
    MSMQ20 = 4,
    // SIG20 = 4, this enum value conflicts with MSMQ20
    SIG30 = 8,
};
pub const MQMSG_AUTH_LEVEL_NONE = MQMSGAUTHLEVEL.NONE;
pub const MQMSG_AUTH_LEVEL_ALWAYS = MQMSGAUTHLEVEL.ALWAYS;
pub const MQMSG_AUTH_LEVEL_MSMQ10 = MQMSGAUTHLEVEL.MSMQ10;
pub const MQMSG_AUTH_LEVEL_SIG10 = MQMSGAUTHLEVEL.MSMQ10;
pub const MQMSG_AUTH_LEVEL_MSMQ20 = MQMSGAUTHLEVEL.MSMQ20;
pub const MQMSG_AUTH_LEVEL_SIG20 = MQMSGAUTHLEVEL.MSMQ20;
pub const MQMSG_AUTH_LEVEL_SIG30 = MQMSGAUTHLEVEL.SIG30;

pub const MQMSGIDSIZE = enum(i32) {
    MSGID_SIZE = 20,
    // CORRELATIONID_SIZE = 20, this enum value conflicts with MSGID_SIZE
    // XACTID_SIZE = 20, this enum value conflicts with MSGID_SIZE
};
pub const MQMSG_MSGID_SIZE = MQMSGIDSIZE.MSGID_SIZE;
pub const MQMSG_CORRELATIONID_SIZE = MQMSGIDSIZE.MSGID_SIZE;
pub const MQMSG_XACTID_SIZE = MQMSGIDSIZE.MSGID_SIZE;

pub const MQMSGMAX = enum(i32) {
    N = 249,
};
pub const MQ_MAX_MSG_LABEL_LEN = MQMSGMAX.N;

pub const MQMSGAUTHENTICATION = enum(i32) {
    ION_NOT_REQUESTED = 0,
    ION_REQUESTED = 1,
    // ED_SIG10 = 1, this enum value conflicts with ION_REQUESTED
    ION_REQUESTED_EX = 3,
    // ED_SIG20 = 3, this enum value conflicts with ION_REQUESTED_EX
    ED_SIG30 = 5,
    ED_SIGXML = 9,
};
pub const MQMSG_AUTHENTICATION_NOT_REQUESTED = MQMSGAUTHENTICATION.ION_NOT_REQUESTED;
pub const MQMSG_AUTHENTICATION_REQUESTED = MQMSGAUTHENTICATION.ION_REQUESTED;
pub const MQMSG_AUTHENTICATED_SIG10 = MQMSGAUTHENTICATION.ION_REQUESTED;
pub const MQMSG_AUTHENTICATION_REQUESTED_EX = MQMSGAUTHENTICATION.ION_REQUESTED_EX;
pub const MQMSG_AUTHENTICATED_SIG20 = MQMSGAUTHENTICATION.ION_REQUESTED_EX;
pub const MQMSG_AUTHENTICATED_SIG30 = MQMSGAUTHENTICATION.ED_SIG30;
pub const MQMSG_AUTHENTICATED_SIGXML = MQMSGAUTHENTICATION.ED_SIGXML;

pub const MQSHARE = enum(i32) {
    NONE = 0,
    RECEIVE_SHARE = 1,
};
pub const MQ_DENY_NONE = MQSHARE.NONE;
pub const MQ_DENY_RECEIVE_SHARE = MQSHARE.RECEIVE_SHARE;

pub const MQACCESS = enum(i32) {
    RECEIVE_ACCESS = 1,
    SEND_ACCESS = 2,
    PEEK_ACCESS = 32,
    ADMIN_ACCESS = 128,
};
pub const MQ_RECEIVE_ACCESS = MQACCESS.RECEIVE_ACCESS;
pub const MQ_SEND_ACCESS = MQACCESS.SEND_ACCESS;
pub const MQ_PEEK_ACCESS = MQACCESS.PEEK_ACCESS;
pub const MQ_ADMIN_ACCESS = MQACCESS.ADMIN_ACCESS;

pub const MQJOURNAL = enum(i32) {
    _NONE = 0,
    L = 1,
};
pub const MQ_JOURNAL_NONE = MQJOURNAL._NONE;
pub const MQ_JOURNAL = MQJOURNAL.L;

pub const MQTRANSACTIONAL = enum(i32) {
    _NONE = 0,
    L = 1,
};
pub const MQ_TRANSACTIONAL_NONE = MQTRANSACTIONAL._NONE;
pub const MQ_TRANSACTIONAL = MQTRANSACTIONAL.L;

pub const MQAUTHENTICATE = enum(i32) {
    _NONE = 0,
    E = 1,
};
pub const MQ_AUTHENTICATE_NONE = MQAUTHENTICATE._NONE;
pub const MQ_AUTHENTICATE = MQAUTHENTICATE.E;

pub const MQPRIVLEVEL = enum(i32) {
    NONE = 0,
    OPTIONAL = 1,
    BODY = 2,
};
pub const MQ_PRIV_LEVEL_NONE = MQPRIVLEVEL.NONE;
pub const MQ_PRIV_LEVEL_OPTIONAL = MQPRIVLEVEL.OPTIONAL;
pub const MQ_PRIV_LEVEL_BODY = MQPRIVLEVEL.BODY;

pub const MQPRIORITY = enum(i32) {
    IN_PRIORITY = 0,
    AX_PRIORITY = 7,
};
pub const MQ_MIN_PRIORITY = MQPRIORITY.IN_PRIORITY;
pub const MQ_MAX_PRIORITY = MQPRIORITY.AX_PRIORITY;

pub const MQMAX = enum(i32) {
    NAME_LEN = 124,
    // LABEL_LEN = 124, this enum value conflicts with NAME_LEN
};
pub const MQ_MAX_Q_NAME_LEN = MQMAX.NAME_LEN;
pub const MQ_MAX_Q_LABEL_LEN = MQMAX.NAME_LEN;

pub const QUEUE_TYPE = enum(i32) {
    PUBLIC = 0,
    PRIVATE = 1,
    MACHINE = 2,
    CONNECTOR = 3,
    MULTICAST = 4,
};
pub const MQ_TYPE_PUBLIC = QUEUE_TYPE.PUBLIC;
pub const MQ_TYPE_PRIVATE = QUEUE_TYPE.PRIVATE;
pub const MQ_TYPE_MACHINE = QUEUE_TYPE.MACHINE;
pub const MQ_TYPE_CONNECTOR = QUEUE_TYPE.CONNECTOR;
pub const MQ_TYPE_MULTICAST = QUEUE_TYPE.MULTICAST;

pub const FOREIGN_STATUS = enum(i32) {
    FOREIGN = 0,
    NOT_FOREIGN = 1,
    UNKNOWN = 2,
};
pub const MQ_STATUS_FOREIGN = FOREIGN_STATUS.FOREIGN;
pub const MQ_STATUS_NOT_FOREIGN = FOREIGN_STATUS.NOT_FOREIGN;
pub const MQ_STATUS_UNKNOWN = FOREIGN_STATUS.UNKNOWN;

pub const XACT_STATUS = enum(i32) {
    XACT = 0,
    NOT_XACT = 1,
    UNKNOWN = 2,
};
pub const MQ_XACT_STATUS_XACT = XACT_STATUS.XACT;
pub const MQ_XACT_STATUS_NOT_XACT = XACT_STATUS.NOT_XACT;
pub const MQ_XACT_STATUS_UNKNOWN = XACT_STATUS.UNKNOWN;

pub const QUEUE_STATE = enum(i32) {
    LOCAL_CONNECTION = 0,
    DISCONNECTED = 1,
    WAITING = 2,
    NEEDVALIDATE = 3,
    ONHOLD = 4,
    NONACTIVE = 5,
    CONNECTED = 6,
    DISCONNECTING = 7,
    LOCKED = 8,
};
pub const MQ_QUEUE_STATE_LOCAL_CONNECTION = QUEUE_STATE.LOCAL_CONNECTION;
pub const MQ_QUEUE_STATE_DISCONNECTED = QUEUE_STATE.DISCONNECTED;
pub const MQ_QUEUE_STATE_WAITING = QUEUE_STATE.WAITING;
pub const MQ_QUEUE_STATE_NEEDVALIDATE = QUEUE_STATE.NEEDVALIDATE;
pub const MQ_QUEUE_STATE_ONHOLD = QUEUE_STATE.ONHOLD;
pub const MQ_QUEUE_STATE_NONACTIVE = QUEUE_STATE.NONACTIVE;
pub const MQ_QUEUE_STATE_CONNECTED = QUEUE_STATE.CONNECTED;
pub const MQ_QUEUE_STATE_DISCONNECTING = QUEUE_STATE.DISCONNECTING;
pub const MQ_QUEUE_STATE_LOCKED = QUEUE_STATE.LOCKED;

pub const MQDEFAULT = enum(i32) {
    M_PRIORITY = 3,
    M_DELIVERY = 0,
    // M_ACKNOWLEDGE = 0, this enum value conflicts with M_DELIVERY
    // M_JOURNAL = 0, this enum value conflicts with M_DELIVERY
    // M_APPSPECIFIC = 0, this enum value conflicts with M_DELIVERY
    // M_PRIV_LEVEL = 0, this enum value conflicts with M_DELIVERY
    // M_AUTH_LEVEL = 0, this enum value conflicts with M_DELIVERY
    M_SENDERID_TYPE = 1,
    // Q_JOURNAL = 0, this enum value conflicts with M_DELIVERY
    // Q_BASEPRIORITY = 0, this enum value conflicts with M_DELIVERY
    Q_QUOTA = -1,
    // Q_JOURNAL_QUOTA = -1, this enum value conflicts with Q_QUOTA
    // Q_TRANSACTION = 0, this enum value conflicts with M_DELIVERY
    // Q_AUTHENTICATE = 0, this enum value conflicts with M_DELIVERY
    // Q_PRIV_LEVEL = 1, this enum value conflicts with M_SENDERID_TYPE
    // M_LOOKUPID = 0, this enum value conflicts with M_DELIVERY
};
pub const DEFAULT_M_PRIORITY = MQDEFAULT.M_PRIORITY;
pub const DEFAULT_M_DELIVERY = MQDEFAULT.M_DELIVERY;
pub const DEFAULT_M_ACKNOWLEDGE = MQDEFAULT.M_DELIVERY;
pub const DEFAULT_M_JOURNAL = MQDEFAULT.M_DELIVERY;
pub const DEFAULT_M_APPSPECIFIC = MQDEFAULT.M_DELIVERY;
pub const DEFAULT_M_PRIV_LEVEL = MQDEFAULT.M_DELIVERY;
pub const DEFAULT_M_AUTH_LEVEL = MQDEFAULT.M_DELIVERY;
pub const DEFAULT_M_SENDERID_TYPE = MQDEFAULT.M_SENDERID_TYPE;
pub const DEFAULT_Q_JOURNAL = MQDEFAULT.M_DELIVERY;
pub const DEFAULT_Q_BASEPRIORITY = MQDEFAULT.M_DELIVERY;
pub const DEFAULT_Q_QUOTA = MQDEFAULT.Q_QUOTA;
pub const DEFAULT_Q_JOURNAL_QUOTA = MQDEFAULT.Q_QUOTA;
pub const DEFAULT_Q_TRANSACTION = MQDEFAULT.M_DELIVERY;
pub const DEFAULT_Q_AUTHENTICATE = MQDEFAULT.M_DELIVERY;
pub const DEFAULT_Q_PRIV_LEVEL = MQDEFAULT.M_SENDERID_TYPE;
pub const DEFAULT_M_LOOKUPID = MQDEFAULT.M_DELIVERY;

pub const MQERROR = enum(i32) {
    ERROR = -1072824319,
    ERROR_PROPERTY = -1072824318,
    ERROR_QUEUE_NOT_FOUND = -1072824317,
    ERROR_QUEUE_NOT_ACTIVE = -1072824316,
    ERROR_QUEUE_EXISTS = -1072824315,
    ERROR_INVALID_PARAMETER = -1072824314,
    ERROR_INVALID_HANDLE = -1072824313,
    ERROR_OPERATION_CANCELLED = -1072824312,
    ERROR_SHARING_VIOLATION = -1072824311,
    ERROR_SERVICE_NOT_AVAILABLE = -1072824309,
    ERROR_MACHINE_NOT_FOUND = -1072824307,
    ERROR_ILLEGAL_SORT = -1072824304,
    ERROR_ILLEGAL_USER = -1072824303,
    ERROR_NO_DS = -1072824301,
    ERROR_ILLEGAL_QUEUE_PATHNAME = -1072824300,
    ERROR_ILLEGAL_PROPERTY_VALUE = -1072824296,
    ERROR_ILLEGAL_PROPERTY_VT = -1072824295,
    ERROR_BUFFER_OVERFLOW = -1072824294,
    ERROR_IO_TIMEOUT = -1072824293,
    ERROR_ILLEGAL_CURSOR_ACTION = -1072824292,
    ERROR_MESSAGE_ALREADY_RECEIVED = -1072824291,
    ERROR_ILLEGAL_FORMATNAME = -1072824290,
    ERROR_FORMATNAME_BUFFER_TOO_SMALL = -1072824289,
    ERROR_UNSUPPORTED_FORMATNAME_OPERATION = -1072824288,
    ERROR_ILLEGAL_SECURITY_DESCRIPTOR = -1072824287,
    ERROR_SENDERID_BUFFER_TOO_SMALL = -1072824286,
    ERROR_SECURITY_DESCRIPTOR_TOO_SMALL = -1072824285,
    ERROR_CANNOT_IMPERSONATE_CLIENT = -1072824284,
    ERROR_ACCESS_DENIED = -1072824283,
    ERROR_PRIVILEGE_NOT_HELD = -1072824282,
    ERROR_INSUFFICIENT_RESOURCES = -1072824281,
    ERROR_USER_BUFFER_TOO_SMALL = -1072824280,
    ERROR_MESSAGE_STORAGE_FAILED = -1072824278,
    ERROR_SENDER_CERT_BUFFER_TOO_SMALL = -1072824277,
    ERROR_INVALID_CERTIFICATE = -1072824276,
    ERROR_CORRUPTED_INTERNAL_CERTIFICATE = -1072824275,
    ERROR_INTERNAL_USER_CERT_EXIST = -1072824274,
    ERROR_NO_INTERNAL_USER_CERT = -1072824273,
    ERROR_CORRUPTED_SECURITY_DATA = -1072824272,
    ERROR_CORRUPTED_PERSONAL_CERT_STORE = -1072824271,
    ERROR_COMPUTER_DOES_NOT_SUPPORT_ENCRYPTION = -1072824269,
    ERROR_BAD_SECURITY_CONTEXT = -1072824267,
    ERROR_COULD_NOT_GET_USER_SID = -1072824266,
    ERROR_COULD_NOT_GET_ACCOUNT_INFO = -1072824265,
    ERROR_ILLEGAL_MQCOLUMNS = -1072824264,
    ERROR_ILLEGAL_PROPID = -1072824263,
    ERROR_ILLEGAL_RELATION = -1072824262,
    ERROR_ILLEGAL_PROPERTY_SIZE = -1072824261,
    ERROR_ILLEGAL_RESTRICTION_PROPID = -1072824260,
    ERROR_ILLEGAL_MQQUEUEPROPS = -1072824259,
    ERROR_PROPERTY_NOTALLOWED = -1072824258,
    ERROR_INSUFFICIENT_PROPERTIES = -1072824257,
    ERROR_MACHINE_EXISTS = -1072824256,
    ERROR_ILLEGAL_MQQMPROPS = -1072824255,
    ERROR_DS_IS_FULL = -1072824254,
    ERROR_DS_ERROR = -1072824253,
    ERROR_INVALID_OWNER = -1072824252,
    ERROR_UNSUPPORTED_ACCESS_MODE = -1072824251,
    ERROR_RESULT_BUFFER_TOO_SMALL = -1072824250,
    ERROR_DELETE_CN_IN_USE = -1072824248,
    ERROR_NO_RESPONSE_FROM_OBJECT_SERVER = -1072824247,
    ERROR_OBJECT_SERVER_NOT_AVAILABLE = -1072824246,
    ERROR_QUEUE_NOT_AVAILABLE = -1072824245,
    ERROR_DTC_CONNECT = -1072824244,
    ERROR_TRANSACTION_IMPORT = -1072824242,
    ERROR_TRANSACTION_USAGE = -1072824240,
    ERROR_TRANSACTION_SEQUENCE = -1072824239,
    ERROR_MISSING_CONNECTOR_TYPE = -1072824235,
    ERROR_STALE_HANDLE = -1072824234,
    ERROR_TRANSACTION_ENLIST = -1072824232,
    ERROR_QUEUE_DELETED = -1072824230,
    ERROR_ILLEGAL_CONTEXT = -1072824229,
    ERROR_ILLEGAL_SORT_PROPID = -1072824228,
    ERROR_LABEL_TOO_LONG = -1072824227,
    ERROR_LABEL_BUFFER_TOO_SMALL = -1072824226,
    ERROR_MQIS_SERVER_EMPTY = -1072824225,
    ERROR_MQIS_READONLY_MODE = -1072824224,
    ERROR_SYMM_KEY_BUFFER_TOO_SMALL = -1072824223,
    ERROR_SIGNATURE_BUFFER_TOO_SMALL = -1072824222,
    ERROR_PROV_NAME_BUFFER_TOO_SMALL = -1072824221,
    ERROR_ILLEGAL_OPERATION = -1072824220,
    ERROR_WRITE_NOT_ALLOWED = -1072824219,
    ERROR_WKS_CANT_SERVE_CLIENT = -1072824218,
    ERROR_DEPEND_WKS_LICENSE_OVERFLOW = -1072824217,
    CORRUPTED_QUEUE_WAS_DELETED = -1072824216,
    ERROR_REMOTE_MACHINE_NOT_AVAILABLE = -1072824215,
    ERROR_UNSUPPORTED_OPERATION = -1072824214,
    ERROR_ENCRYPTION_PROVIDER_NOT_SUPPORTED = -1072824213,
    ERROR_CANNOT_SET_CRYPTO_SEC_DESCR = -1072824212,
    ERROR_CERTIFICATE_NOT_PROVIDED = -1072824211,
    ERROR_Q_DNS_PROPERTY_NOT_SUPPORTED = -1072824210,
    ERROR_CANT_CREATE_CERT_STORE = -1072824209,
    // ERROR_CANNOT_CREATE_CERT_STORE = -1072824209, this enum value conflicts with ERROR_CANT_CREATE_CERT_STORE
    ERROR_CANT_OPEN_CERT_STORE = -1072824208,
    // ERROR_CANNOT_OPEN_CERT_STORE = -1072824208, this enum value conflicts with ERROR_CANT_OPEN_CERT_STORE
    ERROR_ILLEGAL_ENTERPRISE_OPERATION = -1072824207,
    ERROR_CANNOT_GRANT_ADD_GUID = -1072824206,
    ERROR_CANNOT_LOAD_MSMQOCM = -1072824205,
    ERROR_NO_ENTRY_POINT_MSMQOCM = -1072824204,
    ERROR_NO_MSMQ_SERVERS_ON_DC = -1072824203,
    ERROR_CANNOT_JOIN_DOMAIN = -1072824202,
    ERROR_CANNOT_CREATE_ON_GC = -1072824201,
    ERROR_GUID_NOT_MATCHING = -1072824200,
    ERROR_PUBLIC_KEY_NOT_FOUND = -1072824199,
    ERROR_PUBLIC_KEY_DOES_NOT_EXIST = -1072824198,
    ERROR_ILLEGAL_MQPRIVATEPROPS = -1072824197,
    ERROR_NO_GC_IN_DOMAIN = -1072824196,
    ERROR_NO_MSMQ_SERVERS_ON_GC = -1072824195,
    ERROR_CANNOT_GET_DN = -1072824194,
    ERROR_CANNOT_HASH_DATA_EX = -1072824193,
    ERROR_CANNOT_SIGN_DATA_EX = -1072824192,
    ERROR_CANNOT_CREATE_HASH_EX = -1072824191,
    ERROR_FAIL_VERIFY_SIGNATURE_EX = -1072824190,
    ERROR_CANNOT_DELETE_PSC_OBJECTS = -1072824189,
    ERROR_NO_MQUSER_OU = -1072824188,
    ERROR_CANNOT_LOAD_MQAD = -1072824187,
    ERROR_CANNOT_LOAD_MQDSSRV = -1072824186,
    ERROR_PROPERTIES_CONFLICT = -1072824185,
    ERROR_MESSAGE_NOT_FOUND = -1072824184,
    ERROR_CANT_RESOLVE_SITES = -1072824183,
    ERROR_NOT_SUPPORTED_BY_DEPENDENT_CLIENTS = -1072824182,
    ERROR_OPERATION_NOT_SUPPORTED_BY_REMOTE_COMPUTER = -1072824181,
    ERROR_NOT_A_CORRECT_OBJECT_CLASS = -1072824180,
    ERROR_MULTI_SORT_KEYS = -1072824179,
    ERROR_GC_NEEDED = -1072824178,
    ERROR_DS_BIND_ROOT_FOREST = -1072824177,
    ERROR_DS_LOCAL_USER = -1072824176,
    ERROR_Q_ADS_PROPERTY_NOT_SUPPORTED = -1072824175,
    ERROR_BAD_XML_FORMAT = -1072824174,
    ERROR_UNSUPPORTED_CLASS = -1072824173,
    ERROR_UNINITIALIZED_OBJECT = -1072824172,
    ERROR_CANNOT_CREATE_PSC_OBJECTS = -1072824171,
    ERROR_CANNOT_UPDATE_PSC_OBJECTS = -1072824170,
};
pub const MQ_ERROR = MQERROR.ERROR;
pub const MQ_ERROR_PROPERTY = MQERROR.ERROR_PROPERTY;
pub const MQ_ERROR_QUEUE_NOT_FOUND = MQERROR.ERROR_QUEUE_NOT_FOUND;
pub const MQ_ERROR_QUEUE_NOT_ACTIVE = MQERROR.ERROR_QUEUE_NOT_ACTIVE;
pub const MQ_ERROR_QUEUE_EXISTS = MQERROR.ERROR_QUEUE_EXISTS;
pub const MQ_ERROR_INVALID_PARAMETER = MQERROR.ERROR_INVALID_PARAMETER;
pub const MQ_ERROR_INVALID_HANDLE = MQERROR.ERROR_INVALID_HANDLE;
pub const MQ_ERROR_OPERATION_CANCELLED = MQERROR.ERROR_OPERATION_CANCELLED;
pub const MQ_ERROR_SHARING_VIOLATION = MQERROR.ERROR_SHARING_VIOLATION;
pub const MQ_ERROR_SERVICE_NOT_AVAILABLE = MQERROR.ERROR_SERVICE_NOT_AVAILABLE;
pub const MQ_ERROR_MACHINE_NOT_FOUND = MQERROR.ERROR_MACHINE_NOT_FOUND;
pub const MQ_ERROR_ILLEGAL_SORT = MQERROR.ERROR_ILLEGAL_SORT;
pub const MQ_ERROR_ILLEGAL_USER = MQERROR.ERROR_ILLEGAL_USER;
pub const MQ_ERROR_NO_DS = MQERROR.ERROR_NO_DS;
pub const MQ_ERROR_ILLEGAL_QUEUE_PATHNAME = MQERROR.ERROR_ILLEGAL_QUEUE_PATHNAME;
pub const MQ_ERROR_ILLEGAL_PROPERTY_VALUE = MQERROR.ERROR_ILLEGAL_PROPERTY_VALUE;
pub const MQ_ERROR_ILLEGAL_PROPERTY_VT = MQERROR.ERROR_ILLEGAL_PROPERTY_VT;
pub const MQ_ERROR_BUFFER_OVERFLOW = MQERROR.ERROR_BUFFER_OVERFLOW;
pub const MQ_ERROR_IO_TIMEOUT = MQERROR.ERROR_IO_TIMEOUT;
pub const MQ_ERROR_ILLEGAL_CURSOR_ACTION = MQERROR.ERROR_ILLEGAL_CURSOR_ACTION;
pub const MQ_ERROR_MESSAGE_ALREADY_RECEIVED = MQERROR.ERROR_MESSAGE_ALREADY_RECEIVED;
pub const MQ_ERROR_ILLEGAL_FORMATNAME = MQERROR.ERROR_ILLEGAL_FORMATNAME;
pub const MQ_ERROR_FORMATNAME_BUFFER_TOO_SMALL = MQERROR.ERROR_FORMATNAME_BUFFER_TOO_SMALL;
pub const MQ_ERROR_UNSUPPORTED_FORMATNAME_OPERATION = MQERROR.ERROR_UNSUPPORTED_FORMATNAME_OPERATION;
pub const MQ_ERROR_ILLEGAL_SECURITY_DESCRIPTOR = MQERROR.ERROR_ILLEGAL_SECURITY_DESCRIPTOR;
pub const MQ_ERROR_SENDERID_BUFFER_TOO_SMALL = MQERROR.ERROR_SENDERID_BUFFER_TOO_SMALL;
pub const MQ_ERROR_SECURITY_DESCRIPTOR_TOO_SMALL = MQERROR.ERROR_SECURITY_DESCRIPTOR_TOO_SMALL;
pub const MQ_ERROR_CANNOT_IMPERSONATE_CLIENT = MQERROR.ERROR_CANNOT_IMPERSONATE_CLIENT;
pub const MQ_ERROR_ACCESS_DENIED = MQERROR.ERROR_ACCESS_DENIED;
pub const MQ_ERROR_PRIVILEGE_NOT_HELD = MQERROR.ERROR_PRIVILEGE_NOT_HELD;
pub const MQ_ERROR_INSUFFICIENT_RESOURCES = MQERROR.ERROR_INSUFFICIENT_RESOURCES;
pub const MQ_ERROR_USER_BUFFER_TOO_SMALL = MQERROR.ERROR_USER_BUFFER_TOO_SMALL;
pub const MQ_ERROR_MESSAGE_STORAGE_FAILED = MQERROR.ERROR_MESSAGE_STORAGE_FAILED;
pub const MQ_ERROR_SENDER_CERT_BUFFER_TOO_SMALL = MQERROR.ERROR_SENDER_CERT_BUFFER_TOO_SMALL;
pub const MQ_ERROR_INVALID_CERTIFICATE = MQERROR.ERROR_INVALID_CERTIFICATE;
pub const MQ_ERROR_CORRUPTED_INTERNAL_CERTIFICATE = MQERROR.ERROR_CORRUPTED_INTERNAL_CERTIFICATE;
pub const MQ_ERROR_INTERNAL_USER_CERT_EXIST = MQERROR.ERROR_INTERNAL_USER_CERT_EXIST;
pub const MQ_ERROR_NO_INTERNAL_USER_CERT = MQERROR.ERROR_NO_INTERNAL_USER_CERT;
pub const MQ_ERROR_CORRUPTED_SECURITY_DATA = MQERROR.ERROR_CORRUPTED_SECURITY_DATA;
pub const MQ_ERROR_CORRUPTED_PERSONAL_CERT_STORE = MQERROR.ERROR_CORRUPTED_PERSONAL_CERT_STORE;
pub const MQ_ERROR_COMPUTER_DOES_NOT_SUPPORT_ENCRYPTION = MQERROR.ERROR_COMPUTER_DOES_NOT_SUPPORT_ENCRYPTION;
pub const MQ_ERROR_BAD_SECURITY_CONTEXT = MQERROR.ERROR_BAD_SECURITY_CONTEXT;
pub const MQ_ERROR_COULD_NOT_GET_USER_SID = MQERROR.ERROR_COULD_NOT_GET_USER_SID;
pub const MQ_ERROR_COULD_NOT_GET_ACCOUNT_INFO = MQERROR.ERROR_COULD_NOT_GET_ACCOUNT_INFO;
pub const MQ_ERROR_ILLEGAL_MQCOLUMNS = MQERROR.ERROR_ILLEGAL_MQCOLUMNS;
pub const MQ_ERROR_ILLEGAL_PROPID = MQERROR.ERROR_ILLEGAL_PROPID;
pub const MQ_ERROR_ILLEGAL_RELATION = MQERROR.ERROR_ILLEGAL_RELATION;
pub const MQ_ERROR_ILLEGAL_PROPERTY_SIZE = MQERROR.ERROR_ILLEGAL_PROPERTY_SIZE;
pub const MQ_ERROR_ILLEGAL_RESTRICTION_PROPID = MQERROR.ERROR_ILLEGAL_RESTRICTION_PROPID;
pub const MQ_ERROR_ILLEGAL_MQQUEUEPROPS = MQERROR.ERROR_ILLEGAL_MQQUEUEPROPS;
pub const MQ_ERROR_PROPERTY_NOTALLOWED = MQERROR.ERROR_PROPERTY_NOTALLOWED;
pub const MQ_ERROR_INSUFFICIENT_PROPERTIES = MQERROR.ERROR_INSUFFICIENT_PROPERTIES;
pub const MQ_ERROR_MACHINE_EXISTS = MQERROR.ERROR_MACHINE_EXISTS;
pub const MQ_ERROR_ILLEGAL_MQQMPROPS = MQERROR.ERROR_ILLEGAL_MQQMPROPS;
pub const MQ_ERROR_DS_IS_FULL = MQERROR.ERROR_DS_IS_FULL;
pub const MQ_ERROR_DS_ERROR = MQERROR.ERROR_DS_ERROR;
pub const MQ_ERROR_INVALID_OWNER = MQERROR.ERROR_INVALID_OWNER;
pub const MQ_ERROR_UNSUPPORTED_ACCESS_MODE = MQERROR.ERROR_UNSUPPORTED_ACCESS_MODE;
pub const MQ_ERROR_RESULT_BUFFER_TOO_SMALL = MQERROR.ERROR_RESULT_BUFFER_TOO_SMALL;
pub const MQ_ERROR_DELETE_CN_IN_USE = MQERROR.ERROR_DELETE_CN_IN_USE;
pub const MQ_ERROR_NO_RESPONSE_FROM_OBJECT_SERVER = MQERROR.ERROR_NO_RESPONSE_FROM_OBJECT_SERVER;
pub const MQ_ERROR_OBJECT_SERVER_NOT_AVAILABLE = MQERROR.ERROR_OBJECT_SERVER_NOT_AVAILABLE;
pub const MQ_ERROR_QUEUE_NOT_AVAILABLE = MQERROR.ERROR_QUEUE_NOT_AVAILABLE;
pub const MQ_ERROR_DTC_CONNECT = MQERROR.ERROR_DTC_CONNECT;
pub const MQ_ERROR_TRANSACTION_IMPORT = MQERROR.ERROR_TRANSACTION_IMPORT;
pub const MQ_ERROR_TRANSACTION_USAGE = MQERROR.ERROR_TRANSACTION_USAGE;
pub const MQ_ERROR_TRANSACTION_SEQUENCE = MQERROR.ERROR_TRANSACTION_SEQUENCE;
pub const MQ_ERROR_MISSING_CONNECTOR_TYPE = MQERROR.ERROR_MISSING_CONNECTOR_TYPE;
pub const MQ_ERROR_STALE_HANDLE = MQERROR.ERROR_STALE_HANDLE;
pub const MQ_ERROR_TRANSACTION_ENLIST = MQERROR.ERROR_TRANSACTION_ENLIST;
pub const MQ_ERROR_QUEUE_DELETED = MQERROR.ERROR_QUEUE_DELETED;
pub const MQ_ERROR_ILLEGAL_CONTEXT = MQERROR.ERROR_ILLEGAL_CONTEXT;
pub const MQ_ERROR_ILLEGAL_SORT_PROPID = MQERROR.ERROR_ILLEGAL_SORT_PROPID;
pub const MQ_ERROR_LABEL_TOO_LONG = MQERROR.ERROR_LABEL_TOO_LONG;
pub const MQ_ERROR_LABEL_BUFFER_TOO_SMALL = MQERROR.ERROR_LABEL_BUFFER_TOO_SMALL;
pub const MQ_ERROR_MQIS_SERVER_EMPTY = MQERROR.ERROR_MQIS_SERVER_EMPTY;
pub const MQ_ERROR_MQIS_READONLY_MODE = MQERROR.ERROR_MQIS_READONLY_MODE;
pub const MQ_ERROR_SYMM_KEY_BUFFER_TOO_SMALL = MQERROR.ERROR_SYMM_KEY_BUFFER_TOO_SMALL;
pub const MQ_ERROR_SIGNATURE_BUFFER_TOO_SMALL = MQERROR.ERROR_SIGNATURE_BUFFER_TOO_SMALL;
pub const MQ_ERROR_PROV_NAME_BUFFER_TOO_SMALL = MQERROR.ERROR_PROV_NAME_BUFFER_TOO_SMALL;
pub const MQ_ERROR_ILLEGAL_OPERATION = MQERROR.ERROR_ILLEGAL_OPERATION;
pub const MQ_ERROR_WRITE_NOT_ALLOWED = MQERROR.ERROR_WRITE_NOT_ALLOWED;
pub const MQ_ERROR_WKS_CANT_SERVE_CLIENT = MQERROR.ERROR_WKS_CANT_SERVE_CLIENT;
pub const MQ_ERROR_DEPEND_WKS_LICENSE_OVERFLOW = MQERROR.ERROR_DEPEND_WKS_LICENSE_OVERFLOW;
pub const MQ_CORRUPTED_QUEUE_WAS_DELETED = MQERROR.CORRUPTED_QUEUE_WAS_DELETED;
pub const MQ_ERROR_REMOTE_MACHINE_NOT_AVAILABLE = MQERROR.ERROR_REMOTE_MACHINE_NOT_AVAILABLE;
pub const MQ_ERROR_UNSUPPORTED_OPERATION = MQERROR.ERROR_UNSUPPORTED_OPERATION;
pub const MQ_ERROR_ENCRYPTION_PROVIDER_NOT_SUPPORTED = MQERROR.ERROR_ENCRYPTION_PROVIDER_NOT_SUPPORTED;
pub const MQ_ERROR_CANNOT_SET_CRYPTO_SEC_DESCR = MQERROR.ERROR_CANNOT_SET_CRYPTO_SEC_DESCR;
pub const MQ_ERROR_CERTIFICATE_NOT_PROVIDED = MQERROR.ERROR_CERTIFICATE_NOT_PROVIDED;
pub const MQ_ERROR_Q_DNS_PROPERTY_NOT_SUPPORTED = MQERROR.ERROR_Q_DNS_PROPERTY_NOT_SUPPORTED;
pub const MQ_ERROR_CANT_CREATE_CERT_STORE = MQERROR.ERROR_CANT_CREATE_CERT_STORE;
pub const MQ_ERROR_CANNOT_CREATE_CERT_STORE = MQERROR.ERROR_CANT_CREATE_CERT_STORE;
pub const MQ_ERROR_CANT_OPEN_CERT_STORE = MQERROR.ERROR_CANT_OPEN_CERT_STORE;
pub const MQ_ERROR_CANNOT_OPEN_CERT_STORE = MQERROR.ERROR_CANT_OPEN_CERT_STORE;
pub const MQ_ERROR_ILLEGAL_ENTERPRISE_OPERATION = MQERROR.ERROR_ILLEGAL_ENTERPRISE_OPERATION;
pub const MQ_ERROR_CANNOT_GRANT_ADD_GUID = MQERROR.ERROR_CANNOT_GRANT_ADD_GUID;
pub const MQ_ERROR_CANNOT_LOAD_MSMQOCM = MQERROR.ERROR_CANNOT_LOAD_MSMQOCM;
pub const MQ_ERROR_NO_ENTRY_POINT_MSMQOCM = MQERROR.ERROR_NO_ENTRY_POINT_MSMQOCM;
pub const MQ_ERROR_NO_MSMQ_SERVERS_ON_DC = MQERROR.ERROR_NO_MSMQ_SERVERS_ON_DC;
pub const MQ_ERROR_CANNOT_JOIN_DOMAIN = MQERROR.ERROR_CANNOT_JOIN_DOMAIN;
pub const MQ_ERROR_CANNOT_CREATE_ON_GC = MQERROR.ERROR_CANNOT_CREATE_ON_GC;
pub const MQ_ERROR_GUID_NOT_MATCHING = MQERROR.ERROR_GUID_NOT_MATCHING;
pub const MQ_ERROR_PUBLIC_KEY_NOT_FOUND = MQERROR.ERROR_PUBLIC_KEY_NOT_FOUND;
pub const MQ_ERROR_PUBLIC_KEY_DOES_NOT_EXIST = MQERROR.ERROR_PUBLIC_KEY_DOES_NOT_EXIST;
pub const MQ_ERROR_ILLEGAL_MQPRIVATEPROPS = MQERROR.ERROR_ILLEGAL_MQPRIVATEPROPS;
pub const MQ_ERROR_NO_GC_IN_DOMAIN = MQERROR.ERROR_NO_GC_IN_DOMAIN;
pub const MQ_ERROR_NO_MSMQ_SERVERS_ON_GC = MQERROR.ERROR_NO_MSMQ_SERVERS_ON_GC;
pub const MQ_ERROR_CANNOT_GET_DN = MQERROR.ERROR_CANNOT_GET_DN;
pub const MQ_ERROR_CANNOT_HASH_DATA_EX = MQERROR.ERROR_CANNOT_HASH_DATA_EX;
pub const MQ_ERROR_CANNOT_SIGN_DATA_EX = MQERROR.ERROR_CANNOT_SIGN_DATA_EX;
pub const MQ_ERROR_CANNOT_CREATE_HASH_EX = MQERROR.ERROR_CANNOT_CREATE_HASH_EX;
pub const MQ_ERROR_FAIL_VERIFY_SIGNATURE_EX = MQERROR.ERROR_FAIL_VERIFY_SIGNATURE_EX;
pub const MQ_ERROR_CANNOT_DELETE_PSC_OBJECTS = MQERROR.ERROR_CANNOT_DELETE_PSC_OBJECTS;
pub const MQ_ERROR_NO_MQUSER_OU = MQERROR.ERROR_NO_MQUSER_OU;
pub const MQ_ERROR_CANNOT_LOAD_MQAD = MQERROR.ERROR_CANNOT_LOAD_MQAD;
pub const MQ_ERROR_CANNOT_LOAD_MQDSSRV = MQERROR.ERROR_CANNOT_LOAD_MQDSSRV;
pub const MQ_ERROR_PROPERTIES_CONFLICT = MQERROR.ERROR_PROPERTIES_CONFLICT;
pub const MQ_ERROR_MESSAGE_NOT_FOUND = MQERROR.ERROR_MESSAGE_NOT_FOUND;
pub const MQ_ERROR_CANT_RESOLVE_SITES = MQERROR.ERROR_CANT_RESOLVE_SITES;
pub const MQ_ERROR_NOT_SUPPORTED_BY_DEPENDENT_CLIENTS = MQERROR.ERROR_NOT_SUPPORTED_BY_DEPENDENT_CLIENTS;
pub const MQ_ERROR_OPERATION_NOT_SUPPORTED_BY_REMOTE_COMPUTER = MQERROR.ERROR_OPERATION_NOT_SUPPORTED_BY_REMOTE_COMPUTER;
pub const MQ_ERROR_NOT_A_CORRECT_OBJECT_CLASS = MQERROR.ERROR_NOT_A_CORRECT_OBJECT_CLASS;
pub const MQ_ERROR_MULTI_SORT_KEYS = MQERROR.ERROR_MULTI_SORT_KEYS;
pub const MQ_ERROR_GC_NEEDED = MQERROR.ERROR_GC_NEEDED;
pub const MQ_ERROR_DS_BIND_ROOT_FOREST = MQERROR.ERROR_DS_BIND_ROOT_FOREST;
pub const MQ_ERROR_DS_LOCAL_USER = MQERROR.ERROR_DS_LOCAL_USER;
pub const MQ_ERROR_Q_ADS_PROPERTY_NOT_SUPPORTED = MQERROR.ERROR_Q_ADS_PROPERTY_NOT_SUPPORTED;
pub const MQ_ERROR_BAD_XML_FORMAT = MQERROR.ERROR_BAD_XML_FORMAT;
pub const MQ_ERROR_UNSUPPORTED_CLASS = MQERROR.ERROR_UNSUPPORTED_CLASS;
pub const MQ_ERROR_UNINITIALIZED_OBJECT = MQERROR.ERROR_UNINITIALIZED_OBJECT;
pub const MQ_ERROR_CANNOT_CREATE_PSC_OBJECTS = MQERROR.ERROR_CANNOT_CREATE_PSC_OBJECTS;
pub const MQ_ERROR_CANNOT_UPDATE_PSC_OBJECTS = MQERROR.ERROR_CANNOT_UPDATE_PSC_OBJECTS;

pub const MQWARNING = enum(i32) {
    PROPERTY = 1074659329,
    ILLEGAL_PROPERTY = 1074659330,
    PROPERTY_IGNORED = 1074659331,
    UNSUPPORTED_PROPERTY = 1074659332,
    DUPLICATE_PROPERTY = 1074659333,
    OPERATION_PENDING = 1074659334,
    FORMATNAME_BUFFER_TOO_SMALL = 1074659337,
    INTERNAL_USER_CERT_EXIST = 1074659338,
    OWNER_IGNORED = 1074659339,
};
pub const MQ_INFORMATION_PROPERTY = MQWARNING.PROPERTY;
pub const MQ_INFORMATION_ILLEGAL_PROPERTY = MQWARNING.ILLEGAL_PROPERTY;
pub const MQ_INFORMATION_PROPERTY_IGNORED = MQWARNING.PROPERTY_IGNORED;
pub const MQ_INFORMATION_UNSUPPORTED_PROPERTY = MQWARNING.UNSUPPORTED_PROPERTY;
pub const MQ_INFORMATION_DUPLICATE_PROPERTY = MQWARNING.DUPLICATE_PROPERTY;
pub const MQ_INFORMATION_OPERATION_PENDING = MQWARNING.OPERATION_PENDING;
pub const MQ_INFORMATION_FORMATNAME_BUFFER_TOO_SMALL = MQWARNING.FORMATNAME_BUFFER_TOO_SMALL;
pub const MQ_INFORMATION_INTERNAL_USER_CERT_EXIST = MQWARNING.INTERNAL_USER_CERT_EXIST;
pub const MQ_INFORMATION_OWNER_IGNORED = MQWARNING.OWNER_IGNORED;

const IID_IMSMQQuery_Value = Guid.initString("d7d6e072-dccd-11d0-aa4b-0060970debae");
pub const IID_IMSMQQuery = &IID_IMSMQQuery_Value;
pub const IMSMQQuery = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        LookupQueue: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQuery,
                QueueGuid: ?*VARIANT,
                ServiceTypeGuid: ?*VARIANT,
                Label: ?*VARIANT,
                CreateTime: ?*VARIANT,
                ModifyTime: ?*VARIANT,
                RelServiceType: ?*VARIANT,
                RelLabel: ?*VARIANT,
                RelCreateTime: ?*VARIANT,
                RelModifyTime: ?*VARIANT,
                ppqinfos: ?*?*IMSMQQueueInfos,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQuery,
                QueueGuid: ?*VARIANT,
                ServiceTypeGuid: ?*VARIANT,
                Label: ?*VARIANT,
                CreateTime: ?*VARIANT,
                ModifyTime: ?*VARIANT,
                RelServiceType: ?*VARIANT,
                RelLabel: ?*VARIANT,
                RelCreateTime: ?*VARIANT,
                RelModifyTime: ?*VARIANT,
                ppqinfos: ?*?*IMSMQQueueInfos,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQuery_LookupQueue(self: *const T, QueueGuid: ?*VARIANT, ServiceTypeGuid: ?*VARIANT, Label: ?*VARIANT, CreateTime: ?*VARIANT, ModifyTime: ?*VARIANT, RelServiceType: ?*VARIANT, RelLabel: ?*VARIANT, RelCreateTime: ?*VARIANT, RelModifyTime: ?*VARIANT, ppqinfos: ?*?*IMSMQQueueInfos) HRESULT {
                return @as(*const IMSMQQuery.VTable, @ptrCast(self.vtable)).LookupQueue(@as(*const IMSMQQuery, @ptrCast(self)), QueueGuid, ServiceTypeGuid, Label, CreateTime, ModifyTime, RelServiceType, RelLabel, RelCreateTime, RelModifyTime, ppqinfos);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQueueInfo_Value = Guid.initString("d7d6e07b-dccd-11d0-aa4b-0060970debae");
pub const IID_IMSMQQueueInfo = &IID_IMSMQQueueInfo_Value;
pub const IMSMQQueueInfo = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_QueueGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                pbstrGuidQueue: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                pbstrGuidQueue: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ServiceTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                pbstrGuidServiceType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                pbstrGuidServiceType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_ServiceTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                bstrGuidServiceType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                bstrGuidServiceType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PathName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                pbstrPathName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                pbstrPathName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_PathName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                bstrPathName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                bstrPathName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_FormatName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                pbstrFormatName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                pbstrFormatName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_FormatName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                bstrFormatName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                bstrFormatName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsTransactional: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                pisTransactional: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                pisTransactional: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Quota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                plQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                plQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Quota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                lQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                lQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_BasePriority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                plBasePriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                plBasePriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_BasePriority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                lBasePriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                lBasePriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_CreateTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                pvarCreateTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                pvarCreateTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ModifyTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                pvarModifyTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                pvarModifyTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Authenticate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                plAuthenticate: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                plAuthenticate: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Authenticate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                lAuthenticate: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                lAuthenticate: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_JournalQuota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                plJournalQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                plJournalQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_JournalQuota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                lJournalQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                lJournalQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsWorldReadable: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                pisWorldReadable: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo,
                pisWorldReadable: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Create: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                IsTransactional: ?*VARIANT,
                IsWorldReadable: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo,
                IsTransactional: ?*VARIANT,
                IsWorldReadable: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Delete: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Open: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
                Access: i32,
                ShareMode: i32,
                ppq: ?*?*IMSMQQueue,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo,
                Access: i32,
                ShareMode: i32,
                ppq: ?*?*IMSMQQueue,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Refresh: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Update: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_QueueGuid(self: *const T, pbstrGuidQueue: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_QueueGuid(@as(*const IMSMQQueueInfo, @ptrCast(self)), pbstrGuidQueue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_ServiceTypeGuid(self: *const T, pbstrGuidServiceType: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_ServiceTypeGuid(@as(*const IMSMQQueueInfo, @ptrCast(self)), pbstrGuidServiceType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_put_ServiceTypeGuid(self: *const T, bstrGuidServiceType: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).put_ServiceTypeGuid(@as(*const IMSMQQueueInfo, @ptrCast(self)), bstrGuidServiceType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_Label(self: *const T, pbstrLabel: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_Label(@as(*const IMSMQQueueInfo, @ptrCast(self)), pbstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_put_Label(self: *const T, bstrLabel: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).put_Label(@as(*const IMSMQQueueInfo, @ptrCast(self)), bstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_PathName(self: *const T, pbstrPathName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_PathName(@as(*const IMSMQQueueInfo, @ptrCast(self)), pbstrPathName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_put_PathName(self: *const T, bstrPathName: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).put_PathName(@as(*const IMSMQQueueInfo, @ptrCast(self)), bstrPathName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_FormatName(self: *const T, pbstrFormatName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_FormatName(@as(*const IMSMQQueueInfo, @ptrCast(self)), pbstrFormatName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_put_FormatName(self: *const T, bstrFormatName: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).put_FormatName(@as(*const IMSMQQueueInfo, @ptrCast(self)), bstrFormatName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_IsTransactional(self: *const T, pisTransactional: ?*i16) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_IsTransactional(@as(*const IMSMQQueueInfo, @ptrCast(self)), pisTransactional);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_PrivLevel(self: *const T, plPrivLevel: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_PrivLevel(@as(*const IMSMQQueueInfo, @ptrCast(self)), plPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_put_PrivLevel(self: *const T, lPrivLevel: i32) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).put_PrivLevel(@as(*const IMSMQQueueInfo, @ptrCast(self)), lPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_Journal(self: *const T, plJournal: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_Journal(@as(*const IMSMQQueueInfo, @ptrCast(self)), plJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_put_Journal(self: *const T, lJournal: i32) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).put_Journal(@as(*const IMSMQQueueInfo, @ptrCast(self)), lJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_Quota(self: *const T, plQuota: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_Quota(@as(*const IMSMQQueueInfo, @ptrCast(self)), plQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_put_Quota(self: *const T, lQuota: i32) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).put_Quota(@as(*const IMSMQQueueInfo, @ptrCast(self)), lQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_BasePriority(self: *const T, plBasePriority: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_BasePriority(@as(*const IMSMQQueueInfo, @ptrCast(self)), plBasePriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_put_BasePriority(self: *const T, lBasePriority: i32) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).put_BasePriority(@as(*const IMSMQQueueInfo, @ptrCast(self)), lBasePriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_CreateTime(self: *const T, pvarCreateTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_CreateTime(@as(*const IMSMQQueueInfo, @ptrCast(self)), pvarCreateTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_ModifyTime(self: *const T, pvarModifyTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_ModifyTime(@as(*const IMSMQQueueInfo, @ptrCast(self)), pvarModifyTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_Authenticate(self: *const T, plAuthenticate: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_Authenticate(@as(*const IMSMQQueueInfo, @ptrCast(self)), plAuthenticate);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_put_Authenticate(self: *const T, lAuthenticate: i32) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).put_Authenticate(@as(*const IMSMQQueueInfo, @ptrCast(self)), lAuthenticate);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_JournalQuota(self: *const T, plJournalQuota: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_JournalQuota(@as(*const IMSMQQueueInfo, @ptrCast(self)), plJournalQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_put_JournalQuota(self: *const T, lJournalQuota: i32) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).put_JournalQuota(@as(*const IMSMQQueueInfo, @ptrCast(self)), lJournalQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_get_IsWorldReadable(self: *const T, pisWorldReadable: ?*i16) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).get_IsWorldReadable(@as(*const IMSMQQueueInfo, @ptrCast(self)), pisWorldReadable);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_Create(self: *const T, IsTransactional: ?*VARIANT, IsWorldReadable: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).Create(@as(*const IMSMQQueueInfo, @ptrCast(self)), IsTransactional, IsWorldReadable);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_Delete(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).Delete(@as(*const IMSMQQueueInfo, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_Open(self: *const T, Access: i32, ShareMode: i32, ppq: ?*?*IMSMQQueue) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).Open(@as(*const IMSMQQueueInfo, @ptrCast(self)), Access, ShareMode, ppq);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_Refresh(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).Refresh(@as(*const IMSMQQueueInfo, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo_Update(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfo.VTable, @ptrCast(self.vtable)).Update(@as(*const IMSMQQueueInfo, @ptrCast(self)));
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQueueInfo2_Value = Guid.initString("fd174a80-89cf-11d2-b0f2-00e02c074f6b");
pub const IID_IMSMQQueueInfo2 = &IID_IMSMQQueueInfo2_Value;
pub const IMSMQQueueInfo2 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_QueueGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                pbstrGuidQueue: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                pbstrGuidQueue: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ServiceTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                pbstrGuidServiceType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                pbstrGuidServiceType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_ServiceTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                bstrGuidServiceType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                bstrGuidServiceType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PathName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                pbstrPathName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                pbstrPathName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_PathName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                bstrPathName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                bstrPathName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_FormatName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                pbstrFormatName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                pbstrFormatName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_FormatName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                bstrFormatName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                bstrFormatName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsTransactional: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                pisTransactional: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                pisTransactional: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Quota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                plQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                plQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Quota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                lQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                lQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_BasePriority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                plBasePriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                plBasePriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_BasePriority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                lBasePriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                lBasePriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_CreateTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                pvarCreateTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                pvarCreateTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ModifyTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                pvarModifyTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                pvarModifyTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Authenticate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                plAuthenticate: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                plAuthenticate: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Authenticate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                lAuthenticate: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                lAuthenticate: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_JournalQuota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                plJournalQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                plJournalQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_JournalQuota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                lJournalQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                lJournalQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsWorldReadable: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                pisWorldReadable: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                pisWorldReadable: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Create: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                IsTransactional: ?*VARIANT,
                IsWorldReadable: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                IsTransactional: ?*VARIANT,
                IsWorldReadable: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Delete: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Open: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                Access: i32,
                ShareMode: i32,
                ppq: ?*?*IMSMQQueue2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                Access: i32,
                ShareMode: i32,
                ppq: ?*?*IMSMQQueue2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Refresh: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Update: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PathNameDNS: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                pbstrPathNameDNS: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                pbstrPathNameDNS: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Security: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                pvarSecurity: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                pvarSecurity: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Security: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo2,
                varSecurity: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo2,
                varSecurity: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_QueueGuid(self: *const T, pbstrGuidQueue: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_QueueGuid(@as(*const IMSMQQueueInfo2, @ptrCast(self)), pbstrGuidQueue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_ServiceTypeGuid(self: *const T, pbstrGuidServiceType: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_ServiceTypeGuid(@as(*const IMSMQQueueInfo2, @ptrCast(self)), pbstrGuidServiceType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_put_ServiceTypeGuid(self: *const T, bstrGuidServiceType: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).put_ServiceTypeGuid(@as(*const IMSMQQueueInfo2, @ptrCast(self)), bstrGuidServiceType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_Label(self: *const T, pbstrLabel: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_Label(@as(*const IMSMQQueueInfo2, @ptrCast(self)), pbstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_put_Label(self: *const T, bstrLabel: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).put_Label(@as(*const IMSMQQueueInfo2, @ptrCast(self)), bstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_PathName(self: *const T, pbstrPathName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_PathName(@as(*const IMSMQQueueInfo2, @ptrCast(self)), pbstrPathName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_put_PathName(self: *const T, bstrPathName: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).put_PathName(@as(*const IMSMQQueueInfo2, @ptrCast(self)), bstrPathName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_FormatName(self: *const T, pbstrFormatName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_FormatName(@as(*const IMSMQQueueInfo2, @ptrCast(self)), pbstrFormatName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_put_FormatName(self: *const T, bstrFormatName: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).put_FormatName(@as(*const IMSMQQueueInfo2, @ptrCast(self)), bstrFormatName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_IsTransactional(self: *const T, pisTransactional: ?*i16) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_IsTransactional(@as(*const IMSMQQueueInfo2, @ptrCast(self)), pisTransactional);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_PrivLevel(self: *const T, plPrivLevel: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_PrivLevel(@as(*const IMSMQQueueInfo2, @ptrCast(self)), plPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_put_PrivLevel(self: *const T, lPrivLevel: i32) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).put_PrivLevel(@as(*const IMSMQQueueInfo2, @ptrCast(self)), lPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_Journal(self: *const T, plJournal: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_Journal(@as(*const IMSMQQueueInfo2, @ptrCast(self)), plJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_put_Journal(self: *const T, lJournal: i32) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).put_Journal(@as(*const IMSMQQueueInfo2, @ptrCast(self)), lJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_Quota(self: *const T, plQuota: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_Quota(@as(*const IMSMQQueueInfo2, @ptrCast(self)), plQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_put_Quota(self: *const T, lQuota: i32) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).put_Quota(@as(*const IMSMQQueueInfo2, @ptrCast(self)), lQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_BasePriority(self: *const T, plBasePriority: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_BasePriority(@as(*const IMSMQQueueInfo2, @ptrCast(self)), plBasePriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_put_BasePriority(self: *const T, lBasePriority: i32) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).put_BasePriority(@as(*const IMSMQQueueInfo2, @ptrCast(self)), lBasePriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_CreateTime(self: *const T, pvarCreateTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_CreateTime(@as(*const IMSMQQueueInfo2, @ptrCast(self)), pvarCreateTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_ModifyTime(self: *const T, pvarModifyTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_ModifyTime(@as(*const IMSMQQueueInfo2, @ptrCast(self)), pvarModifyTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_Authenticate(self: *const T, plAuthenticate: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_Authenticate(@as(*const IMSMQQueueInfo2, @ptrCast(self)), plAuthenticate);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_put_Authenticate(self: *const T, lAuthenticate: i32) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).put_Authenticate(@as(*const IMSMQQueueInfo2, @ptrCast(self)), lAuthenticate);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_JournalQuota(self: *const T, plJournalQuota: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_JournalQuota(@as(*const IMSMQQueueInfo2, @ptrCast(self)), plJournalQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_put_JournalQuota(self: *const T, lJournalQuota: i32) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).put_JournalQuota(@as(*const IMSMQQueueInfo2, @ptrCast(self)), lJournalQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_IsWorldReadable(self: *const T, pisWorldReadable: ?*i16) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_IsWorldReadable(@as(*const IMSMQQueueInfo2, @ptrCast(self)), pisWorldReadable);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_Create(self: *const T, IsTransactional: ?*VARIANT, IsWorldReadable: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).Create(@as(*const IMSMQQueueInfo2, @ptrCast(self)), IsTransactional, IsWorldReadable);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_Delete(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).Delete(@as(*const IMSMQQueueInfo2, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_Open(self: *const T, Access: i32, ShareMode: i32, ppq: ?*?*IMSMQQueue2) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).Open(@as(*const IMSMQQueueInfo2, @ptrCast(self)), Access, ShareMode, ppq);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_Refresh(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).Refresh(@as(*const IMSMQQueueInfo2, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_Update(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).Update(@as(*const IMSMQQueueInfo2, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_PathNameDNS(self: *const T, pbstrPathNameDNS: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_PathNameDNS(@as(*const IMSMQQueueInfo2, @ptrCast(self)), pbstrPathNameDNS);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQQueueInfo2, @ptrCast(self)), ppcolProperties);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_get_Security(self: *const T, pvarSecurity: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).get_Security(@as(*const IMSMQQueueInfo2, @ptrCast(self)), pvarSecurity);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo2_put_Security(self: *const T, varSecurity: VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo2.VTable, @ptrCast(self.vtable)).put_Security(@as(*const IMSMQQueueInfo2, @ptrCast(self)), varSecurity);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQueueInfo3_Value = Guid.initString("eba96b1d-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQQueueInfo3 = &IID_IMSMQQueueInfo3_Value;
pub const IMSMQQueueInfo3 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_QueueGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pbstrGuidQueue: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pbstrGuidQueue: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ServiceTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pbstrGuidServiceType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pbstrGuidServiceType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_ServiceTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                bstrGuidServiceType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                bstrGuidServiceType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PathName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pbstrPathName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pbstrPathName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_PathName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                bstrPathName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                bstrPathName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_FormatName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pbstrFormatName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pbstrFormatName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_FormatName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                bstrFormatName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                bstrFormatName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsTransactional: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pisTransactional: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pisTransactional: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Quota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                plQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                plQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Quota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                lQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                lQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_BasePriority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                plBasePriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                plBasePriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_BasePriority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                lBasePriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                lBasePriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_CreateTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pvarCreateTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pvarCreateTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ModifyTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pvarModifyTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pvarModifyTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Authenticate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                plAuthenticate: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                plAuthenticate: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Authenticate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                lAuthenticate: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                lAuthenticate: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_JournalQuota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                plJournalQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                plJournalQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_JournalQuota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                lJournalQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                lJournalQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsWorldReadable: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pisWorldReadable: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pisWorldReadable: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Create: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                IsTransactional: ?*VARIANT,
                IsWorldReadable: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                IsTransactional: ?*VARIANT,
                IsWorldReadable: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Delete: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Open: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                Access: i32,
                ShareMode: i32,
                ppq: ?*?*IMSMQQueue3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                Access: i32,
                ShareMode: i32,
                ppq: ?*?*IMSMQQueue3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Refresh: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Update: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PathNameDNS: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pbstrPathNameDNS: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pbstrPathNameDNS: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Security: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pvarSecurity: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pvarSecurity: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Security: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                varSecurity: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                varSecurity: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsTransactional2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pisTransactional: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pisTransactional: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsWorldReadable2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pisWorldReadable: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pisWorldReadable: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MulticastAddress: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pbstrMulticastAddress: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pbstrMulticastAddress: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_MulticastAddress: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                bstrMulticastAddress: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                bstrMulticastAddress: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ADsPath: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo3,
                pbstrADsPath: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo3,
                pbstrADsPath: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_QueueGuid(self: *const T, pbstrGuidQueue: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_QueueGuid(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pbstrGuidQueue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_ServiceTypeGuid(self: *const T, pbstrGuidServiceType: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_ServiceTypeGuid(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pbstrGuidServiceType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_put_ServiceTypeGuid(self: *const T, bstrGuidServiceType: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).put_ServiceTypeGuid(@as(*const IMSMQQueueInfo3, @ptrCast(self)), bstrGuidServiceType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_Label(self: *const T, pbstrLabel: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_Label(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pbstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_put_Label(self: *const T, bstrLabel: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).put_Label(@as(*const IMSMQQueueInfo3, @ptrCast(self)), bstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_PathName(self: *const T, pbstrPathName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_PathName(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pbstrPathName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_put_PathName(self: *const T, bstrPathName: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).put_PathName(@as(*const IMSMQQueueInfo3, @ptrCast(self)), bstrPathName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_FormatName(self: *const T, pbstrFormatName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_FormatName(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pbstrFormatName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_put_FormatName(self: *const T, bstrFormatName: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).put_FormatName(@as(*const IMSMQQueueInfo3, @ptrCast(self)), bstrFormatName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_IsTransactional(self: *const T, pisTransactional: ?*i16) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_IsTransactional(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pisTransactional);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_PrivLevel(self: *const T, plPrivLevel: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_PrivLevel(@as(*const IMSMQQueueInfo3, @ptrCast(self)), plPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_put_PrivLevel(self: *const T, lPrivLevel: i32) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).put_PrivLevel(@as(*const IMSMQQueueInfo3, @ptrCast(self)), lPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_Journal(self: *const T, plJournal: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_Journal(@as(*const IMSMQQueueInfo3, @ptrCast(self)), plJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_put_Journal(self: *const T, lJournal: i32) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).put_Journal(@as(*const IMSMQQueueInfo3, @ptrCast(self)), lJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_Quota(self: *const T, plQuota: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_Quota(@as(*const IMSMQQueueInfo3, @ptrCast(self)), plQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_put_Quota(self: *const T, lQuota: i32) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).put_Quota(@as(*const IMSMQQueueInfo3, @ptrCast(self)), lQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_BasePriority(self: *const T, plBasePriority: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_BasePriority(@as(*const IMSMQQueueInfo3, @ptrCast(self)), plBasePriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_put_BasePriority(self: *const T, lBasePriority: i32) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).put_BasePriority(@as(*const IMSMQQueueInfo3, @ptrCast(self)), lBasePriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_CreateTime(self: *const T, pvarCreateTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_CreateTime(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pvarCreateTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_ModifyTime(self: *const T, pvarModifyTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_ModifyTime(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pvarModifyTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_Authenticate(self: *const T, plAuthenticate: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_Authenticate(@as(*const IMSMQQueueInfo3, @ptrCast(self)), plAuthenticate);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_put_Authenticate(self: *const T, lAuthenticate: i32) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).put_Authenticate(@as(*const IMSMQQueueInfo3, @ptrCast(self)), lAuthenticate);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_JournalQuota(self: *const T, plJournalQuota: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_JournalQuota(@as(*const IMSMQQueueInfo3, @ptrCast(self)), plJournalQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_put_JournalQuota(self: *const T, lJournalQuota: i32) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).put_JournalQuota(@as(*const IMSMQQueueInfo3, @ptrCast(self)), lJournalQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_IsWorldReadable(self: *const T, pisWorldReadable: ?*i16) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_IsWorldReadable(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pisWorldReadable);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_Create(self: *const T, IsTransactional: ?*VARIANT, IsWorldReadable: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).Create(@as(*const IMSMQQueueInfo3, @ptrCast(self)), IsTransactional, IsWorldReadable);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_Delete(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).Delete(@as(*const IMSMQQueueInfo3, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_Open(self: *const T, Access: i32, ShareMode: i32, ppq: ?*?*IMSMQQueue3) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).Open(@as(*const IMSMQQueueInfo3, @ptrCast(self)), Access, ShareMode, ppq);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_Refresh(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).Refresh(@as(*const IMSMQQueueInfo3, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_Update(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).Update(@as(*const IMSMQQueueInfo3, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_PathNameDNS(self: *const T, pbstrPathNameDNS: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_PathNameDNS(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pbstrPathNameDNS);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQQueueInfo3, @ptrCast(self)), ppcolProperties);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_Security(self: *const T, pvarSecurity: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_Security(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pvarSecurity);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_put_Security(self: *const T, varSecurity: VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).put_Security(@as(*const IMSMQQueueInfo3, @ptrCast(self)), varSecurity);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_IsTransactional2(self: *const T, pisTransactional: ?*i16) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_IsTransactional2(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pisTransactional);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_IsWorldReadable2(self: *const T, pisWorldReadable: ?*i16) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_IsWorldReadable2(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pisWorldReadable);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_MulticastAddress(self: *const T, pbstrMulticastAddress: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_MulticastAddress(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pbstrMulticastAddress);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_put_MulticastAddress(self: *const T, bstrMulticastAddress: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).put_MulticastAddress(@as(*const IMSMQQueueInfo3, @ptrCast(self)), bstrMulticastAddress);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo3_get_ADsPath(self: *const T, pbstrADsPath: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo3.VTable, @ptrCast(self.vtable)).get_ADsPath(@as(*const IMSMQQueueInfo3, @ptrCast(self)), pbstrADsPath);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQueueInfo4_Value = Guid.initString("eba96b21-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQQueueInfo4 = &IID_IMSMQQueueInfo4_Value;
pub const IMSMQQueueInfo4 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_QueueGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pbstrGuidQueue: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pbstrGuidQueue: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ServiceTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pbstrGuidServiceType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pbstrGuidServiceType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_ServiceTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                bstrGuidServiceType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                bstrGuidServiceType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PathName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pbstrPathName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pbstrPathName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_PathName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                bstrPathName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                bstrPathName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_FormatName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pbstrFormatName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pbstrFormatName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_FormatName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                bstrFormatName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                bstrFormatName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsTransactional: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pisTransactional: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pisTransactional: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Quota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                plQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                plQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Quota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                lQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                lQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_BasePriority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                plBasePriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                plBasePriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_BasePriority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                lBasePriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                lBasePriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_CreateTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pvarCreateTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pvarCreateTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ModifyTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pvarModifyTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pvarModifyTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Authenticate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                plAuthenticate: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                plAuthenticate: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Authenticate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                lAuthenticate: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                lAuthenticate: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_JournalQuota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                plJournalQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                plJournalQuota: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_JournalQuota: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                lJournalQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                lJournalQuota: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsWorldReadable: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pisWorldReadable: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pisWorldReadable: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Create: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                IsTransactional: ?*VARIANT,
                IsWorldReadable: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                IsTransactional: ?*VARIANT,
                IsWorldReadable: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Delete: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Open: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                Access: i32,
                ShareMode: i32,
                ppq: ?*?*IMSMQQueue4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                Access: i32,
                ShareMode: i32,
                ppq: ?*?*IMSMQQueue4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Refresh: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Update: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PathNameDNS: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pbstrPathNameDNS: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pbstrPathNameDNS: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Security: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pvarSecurity: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pvarSecurity: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Security: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                varSecurity: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                varSecurity: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsTransactional2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pisTransactional: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pisTransactional: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsWorldReadable2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pisWorldReadable: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pisWorldReadable: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MulticastAddress: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pbstrMulticastAddress: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pbstrMulticastAddress: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_MulticastAddress: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                bstrMulticastAddress: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                bstrMulticastAddress: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ADsPath: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfo4,
                pbstrADsPath: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfo4,
                pbstrADsPath: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_QueueGuid(self: *const T, pbstrGuidQueue: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_QueueGuid(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pbstrGuidQueue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_ServiceTypeGuid(self: *const T, pbstrGuidServiceType: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_ServiceTypeGuid(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pbstrGuidServiceType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_put_ServiceTypeGuid(self: *const T, bstrGuidServiceType: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).put_ServiceTypeGuid(@as(*const IMSMQQueueInfo4, @ptrCast(self)), bstrGuidServiceType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_Label(self: *const T, pbstrLabel: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_Label(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pbstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_put_Label(self: *const T, bstrLabel: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).put_Label(@as(*const IMSMQQueueInfo4, @ptrCast(self)), bstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_PathName(self: *const T, pbstrPathName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_PathName(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pbstrPathName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_put_PathName(self: *const T, bstrPathName: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).put_PathName(@as(*const IMSMQQueueInfo4, @ptrCast(self)), bstrPathName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_FormatName(self: *const T, pbstrFormatName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_FormatName(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pbstrFormatName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_put_FormatName(self: *const T, bstrFormatName: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).put_FormatName(@as(*const IMSMQQueueInfo4, @ptrCast(self)), bstrFormatName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_IsTransactional(self: *const T, pisTransactional: ?*i16) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_IsTransactional(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pisTransactional);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_PrivLevel(self: *const T, plPrivLevel: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_PrivLevel(@as(*const IMSMQQueueInfo4, @ptrCast(self)), plPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_put_PrivLevel(self: *const T, lPrivLevel: i32) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).put_PrivLevel(@as(*const IMSMQQueueInfo4, @ptrCast(self)), lPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_Journal(self: *const T, plJournal: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_Journal(@as(*const IMSMQQueueInfo4, @ptrCast(self)), plJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_put_Journal(self: *const T, lJournal: i32) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).put_Journal(@as(*const IMSMQQueueInfo4, @ptrCast(self)), lJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_Quota(self: *const T, plQuota: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_Quota(@as(*const IMSMQQueueInfo4, @ptrCast(self)), plQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_put_Quota(self: *const T, lQuota: i32) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).put_Quota(@as(*const IMSMQQueueInfo4, @ptrCast(self)), lQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_BasePriority(self: *const T, plBasePriority: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_BasePriority(@as(*const IMSMQQueueInfo4, @ptrCast(self)), plBasePriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_put_BasePriority(self: *const T, lBasePriority: i32) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).put_BasePriority(@as(*const IMSMQQueueInfo4, @ptrCast(self)), lBasePriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_CreateTime(self: *const T, pvarCreateTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_CreateTime(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pvarCreateTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_ModifyTime(self: *const T, pvarModifyTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_ModifyTime(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pvarModifyTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_Authenticate(self: *const T, plAuthenticate: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_Authenticate(@as(*const IMSMQQueueInfo4, @ptrCast(self)), plAuthenticate);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_put_Authenticate(self: *const T, lAuthenticate: i32) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).put_Authenticate(@as(*const IMSMQQueueInfo4, @ptrCast(self)), lAuthenticate);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_JournalQuota(self: *const T, plJournalQuota: ?*i32) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_JournalQuota(@as(*const IMSMQQueueInfo4, @ptrCast(self)), plJournalQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_put_JournalQuota(self: *const T, lJournalQuota: i32) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).put_JournalQuota(@as(*const IMSMQQueueInfo4, @ptrCast(self)), lJournalQuota);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_IsWorldReadable(self: *const T, pisWorldReadable: ?*i16) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_IsWorldReadable(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pisWorldReadable);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_Create(self: *const T, IsTransactional: ?*VARIANT, IsWorldReadable: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).Create(@as(*const IMSMQQueueInfo4, @ptrCast(self)), IsTransactional, IsWorldReadable);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_Delete(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).Delete(@as(*const IMSMQQueueInfo4, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_Open(self: *const T, Access: i32, ShareMode: i32, ppq: ?*?*IMSMQQueue4) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).Open(@as(*const IMSMQQueueInfo4, @ptrCast(self)), Access, ShareMode, ppq);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_Refresh(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).Refresh(@as(*const IMSMQQueueInfo4, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_Update(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).Update(@as(*const IMSMQQueueInfo4, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_PathNameDNS(self: *const T, pbstrPathNameDNS: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_PathNameDNS(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pbstrPathNameDNS);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQQueueInfo4, @ptrCast(self)), ppcolProperties);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_Security(self: *const T, pvarSecurity: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_Security(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pvarSecurity);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_put_Security(self: *const T, varSecurity: VARIANT) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).put_Security(@as(*const IMSMQQueueInfo4, @ptrCast(self)), varSecurity);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_IsTransactional2(self: *const T, pisTransactional: ?*i16) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_IsTransactional2(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pisTransactional);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_IsWorldReadable2(self: *const T, pisWorldReadable: ?*i16) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_IsWorldReadable2(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pisWorldReadable);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_MulticastAddress(self: *const T, pbstrMulticastAddress: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_MulticastAddress(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pbstrMulticastAddress);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_put_MulticastAddress(self: *const T, bstrMulticastAddress: ?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).put_MulticastAddress(@as(*const IMSMQQueueInfo4, @ptrCast(self)), bstrMulticastAddress);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfo4_get_ADsPath(self: *const T, pbstrADsPath: ?*?BSTR) HRESULT {
                return @as(*const IMSMQQueueInfo4.VTable, @ptrCast(self.vtable)).get_ADsPath(@as(*const IMSMQQueueInfo4, @ptrCast(self)), pbstrADsPath);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQueue_Value = Guid.initString("d7d6e076-dccd-11d0-aa4b-0060970debae");
pub const IID_IMSMQQueue = &IID_IMSMQQueue_Value;
pub const IMSMQQueue = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Access: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue,
                plAccess: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue,
                plAccess: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ShareMode: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue,
                plShareMode: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue,
                plShareMode: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_QueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue,
                ppqinfo: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue,
                ppqinfo: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Handle: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue,
                plHandle: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue,
                plHandle: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsOpen: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue,
                pisOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue,
                pisOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Close: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Receive: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Peek: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        EnableNotification: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue,
                Event: ?*IMSMQEvent,
                Cursor: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue,
                Event: ?*IMSMQEvent,
                Cursor: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Reset: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveCurrent: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekNext: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekCurrent: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue_get_Access(self: *const T, plAccess: ?*i32) HRESULT {
                return @as(*const IMSMQQueue.VTable, @ptrCast(self.vtable)).get_Access(@as(*const IMSMQQueue, @ptrCast(self)), plAccess);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue_get_ShareMode(self: *const T, plShareMode: ?*i32) HRESULT {
                return @as(*const IMSMQQueue.VTable, @ptrCast(self.vtable)).get_ShareMode(@as(*const IMSMQQueue, @ptrCast(self)), plShareMode);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue_get_QueueInfo(self: *const T, ppqinfo: ?*?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQQueue.VTable, @ptrCast(self.vtable)).get_QueueInfo(@as(*const IMSMQQueue, @ptrCast(self)), ppqinfo);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue_get_Handle(self: *const T, plHandle: ?*i32) HRESULT {
                return @as(*const IMSMQQueue.VTable, @ptrCast(self.vtable)).get_Handle(@as(*const IMSMQQueue, @ptrCast(self)), plHandle);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue_get_IsOpen(self: *const T, pisOpen: ?*i16) HRESULT {
                return @as(*const IMSMQQueue.VTable, @ptrCast(self.vtable)).get_IsOpen(@as(*const IMSMQQueue, @ptrCast(self)), pisOpen);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue_Close(self: *const T) HRESULT {
                return @as(*const IMSMQQueue.VTable, @ptrCast(self.vtable)).Close(@as(*const IMSMQQueue, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue_Receive(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue.VTable, @ptrCast(self.vtable)).Receive(@as(*const IMSMQQueue, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue_Peek(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue.VTable, @ptrCast(self.vtable)).Peek(@as(*const IMSMQQueue, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue_EnableNotification(self: *const T, Event: ?*IMSMQEvent, Cursor: ?*VARIANT, ReceiveTimeout: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueue.VTable, @ptrCast(self.vtable)).EnableNotification(@as(*const IMSMQQueue, @ptrCast(self)), Event, Cursor, ReceiveTimeout);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue_Reset(self: *const T) HRESULT {
                return @as(*const IMSMQQueue.VTable, @ptrCast(self.vtable)).Reset(@as(*const IMSMQQueue, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue_ReceiveCurrent(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue.VTable, @ptrCast(self.vtable)).ReceiveCurrent(@as(*const IMSMQQueue, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue_PeekNext(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue.VTable, @ptrCast(self.vtable)).PeekNext(@as(*const IMSMQQueue, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue_PeekCurrent(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue.VTable, @ptrCast(self.vtable)).PeekCurrent(@as(*const IMSMQQueue, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQueue2_Value = Guid.initString("ef0574e0-06d8-11d3-b100-00e02c074f6b");
pub const IID_IMSMQQueue2 = &IID_IMSMQQueue2_Value;
pub const IMSMQQueue2 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Access: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue2,
                plAccess: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue2,
                plAccess: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ShareMode: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue2,
                plShareMode: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue2,
                plShareMode: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_QueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue2,
                ppqinfo: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue2,
                ppqinfo: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Handle: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue2,
                plHandle: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue2,
                plHandle: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsOpen: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue2,
                pisOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue2,
                pisOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Close: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Receive_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue2,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue2,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Peek_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue2,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue2,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        EnableNotification: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue2,
                Event: ?*IMSMQEvent2,
                Cursor: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue2,
                Event: ?*IMSMQEvent2,
                Cursor: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Reset: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveCurrent_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue2,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue2,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekNext_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue2,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue2,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekCurrent_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue2,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue2,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Receive: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue2,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue2,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Peek: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue2,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue2,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveCurrent: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue2,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue2,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekNext: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue2,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue2,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekCurrent: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue2,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue2,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_get_Access(self: *const T, plAccess: ?*i32) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).get_Access(@as(*const IMSMQQueue2, @ptrCast(self)), plAccess);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_get_ShareMode(self: *const T, plShareMode: ?*i32) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).get_ShareMode(@as(*const IMSMQQueue2, @ptrCast(self)), plShareMode);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_get_QueueInfo(self: *const T, ppqinfo: ?*?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).get_QueueInfo(@as(*const IMSMQQueue2, @ptrCast(self)), ppqinfo);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_get_Handle(self: *const T, plHandle: ?*i32) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).get_Handle(@as(*const IMSMQQueue2, @ptrCast(self)), plHandle);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_get_IsOpen(self: *const T, pisOpen: ?*i16) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).get_IsOpen(@as(*const IMSMQQueue2, @ptrCast(self)), pisOpen);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_Close(self: *const T) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).Close(@as(*const IMSMQQueue2, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_Receive_v1(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).Receive_v1(@as(*const IMSMQQueue2, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_Peek_v1(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).Peek_v1(@as(*const IMSMQQueue2, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_EnableNotification(self: *const T, Event: ?*IMSMQEvent2, Cursor: ?*VARIANT, ReceiveTimeout: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).EnableNotification(@as(*const IMSMQQueue2, @ptrCast(self)), Event, Cursor, ReceiveTimeout);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_Reset(self: *const T) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).Reset(@as(*const IMSMQQueue2, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_ReceiveCurrent_v1(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).ReceiveCurrent_v1(@as(*const IMSMQQueue2, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_PeekNext_v1(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).PeekNext_v1(@as(*const IMSMQQueue2, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_PeekCurrent_v1(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).PeekCurrent_v1(@as(*const IMSMQQueue2, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_Receive(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage2) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).Receive(@as(*const IMSMQQueue2, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_Peek(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage2) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).Peek(@as(*const IMSMQQueue2, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_ReceiveCurrent(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage2) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).ReceiveCurrent(@as(*const IMSMQQueue2, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_PeekNext(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage2) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).PeekNext(@as(*const IMSMQQueue2, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_PeekCurrent(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage2) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).PeekCurrent(@as(*const IMSMQQueue2, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue2_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQQueue2.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQQueue2, @ptrCast(self)), ppcolProperties);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQueue3_Value = Guid.initString("eba96b1b-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQQueue3 = &IID_IMSMQQueue3_Value;
pub const IMSMQQueue3 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Access: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue3,
                plAccess: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue3,
                plAccess: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ShareMode: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue3,
                plShareMode: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue3,
                plShareMode: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_QueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue3,
                ppqinfo: ?*?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue3,
                ppqinfo: ?*?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Handle: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue3,
                plHandle: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue3,
                plHandle: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsOpen: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue3,
                pisOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue3,
                pisOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Close: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Receive_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Peek_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        EnableNotification: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                Event: ?*IMSMQEvent3,
                Cursor: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                Event: ?*IMSMQEvent3,
                Cursor: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Reset: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveCurrent_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekNext_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekCurrent_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Receive: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Peek: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveCurrent: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekNext: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekCurrent: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Handle2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue3,
                pvarHandle: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue3,
                pvarHandle: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveNextByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceivePreviousByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveFirstByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveLastByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                LookupId: VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                LookupId: VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekNextByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                LookupId: VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                LookupId: VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekPreviousByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                LookupId: VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                LookupId: VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekFirstByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekLastByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Purge: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsOpen2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue3,
                pisOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue3,
                pisOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_get_Access(self: *const T, plAccess: ?*i32) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).get_Access(@as(*const IMSMQQueue3, @ptrCast(self)), plAccess);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_get_ShareMode(self: *const T, plShareMode: ?*i32) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).get_ShareMode(@as(*const IMSMQQueue3, @ptrCast(self)), plShareMode);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_get_QueueInfo(self: *const T, ppqinfo: ?*?*IMSMQQueueInfo3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).get_QueueInfo(@as(*const IMSMQQueue3, @ptrCast(self)), ppqinfo);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_get_Handle(self: *const T, plHandle: ?*i32) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).get_Handle(@as(*const IMSMQQueue3, @ptrCast(self)), plHandle);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_get_IsOpen(self: *const T, pisOpen: ?*i16) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).get_IsOpen(@as(*const IMSMQQueue3, @ptrCast(self)), pisOpen);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_Close(self: *const T) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).Close(@as(*const IMSMQQueue3, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_Receive_v1(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).Receive_v1(@as(*const IMSMQQueue3, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_Peek_v1(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).Peek_v1(@as(*const IMSMQQueue3, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_EnableNotification(self: *const T, Event: ?*IMSMQEvent3, Cursor: ?*VARIANT, ReceiveTimeout: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).EnableNotification(@as(*const IMSMQQueue3, @ptrCast(self)), Event, Cursor, ReceiveTimeout);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_Reset(self: *const T) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).Reset(@as(*const IMSMQQueue3, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_ReceiveCurrent_v1(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).ReceiveCurrent_v1(@as(*const IMSMQQueue3, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_PeekNext_v1(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).PeekNext_v1(@as(*const IMSMQQueue3, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_PeekCurrent_v1(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).PeekCurrent_v1(@as(*const IMSMQQueue3, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_Receive(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).Receive(@as(*const IMSMQQueue3, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_Peek(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).Peek(@as(*const IMSMQQueue3, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_ReceiveCurrent(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).ReceiveCurrent(@as(*const IMSMQQueue3, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_PeekNext(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).PeekNext(@as(*const IMSMQQueue3, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_PeekCurrent(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).PeekCurrent(@as(*const IMSMQQueue3, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQQueue3, @ptrCast(self)), ppcolProperties);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_get_Handle2(self: *const T, pvarHandle: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).get_Handle2(@as(*const IMSMQQueue3, @ptrCast(self)), pvarHandle);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_ReceiveByLookupId(self: *const T, LookupId: VARIANT, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).ReceiveByLookupId(@as(*const IMSMQQueue3, @ptrCast(self)), LookupId, Transaction, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_ReceiveNextByLookupId(self: *const T, LookupId: VARIANT, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).ReceiveNextByLookupId(@as(*const IMSMQQueue3, @ptrCast(self)), LookupId, Transaction, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_ReceivePreviousByLookupId(self: *const T, LookupId: VARIANT, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).ReceivePreviousByLookupId(@as(*const IMSMQQueue3, @ptrCast(self)), LookupId, Transaction, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_ReceiveFirstByLookupId(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).ReceiveFirstByLookupId(@as(*const IMSMQQueue3, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_ReceiveLastByLookupId(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).ReceiveLastByLookupId(@as(*const IMSMQQueue3, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_PeekByLookupId(self: *const T, LookupId: VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).PeekByLookupId(@as(*const IMSMQQueue3, @ptrCast(self)), LookupId, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_PeekNextByLookupId(self: *const T, LookupId: VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).PeekNextByLookupId(@as(*const IMSMQQueue3, @ptrCast(self)), LookupId, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_PeekPreviousByLookupId(self: *const T, LookupId: VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).PeekPreviousByLookupId(@as(*const IMSMQQueue3, @ptrCast(self)), LookupId, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_PeekFirstByLookupId(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).PeekFirstByLookupId(@as(*const IMSMQQueue3, @ptrCast(self)), WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_PeekLastByLookupId(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage3) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).PeekLastByLookupId(@as(*const IMSMQQueue3, @ptrCast(self)), WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_Purge(self: *const T) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).Purge(@as(*const IMSMQQueue3, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue3_get_IsOpen2(self: *const T, pisOpen: ?*i16) HRESULT {
                return @as(*const IMSMQQueue3.VTable, @ptrCast(self.vtable)).get_IsOpen2(@as(*const IMSMQQueue3, @ptrCast(self)), pisOpen);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQueue4_Value = Guid.initString("eba96b20-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQQueue4 = &IID_IMSMQQueue4_Value;
pub const IMSMQQueue4 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Access: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue4,
                plAccess: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue4,
                plAccess: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ShareMode: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue4,
                plShareMode: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue4,
                plShareMode: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_QueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue4,
                ppqinfo: ?*?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue4,
                ppqinfo: ?*?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Handle: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue4,
                plHandle: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue4,
                plHandle: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsOpen: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue4,
                pisOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue4,
                pisOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Close: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Receive_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Peek_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        EnableNotification: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                Event: ?*IMSMQEvent3,
                Cursor: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                Event: ?*IMSMQEvent3,
                Cursor: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Reset: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveCurrent_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekNext_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekCurrent_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Receive: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Peek: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveCurrent: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekNext: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekCurrent: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                ReceiveTimeout: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue4,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue4,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Handle2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue4,
                pvarHandle: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue4,
                pvarHandle: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveNextByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceivePreviousByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveFirstByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveLastByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekNextByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekPreviousByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekFirstByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        PeekLastByLookupId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Purge: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsOpen2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueue4,
                pisOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueue4,
                pisOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        ReceiveByLookupIdAllowPeek: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueue4,
                LookupId: VARIANT,
                Transaction: ?*VARIANT,
                WantDestinationQueue: ?*VARIANT,
                WantBody: ?*VARIANT,
                WantConnectorType: ?*VARIANT,
                ppmsg: ?*?*IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_get_Access(self: *const T, plAccess: ?*i32) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).get_Access(@as(*const IMSMQQueue4, @ptrCast(self)), plAccess);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_get_ShareMode(self: *const T, plShareMode: ?*i32) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).get_ShareMode(@as(*const IMSMQQueue4, @ptrCast(self)), plShareMode);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_get_QueueInfo(self: *const T, ppqinfo: ?*?*IMSMQQueueInfo4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).get_QueueInfo(@as(*const IMSMQQueue4, @ptrCast(self)), ppqinfo);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_get_Handle(self: *const T, plHandle: ?*i32) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).get_Handle(@as(*const IMSMQQueue4, @ptrCast(self)), plHandle);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_get_IsOpen(self: *const T, pisOpen: ?*i16) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).get_IsOpen(@as(*const IMSMQQueue4, @ptrCast(self)), pisOpen);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_Close(self: *const T) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).Close(@as(*const IMSMQQueue4, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_Receive_v1(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).Receive_v1(@as(*const IMSMQQueue4, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_Peek_v1(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).Peek_v1(@as(*const IMSMQQueue4, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_EnableNotification(self: *const T, Event: ?*IMSMQEvent3, Cursor: ?*VARIANT, ReceiveTimeout: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).EnableNotification(@as(*const IMSMQQueue4, @ptrCast(self)), Event, Cursor, ReceiveTimeout);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_Reset(self: *const T) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).Reset(@as(*const IMSMQQueue4, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_ReceiveCurrent_v1(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).ReceiveCurrent_v1(@as(*const IMSMQQueue4, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_PeekNext_v1(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).PeekNext_v1(@as(*const IMSMQQueue4, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_PeekCurrent_v1(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, ppmsg: ?*?*IMSMQMessage) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).PeekCurrent_v1(@as(*const IMSMQQueue4, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_Receive(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).Receive(@as(*const IMSMQQueue4, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_Peek(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).Peek(@as(*const IMSMQQueue4, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_ReceiveCurrent(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).ReceiveCurrent(@as(*const IMSMQQueue4, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_PeekNext(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).PeekNext(@as(*const IMSMQQueue4, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_PeekCurrent(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, ReceiveTimeout: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).PeekCurrent(@as(*const IMSMQQueue4, @ptrCast(self)), WantDestinationQueue, WantBody, ReceiveTimeout, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQQueue4, @ptrCast(self)), ppcolProperties);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_get_Handle2(self: *const T, pvarHandle: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).get_Handle2(@as(*const IMSMQQueue4, @ptrCast(self)), pvarHandle);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_ReceiveByLookupId(self: *const T, LookupId: VARIANT, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).ReceiveByLookupId(@as(*const IMSMQQueue4, @ptrCast(self)), LookupId, Transaction, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_ReceiveNextByLookupId(self: *const T, LookupId: VARIANT, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).ReceiveNextByLookupId(@as(*const IMSMQQueue4, @ptrCast(self)), LookupId, Transaction, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_ReceivePreviousByLookupId(self: *const T, LookupId: VARIANT, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).ReceivePreviousByLookupId(@as(*const IMSMQQueue4, @ptrCast(self)), LookupId, Transaction, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_ReceiveFirstByLookupId(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).ReceiveFirstByLookupId(@as(*const IMSMQQueue4, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_ReceiveLastByLookupId(self: *const T, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).ReceiveLastByLookupId(@as(*const IMSMQQueue4, @ptrCast(self)), Transaction, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_PeekByLookupId(self: *const T, LookupId: VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).PeekByLookupId(@as(*const IMSMQQueue4, @ptrCast(self)), LookupId, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_PeekNextByLookupId(self: *const T, LookupId: VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).PeekNextByLookupId(@as(*const IMSMQQueue4, @ptrCast(self)), LookupId, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_PeekPreviousByLookupId(self: *const T, LookupId: VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).PeekPreviousByLookupId(@as(*const IMSMQQueue4, @ptrCast(self)), LookupId, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_PeekFirstByLookupId(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).PeekFirstByLookupId(@as(*const IMSMQQueue4, @ptrCast(self)), WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_PeekLastByLookupId(self: *const T, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).PeekLastByLookupId(@as(*const IMSMQQueue4, @ptrCast(self)), WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_Purge(self: *const T) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).Purge(@as(*const IMSMQQueue4, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_get_IsOpen2(self: *const T, pisOpen: ?*i16) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).get_IsOpen2(@as(*const IMSMQQueue4, @ptrCast(self)), pisOpen);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueue4_ReceiveByLookupIdAllowPeek(self: *const T, LookupId: VARIANT, Transaction: ?*VARIANT, WantDestinationQueue: ?*VARIANT, WantBody: ?*VARIANT, WantConnectorType: ?*VARIANT, ppmsg: ?*?*IMSMQMessage4) HRESULT {
                return @as(*const IMSMQQueue4.VTable, @ptrCast(self.vtable)).ReceiveByLookupIdAllowPeek(@as(*const IMSMQQueue4, @ptrCast(self)), LookupId, Transaction, WantDestinationQueue, WantBody, WantConnectorType, ppmsg);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQMessage_Value = Guid.initString("d7d6e074-dccd-11d0-aa4b-0060970debae");
pub const IID_IMSMQMessage = &IID_IMSMQMessage_Value;
pub const IMSMQMessage = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Class: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AuthLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plAuthLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plAuthLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AuthLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                lAuthLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                lAuthLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsAuthenticated: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                pisAuthenticated: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                pisAuthenticated: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Delivery: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plDelivery: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plDelivery: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Delivery: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                lDelivery: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                lDelivery: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Trace: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plTrace: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plTrace: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Trace: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                lTrace: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                lTrace: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Priority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plPriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plPriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Priority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                lPriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                lPriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ResponseQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                ppqinfoResponse: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                ppqinfoResponse: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_ResponseQueueInfo: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage,
                pqinfoResponse: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage,
                pqinfoResponse: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AppSpecific: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plAppSpecific: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plAppSpecific: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AppSpecific: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                lAppSpecific: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                lAppSpecific: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SourceMachineGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                pbstrGuidSrcMachine: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                pbstrGuidSrcMachine: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_BodyLength: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                pcbBody: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                pcbBody: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Body: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                pvarBody: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                pvarBody: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Body: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                varBody: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                varBody: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AdminQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_AdminQueueInfo: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage,
                pqinfoAdmin: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage,
                pqinfoAdmin: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Id: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_CorrelationId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_CorrelationId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                varMsgId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                varMsgId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Ack: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plAck: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plAck: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Ack: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                lAck: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                lAck: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MaxTimeToReachQueue: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plMaxTimeToReachQueue: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plMaxTimeToReachQueue: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_MaxTimeToReachQueue: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                lMaxTimeToReachQueue: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                lMaxTimeToReachQueue: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MaxTimeToReceive: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plMaxTimeToReceive: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plMaxTimeToReceive: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_MaxTimeToReceive: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                lMaxTimeToReceive: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                lMaxTimeToReceive: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_HashAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plHashAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plHashAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_HashAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                lHashAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                lHashAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_EncryptAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plEncryptAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plEncryptAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_EncryptAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                lEncryptAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                lEncryptAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SentTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                pvarSentTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                pvarSentTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ArrivedTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plArrivedTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plArrivedTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_DestinationQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                ppqinfoDest: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                ppqinfoDest: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderCertificate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                pvarSenderCert: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                pvarSenderCert: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SenderCertificate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                varSenderCert: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                varSenderCert: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                pvarSenderId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                pvarSenderId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderIdType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                plSenderIdType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                plSenderIdType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SenderIdType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage,
                lSenderIdType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage,
                lSenderIdType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Send: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage,
                DestinationQueue: ?*IMSMQQueue,
                Transaction: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage,
                DestinationQueue: ?*IMSMQQueue,
                Transaction: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        AttachCurrentSecurityContext: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_Class(self: *const T, plClass: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_Class(@as(*const IMSMQMessage, @ptrCast(self)), plClass);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_PrivLevel(self: *const T, plPrivLevel: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_PrivLevel(@as(*const IMSMQMessage, @ptrCast(self)), plPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_PrivLevel(self: *const T, lPrivLevel: i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_PrivLevel(@as(*const IMSMQMessage, @ptrCast(self)), lPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_AuthLevel(self: *const T, plAuthLevel: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_AuthLevel(@as(*const IMSMQMessage, @ptrCast(self)), plAuthLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_AuthLevel(self: *const T, lAuthLevel: i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_AuthLevel(@as(*const IMSMQMessage, @ptrCast(self)), lAuthLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_IsAuthenticated(self: *const T, pisAuthenticated: ?*i16) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_IsAuthenticated(@as(*const IMSMQMessage, @ptrCast(self)), pisAuthenticated);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_Delivery(self: *const T, plDelivery: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_Delivery(@as(*const IMSMQMessage, @ptrCast(self)), plDelivery);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_Delivery(self: *const T, lDelivery: i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_Delivery(@as(*const IMSMQMessage, @ptrCast(self)), lDelivery);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_Trace(self: *const T, plTrace: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_Trace(@as(*const IMSMQMessage, @ptrCast(self)), plTrace);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_Trace(self: *const T, lTrace: i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_Trace(@as(*const IMSMQMessage, @ptrCast(self)), lTrace);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_Priority(self: *const T, plPriority: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_Priority(@as(*const IMSMQMessage, @ptrCast(self)), plPriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_Priority(self: *const T, lPriority: i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_Priority(@as(*const IMSMQMessage, @ptrCast(self)), lPriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_Journal(self: *const T, plJournal: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_Journal(@as(*const IMSMQMessage, @ptrCast(self)), plJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_Journal(self: *const T, lJournal: i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_Journal(@as(*const IMSMQMessage, @ptrCast(self)), lJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_ResponseQueueInfo(self: *const T, ppqinfoResponse: ?*?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_ResponseQueueInfo(@as(*const IMSMQMessage, @ptrCast(self)), ppqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_putref_ResponseQueueInfo(self: *const T, pqinfoResponse: ?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).putref_ResponseQueueInfo(@as(*const IMSMQMessage, @ptrCast(self)), pqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_AppSpecific(self: *const T, plAppSpecific: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_AppSpecific(@as(*const IMSMQMessage, @ptrCast(self)), plAppSpecific);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_AppSpecific(self: *const T, lAppSpecific: i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_AppSpecific(@as(*const IMSMQMessage, @ptrCast(self)), lAppSpecific);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_SourceMachineGuid(self: *const T, pbstrGuidSrcMachine: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_SourceMachineGuid(@as(*const IMSMQMessage, @ptrCast(self)), pbstrGuidSrcMachine);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_BodyLength(self: *const T, pcbBody: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_BodyLength(@as(*const IMSMQMessage, @ptrCast(self)), pcbBody);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_Body(self: *const T, pvarBody: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_Body(@as(*const IMSMQMessage, @ptrCast(self)), pvarBody);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_Body(self: *const T, varBody: VARIANT) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_Body(@as(*const IMSMQMessage, @ptrCast(self)), varBody);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_AdminQueueInfo(self: *const T, ppqinfoAdmin: ?*?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_AdminQueueInfo(@as(*const IMSMQMessage, @ptrCast(self)), ppqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_putref_AdminQueueInfo(self: *const T, pqinfoAdmin: ?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).putref_AdminQueueInfo(@as(*const IMSMQMessage, @ptrCast(self)), pqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_Id(self: *const T, pvarMsgId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_Id(@as(*const IMSMQMessage, @ptrCast(self)), pvarMsgId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_CorrelationId(self: *const T, pvarMsgId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_CorrelationId(@as(*const IMSMQMessage, @ptrCast(self)), pvarMsgId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_CorrelationId(self: *const T, varMsgId: VARIANT) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_CorrelationId(@as(*const IMSMQMessage, @ptrCast(self)), varMsgId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_Ack(self: *const T, plAck: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_Ack(@as(*const IMSMQMessage, @ptrCast(self)), plAck);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_Ack(self: *const T, lAck: i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_Ack(@as(*const IMSMQMessage, @ptrCast(self)), lAck);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_Label(self: *const T, pbstrLabel: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_Label(@as(*const IMSMQMessage, @ptrCast(self)), pbstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_Label(self: *const T, bstrLabel: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_Label(@as(*const IMSMQMessage, @ptrCast(self)), bstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_MaxTimeToReachQueue(self: *const T, plMaxTimeToReachQueue: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_MaxTimeToReachQueue(@as(*const IMSMQMessage, @ptrCast(self)), plMaxTimeToReachQueue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_MaxTimeToReachQueue(self: *const T, lMaxTimeToReachQueue: i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_MaxTimeToReachQueue(@as(*const IMSMQMessage, @ptrCast(self)), lMaxTimeToReachQueue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_MaxTimeToReceive(self: *const T, plMaxTimeToReceive: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_MaxTimeToReceive(@as(*const IMSMQMessage, @ptrCast(self)), plMaxTimeToReceive);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_MaxTimeToReceive(self: *const T, lMaxTimeToReceive: i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_MaxTimeToReceive(@as(*const IMSMQMessage, @ptrCast(self)), lMaxTimeToReceive);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_HashAlgorithm(self: *const T, plHashAlg: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_HashAlgorithm(@as(*const IMSMQMessage, @ptrCast(self)), plHashAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_HashAlgorithm(self: *const T, lHashAlg: i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_HashAlgorithm(@as(*const IMSMQMessage, @ptrCast(self)), lHashAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_EncryptAlgorithm(self: *const T, plEncryptAlg: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_EncryptAlgorithm(@as(*const IMSMQMessage, @ptrCast(self)), plEncryptAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_EncryptAlgorithm(self: *const T, lEncryptAlg: i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_EncryptAlgorithm(@as(*const IMSMQMessage, @ptrCast(self)), lEncryptAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_SentTime(self: *const T, pvarSentTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_SentTime(@as(*const IMSMQMessage, @ptrCast(self)), pvarSentTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_ArrivedTime(self: *const T, plArrivedTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_ArrivedTime(@as(*const IMSMQMessage, @ptrCast(self)), plArrivedTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_DestinationQueueInfo(self: *const T, ppqinfoDest: ?*?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_DestinationQueueInfo(@as(*const IMSMQMessage, @ptrCast(self)), ppqinfoDest);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_SenderCertificate(self: *const T, pvarSenderCert: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_SenderCertificate(@as(*const IMSMQMessage, @ptrCast(self)), pvarSenderCert);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_SenderCertificate(self: *const T, varSenderCert: VARIANT) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_SenderCertificate(@as(*const IMSMQMessage, @ptrCast(self)), varSenderCert);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_SenderId(self: *const T, pvarSenderId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_SenderId(@as(*const IMSMQMessage, @ptrCast(self)), pvarSenderId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_get_SenderIdType(self: *const T, plSenderIdType: ?*i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).get_SenderIdType(@as(*const IMSMQMessage, @ptrCast(self)), plSenderIdType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_put_SenderIdType(self: *const T, lSenderIdType: i32) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).put_SenderIdType(@as(*const IMSMQMessage, @ptrCast(self)), lSenderIdType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_Send(self: *const T, DestinationQueue: ?*IMSMQQueue, Transaction: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).Send(@as(*const IMSMQMessage, @ptrCast(self)), DestinationQueue, Transaction);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage_AttachCurrentSecurityContext(self: *const T) HRESULT {
                return @as(*const IMSMQMessage.VTable, @ptrCast(self.vtable)).AttachCurrentSecurityContext(@as(*const IMSMQMessage, @ptrCast(self)));
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQueueInfos_Value = Guid.initString("d7d6e07d-dccd-11d0-aa4b-0060970debae");
pub const IID_IMSMQQueueInfos = &IID_IMSMQQueueInfos_Value;
pub const IMSMQQueueInfos = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        Reset: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfos,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfos,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Next: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfos,
                ppqinfoNext: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfos,
                ppqinfoNext: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfos_Reset(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfos.VTable, @ptrCast(self.vtable)).Reset(@as(*const IMSMQQueueInfos, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfos_Next(self: *const T, ppqinfoNext: ?*?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQQueueInfos.VTable, @ptrCast(self.vtable)).Next(@as(*const IMSMQQueueInfos, @ptrCast(self)), ppqinfoNext);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQueueInfos2_Value = Guid.initString("eba96b0f-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQQueueInfos2 = &IID_IMSMQQueueInfos2_Value;
pub const IMSMQQueueInfos2 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        Reset: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfos2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfos2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Next: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfos2,
                ppqinfoNext: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfos2,
                ppqinfoNext: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfos2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfos2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfos2_Reset(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfos2.VTable, @ptrCast(self.vtable)).Reset(@as(*const IMSMQQueueInfos2, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfos2_Next(self: *const T, ppqinfoNext: ?*?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQQueueInfos2.VTable, @ptrCast(self.vtable)).Next(@as(*const IMSMQQueueInfos2, @ptrCast(self)), ppqinfoNext);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfos2_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQQueueInfos2.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQQueueInfos2, @ptrCast(self)), ppcolProperties);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQueueInfos3_Value = Guid.initString("eba96b1e-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQQueueInfos3 = &IID_IMSMQQueueInfos3_Value;
pub const IMSMQQueueInfos3 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        Reset: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfos3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfos3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Next: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfos3,
                ppqinfoNext: ?*?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfos3,
                ppqinfoNext: ?*?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfos3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfos3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfos3_Reset(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfos3.VTable, @ptrCast(self.vtable)).Reset(@as(*const IMSMQQueueInfos3, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfos3_Next(self: *const T, ppqinfoNext: ?*?*IMSMQQueueInfo3) HRESULT {
                return @as(*const IMSMQQueueInfos3.VTable, @ptrCast(self.vtable)).Next(@as(*const IMSMQQueueInfos3, @ptrCast(self)), ppqinfoNext);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfos3_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQQueueInfos3.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQQueueInfos3, @ptrCast(self)), ppcolProperties);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQueueInfos4_Value = Guid.initString("eba96b22-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQQueueInfos4 = &IID_IMSMQQueueInfos4_Value;
pub const IMSMQQueueInfos4 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        Reset: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfos4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfos4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Next: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueInfos4,
                ppqinfoNext: ?*?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueInfos4,
                ppqinfoNext: ?*?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueInfos4,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueInfos4,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfos4_Reset(self: *const T) HRESULT {
                return @as(*const IMSMQQueueInfos4.VTable, @ptrCast(self.vtable)).Reset(@as(*const IMSMQQueueInfos4, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfos4_Next(self: *const T, ppqinfoNext: ?*?*IMSMQQueueInfo4) HRESULT {
                return @as(*const IMSMQQueueInfos4.VTable, @ptrCast(self.vtable)).Next(@as(*const IMSMQQueueInfos4, @ptrCast(self)), ppqinfoNext);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueInfos4_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQQueueInfos4.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQQueueInfos4, @ptrCast(self)), ppcolProperties);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQEvent_Value = Guid.initString("d7d6e077-dccd-11d0-aa4b-0060970debae");
pub const IID_IMSMQEvent = &IID_IMSMQEvent_Value;
pub const IMSMQEvent = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQEvent2_Value = Guid.initString("eba96b12-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQEvent2 = &IID_IMSMQEvent2_Value;
pub const IMSMQEvent2 = extern struct {
    pub const VTable = extern struct {
        base: IMSMQEvent.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQEvent2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQEvent2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IMSMQEvent.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQEvent2_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQEvent2.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQEvent2, @ptrCast(self)), ppcolProperties);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQEvent3_Value = Guid.initString("eba96b1c-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQEvent3 = &IID_IMSMQEvent3_Value;
pub const IMSMQEvent3 = extern struct {
    pub const VTable = extern struct {
        base: IMSMQEvent2.VTable,
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IMSMQEvent2.MethodMixin(T);
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQTransaction_Value = Guid.initString("d7d6e07f-dccd-11d0-aa4b-0060970debae");
pub const IID_IMSMQTransaction = &IID_IMSMQTransaction_Value;
pub const IMSMQTransaction = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Transaction: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQTransaction,
                plTransaction: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQTransaction,
                plTransaction: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Commit: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQTransaction,
                fRetaining: ?*VARIANT,
                grfTC: ?*VARIANT,
                grfRM: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQTransaction,
                fRetaining: ?*VARIANT,
                grfTC: ?*VARIANT,
                grfRM: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Abort: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQTransaction,
                fRetaining: ?*VARIANT,
                fAsync: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQTransaction,
                fRetaining: ?*VARIANT,
                fAsync: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQTransaction_get_Transaction(self: *const T, plTransaction: ?*i32) HRESULT {
                return @as(*const IMSMQTransaction.VTable, @ptrCast(self.vtable)).get_Transaction(@as(*const IMSMQTransaction, @ptrCast(self)), plTransaction);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQTransaction_Commit(self: *const T, fRetaining: ?*VARIANT, grfTC: ?*VARIANT, grfRM: ?*VARIANT) HRESULT {
                return @as(*const IMSMQTransaction.VTable, @ptrCast(self.vtable)).Commit(@as(*const IMSMQTransaction, @ptrCast(self)), fRetaining, grfTC, grfRM);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQTransaction_Abort(self: *const T, fRetaining: ?*VARIANT, fAsync: ?*VARIANT) HRESULT {
                return @as(*const IMSMQTransaction.VTable, @ptrCast(self.vtable)).Abort(@as(*const IMSMQTransaction, @ptrCast(self)), fRetaining, fAsync);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQCoordinatedTransactionDispenser_Value = Guid.initString("d7d6e081-dccd-11d0-aa4b-0060970debae");
pub const IID_IMSMQCoordinatedTransactionDispenser = &IID_IMSMQCoordinatedTransactionDispenser_Value;
pub const IMSMQCoordinatedTransactionDispenser = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        BeginTransaction: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQCoordinatedTransactionDispenser,
                ptransaction: ?*?*IMSMQTransaction,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQCoordinatedTransactionDispenser,
                ptransaction: ?*?*IMSMQTransaction,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQCoordinatedTransactionDispenser_BeginTransaction(self: *const T, ptransaction: ?*?*IMSMQTransaction) HRESULT {
                return @as(*const IMSMQCoordinatedTransactionDispenser.VTable, @ptrCast(self.vtable)).BeginTransaction(@as(*const IMSMQCoordinatedTransactionDispenser, @ptrCast(self)), ptransaction);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQTransactionDispenser_Value = Guid.initString("d7d6e083-dccd-11d0-aa4b-0060970debae");
pub const IID_IMSMQTransactionDispenser = &IID_IMSMQTransactionDispenser_Value;
pub const IMSMQTransactionDispenser = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        BeginTransaction: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQTransactionDispenser,
                ptransaction: ?*?*IMSMQTransaction,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQTransactionDispenser,
                ptransaction: ?*?*IMSMQTransaction,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQTransactionDispenser_BeginTransaction(self: *const T, ptransaction: ?*?*IMSMQTransaction) HRESULT {
                return @as(*const IMSMQTransactionDispenser.VTable, @ptrCast(self.vtable)).BeginTransaction(@as(*const IMSMQTransactionDispenser, @ptrCast(self)), ptransaction);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQuery2_Value = Guid.initString("eba96b0e-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQQuery2 = &IID_IMSMQQuery2_Value;
pub const IMSMQQuery2 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        LookupQueue: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQuery2,
                QueueGuid: ?*VARIANT,
                ServiceTypeGuid: ?*VARIANT,
                Label: ?*VARIANT,
                CreateTime: ?*VARIANT,
                ModifyTime: ?*VARIANT,
                RelServiceType: ?*VARIANT,
                RelLabel: ?*VARIANT,
                RelCreateTime: ?*VARIANT,
                RelModifyTime: ?*VARIANT,
                ppqinfos: ?*?*IMSMQQueueInfos2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQuery2,
                QueueGuid: ?*VARIANT,
                ServiceTypeGuid: ?*VARIANT,
                Label: ?*VARIANT,
                CreateTime: ?*VARIANT,
                ModifyTime: ?*VARIANT,
                RelServiceType: ?*VARIANT,
                RelLabel: ?*VARIANT,
                RelCreateTime: ?*VARIANT,
                RelModifyTime: ?*VARIANT,
                ppqinfos: ?*?*IMSMQQueueInfos2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQuery2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQuery2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQuery2_LookupQueue(self: *const T, QueueGuid: ?*VARIANT, ServiceTypeGuid: ?*VARIANT, Label: ?*VARIANT, CreateTime: ?*VARIANT, ModifyTime: ?*VARIANT, RelServiceType: ?*VARIANT, RelLabel: ?*VARIANT, RelCreateTime: ?*VARIANT, RelModifyTime: ?*VARIANT, ppqinfos: ?*?*IMSMQQueueInfos2) HRESULT {
                return @as(*const IMSMQQuery2.VTable, @ptrCast(self.vtable)).LookupQueue(@as(*const IMSMQQuery2, @ptrCast(self)), QueueGuid, ServiceTypeGuid, Label, CreateTime, ModifyTime, RelServiceType, RelLabel, RelCreateTime, RelModifyTime, ppqinfos);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQuery2_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQQuery2.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQQuery2, @ptrCast(self)), ppcolProperties);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQuery3_Value = Guid.initString("eba96b19-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQQuery3 = &IID_IMSMQQuery3_Value;
pub const IMSMQQuery3 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        LookupQueue_v2: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQuery3,
                QueueGuid: ?*VARIANT,
                ServiceTypeGuid: ?*VARIANT,
                Label: ?*VARIANT,
                CreateTime: ?*VARIANT,
                ModifyTime: ?*VARIANT,
                RelServiceType: ?*VARIANT,
                RelLabel: ?*VARIANT,
                RelCreateTime: ?*VARIANT,
                RelModifyTime: ?*VARIANT,
                ppqinfos: ?*?*IMSMQQueueInfos3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQuery3,
                QueueGuid: ?*VARIANT,
                ServiceTypeGuid: ?*VARIANT,
                Label: ?*VARIANT,
                CreateTime: ?*VARIANT,
                ModifyTime: ?*VARIANT,
                RelServiceType: ?*VARIANT,
                RelLabel: ?*VARIANT,
                RelCreateTime: ?*VARIANT,
                RelModifyTime: ?*VARIANT,
                ppqinfos: ?*?*IMSMQQueueInfos3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQuery3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQuery3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        LookupQueue: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQuery3,
                QueueGuid: ?*VARIANT,
                ServiceTypeGuid: ?*VARIANT,
                Label: ?*VARIANT,
                CreateTime: ?*VARIANT,
                ModifyTime: ?*VARIANT,
                RelServiceType: ?*VARIANT,
                RelLabel: ?*VARIANT,
                RelCreateTime: ?*VARIANT,
                RelModifyTime: ?*VARIANT,
                MulticastAddress: ?*VARIANT,
                RelMulticastAddress: ?*VARIANT,
                ppqinfos: ?*?*IMSMQQueueInfos3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQuery3,
                QueueGuid: ?*VARIANT,
                ServiceTypeGuid: ?*VARIANT,
                Label: ?*VARIANT,
                CreateTime: ?*VARIANT,
                ModifyTime: ?*VARIANT,
                RelServiceType: ?*VARIANT,
                RelLabel: ?*VARIANT,
                RelCreateTime: ?*VARIANT,
                RelModifyTime: ?*VARIANT,
                MulticastAddress: ?*VARIANT,
                RelMulticastAddress: ?*VARIANT,
                ppqinfos: ?*?*IMSMQQueueInfos3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQuery3_LookupQueue_v2(self: *const T, QueueGuid: ?*VARIANT, ServiceTypeGuid: ?*VARIANT, Label: ?*VARIANT, CreateTime: ?*VARIANT, ModifyTime: ?*VARIANT, RelServiceType: ?*VARIANT, RelLabel: ?*VARIANT, RelCreateTime: ?*VARIANT, RelModifyTime: ?*VARIANT, ppqinfos: ?*?*IMSMQQueueInfos3) HRESULT {
                return @as(*const IMSMQQuery3.VTable, @ptrCast(self.vtable)).LookupQueue_v2(@as(*const IMSMQQuery3, @ptrCast(self)), QueueGuid, ServiceTypeGuid, Label, CreateTime, ModifyTime, RelServiceType, RelLabel, RelCreateTime, RelModifyTime, ppqinfos);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQuery3_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQQuery3.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQQuery3, @ptrCast(self)), ppcolProperties);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQuery3_LookupQueue(self: *const T, QueueGuid: ?*VARIANT, ServiceTypeGuid: ?*VARIANT, Label: ?*VARIANT, CreateTime: ?*VARIANT, ModifyTime: ?*VARIANT, RelServiceType: ?*VARIANT, RelLabel: ?*VARIANT, RelCreateTime: ?*VARIANT, RelModifyTime: ?*VARIANT, MulticastAddress: ?*VARIANT, RelMulticastAddress: ?*VARIANT, ppqinfos: ?*?*IMSMQQueueInfos3) HRESULT {
                return @as(*const IMSMQQuery3.VTable, @ptrCast(self.vtable)).LookupQueue(@as(*const IMSMQQuery3, @ptrCast(self)), QueueGuid, ServiceTypeGuid, Label, CreateTime, ModifyTime, RelServiceType, RelLabel, RelCreateTime, RelModifyTime, MulticastAddress, RelMulticastAddress, ppqinfos);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQuery4_Value = Guid.initString("eba96b24-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQQuery4 = &IID_IMSMQQuery4_Value;
pub const IMSMQQuery4 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        LookupQueue_v2: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQuery4,
                QueueGuid: ?*VARIANT,
                ServiceTypeGuid: ?*VARIANT,
                Label: ?*VARIANT,
                CreateTime: ?*VARIANT,
                ModifyTime: ?*VARIANT,
                RelServiceType: ?*VARIANT,
                RelLabel: ?*VARIANT,
                RelCreateTime: ?*VARIANT,
                RelModifyTime: ?*VARIANT,
                ppqinfos: ?*?*IMSMQQueueInfos4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQuery4,
                QueueGuid: ?*VARIANT,
                ServiceTypeGuid: ?*VARIANT,
                Label: ?*VARIANT,
                CreateTime: ?*VARIANT,
                ModifyTime: ?*VARIANT,
                RelServiceType: ?*VARIANT,
                RelLabel: ?*VARIANT,
                RelCreateTime: ?*VARIANT,
                RelModifyTime: ?*VARIANT,
                ppqinfos: ?*?*IMSMQQueueInfos4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQuery4,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQuery4,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        LookupQueue: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQuery4,
                QueueGuid: ?*VARIANT,
                ServiceTypeGuid: ?*VARIANT,
                Label: ?*VARIANT,
                CreateTime: ?*VARIANT,
                ModifyTime: ?*VARIANT,
                RelServiceType: ?*VARIANT,
                RelLabel: ?*VARIANT,
                RelCreateTime: ?*VARIANT,
                RelModifyTime: ?*VARIANT,
                MulticastAddress: ?*VARIANT,
                RelMulticastAddress: ?*VARIANT,
                ppqinfos: ?*?*IMSMQQueueInfos4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQuery4,
                QueueGuid: ?*VARIANT,
                ServiceTypeGuid: ?*VARIANT,
                Label: ?*VARIANT,
                CreateTime: ?*VARIANT,
                ModifyTime: ?*VARIANT,
                RelServiceType: ?*VARIANT,
                RelLabel: ?*VARIANT,
                RelCreateTime: ?*VARIANT,
                RelModifyTime: ?*VARIANT,
                MulticastAddress: ?*VARIANT,
                RelMulticastAddress: ?*VARIANT,
                ppqinfos: ?*?*IMSMQQueueInfos4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQuery4_LookupQueue_v2(self: *const T, QueueGuid: ?*VARIANT, ServiceTypeGuid: ?*VARIANT, Label: ?*VARIANT, CreateTime: ?*VARIANT, ModifyTime: ?*VARIANT, RelServiceType: ?*VARIANT, RelLabel: ?*VARIANT, RelCreateTime: ?*VARIANT, RelModifyTime: ?*VARIANT, ppqinfos: ?*?*IMSMQQueueInfos4) HRESULT {
                return @as(*const IMSMQQuery4.VTable, @ptrCast(self.vtable)).LookupQueue_v2(@as(*const IMSMQQuery4, @ptrCast(self)), QueueGuid, ServiceTypeGuid, Label, CreateTime, ModifyTime, RelServiceType, RelLabel, RelCreateTime, RelModifyTime, ppqinfos);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQuery4_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQQuery4.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQQuery4, @ptrCast(self)), ppcolProperties);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQuery4_LookupQueue(self: *const T, QueueGuid: ?*VARIANT, ServiceTypeGuid: ?*VARIANT, Label: ?*VARIANT, CreateTime: ?*VARIANT, ModifyTime: ?*VARIANT, RelServiceType: ?*VARIANT, RelLabel: ?*VARIANT, RelCreateTime: ?*VARIANT, RelModifyTime: ?*VARIANT, MulticastAddress: ?*VARIANT, RelMulticastAddress: ?*VARIANT, ppqinfos: ?*?*IMSMQQueueInfos4) HRESULT {
                return @as(*const IMSMQQuery4.VTable, @ptrCast(self.vtable)).LookupQueue(@as(*const IMSMQQuery4, @ptrCast(self)), QueueGuid, ServiceTypeGuid, Label, CreateTime, ModifyTime, RelServiceType, RelLabel, RelCreateTime, RelModifyTime, MulticastAddress, RelMulticastAddress, ppqinfos);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQMessage2_Value = Guid.initString("d9933be0-a567-11d2-b0f3-00e02c074f6b");
pub const IID_IMSMQMessage2 = &IID_IMSMQMessage2_Value;
pub const IMSMQMessage2 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Class: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AuthLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plAuthLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plAuthLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AuthLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lAuthLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lAuthLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsAuthenticated: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pisAuthenticated: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pisAuthenticated: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Delivery: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plDelivery: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plDelivery: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Delivery: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lDelivery: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lDelivery: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Trace: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plTrace: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plTrace: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Trace: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lTrace: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lTrace: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Priority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plPriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plPriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Priority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lPriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lPriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ResponseQueueInfo_v1: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                ppqinfoResponse: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                ppqinfoResponse: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_ResponseQueueInfo_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pqinfoResponse: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage2,
                pqinfoResponse: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AppSpecific: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plAppSpecific: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plAppSpecific: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AppSpecific: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lAppSpecific: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lAppSpecific: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SourceMachineGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pbstrGuidSrcMachine: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pbstrGuidSrcMachine: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_BodyLength: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pcbBody: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pcbBody: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Body: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pvarBody: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pvarBody: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Body: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                varBody: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                varBody: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AdminQueueInfo_v1: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_AdminQueueInfo_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pqinfoAdmin: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage2,
                pqinfoAdmin: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Id: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_CorrelationId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_CorrelationId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                varMsgId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                varMsgId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Ack: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plAck: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plAck: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Ack: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lAck: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lAck: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MaxTimeToReachQueue: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plMaxTimeToReachQueue: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plMaxTimeToReachQueue: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_MaxTimeToReachQueue: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lMaxTimeToReachQueue: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lMaxTimeToReachQueue: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MaxTimeToReceive: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plMaxTimeToReceive: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plMaxTimeToReceive: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_MaxTimeToReceive: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lMaxTimeToReceive: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lMaxTimeToReceive: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_HashAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plHashAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plHashAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_HashAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lHashAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lHashAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_EncryptAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plEncryptAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plEncryptAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_EncryptAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lEncryptAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lEncryptAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SentTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pvarSentTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pvarSentTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ArrivedTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plArrivedTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plArrivedTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_DestinationQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                ppqinfoDest: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                ppqinfoDest: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderCertificate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pvarSenderCert: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pvarSenderCert: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SenderCertificate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                varSenderCert: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                varSenderCert: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pvarSenderId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pvarSenderId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderIdType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plSenderIdType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plSenderIdType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SenderIdType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lSenderIdType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lSenderIdType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Send: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage2,
                DestinationQueue: ?*IMSMQQueue2,
                Transaction: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage2,
                DestinationQueue: ?*IMSMQQueue2,
                Transaction: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        AttachCurrentSecurityContext: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderVersion: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plSenderVersion: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plSenderVersion: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Extension: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pvarExtension: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pvarExtension: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Extension: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                varExtension: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                varExtension: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ConnectorTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pbstrGuidConnectorType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pbstrGuidConnectorType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_ConnectorTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                bstrGuidConnectorType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                bstrGuidConnectorType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_TransactionStatusQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                ppqinfoXactStatus: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                ppqinfoXactStatus: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_DestinationSymmetricKey: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pvarDestSymmKey: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pvarDestSymmKey: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_DestinationSymmetricKey: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                varDestSymmKey: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                varDestSymmKey: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Signature: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pvarSignature: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pvarSignature: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Signature: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                varSignature: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                varSignature: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AuthenticationProviderType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plAuthProvType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plAuthProvType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AuthenticationProviderType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lAuthProvType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lAuthProvType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AuthenticationProviderName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pbstrAuthProvName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pbstrAuthProvName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AuthenticationProviderName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                bstrAuthProvName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                bstrAuthProvName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SenderId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                varSenderId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                varSenderId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MsgClass: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                plMsgClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                plMsgClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_MsgClass: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                lMsgClass: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                lMsgClass: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_TransactionId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pvarXactId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pvarXactId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsFirstInTransaction: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pisFirstInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pisFirstInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsLastInTransaction: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pisLastInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                pisLastInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ResponseQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                ppqinfoResponse: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                ppqinfoResponse: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_ResponseQueueInfo: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pqinfoResponse: ?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage2,
                pqinfoResponse: ?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AdminQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_AdminQueueInfo: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage2,
                pqinfoAdmin: ?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage2,
                pqinfoAdmin: ?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ReceivedAuthenticationLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage2,
                psReceivedAuthenticationLevel: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage2,
                psReceivedAuthenticationLevel: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_Class(self: *const T, plClass: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_Class(@as(*const IMSMQMessage2, @ptrCast(self)), plClass);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_PrivLevel(self: *const T, plPrivLevel: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_PrivLevel(@as(*const IMSMQMessage2, @ptrCast(self)), plPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_PrivLevel(self: *const T, lPrivLevel: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_PrivLevel(@as(*const IMSMQMessage2, @ptrCast(self)), lPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_AuthLevel(self: *const T, plAuthLevel: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_AuthLevel(@as(*const IMSMQMessage2, @ptrCast(self)), plAuthLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_AuthLevel(self: *const T, lAuthLevel: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_AuthLevel(@as(*const IMSMQMessage2, @ptrCast(self)), lAuthLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_IsAuthenticated(self: *const T, pisAuthenticated: ?*i16) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_IsAuthenticated(@as(*const IMSMQMessage2, @ptrCast(self)), pisAuthenticated);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_Delivery(self: *const T, plDelivery: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_Delivery(@as(*const IMSMQMessage2, @ptrCast(self)), plDelivery);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_Delivery(self: *const T, lDelivery: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_Delivery(@as(*const IMSMQMessage2, @ptrCast(self)), lDelivery);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_Trace(self: *const T, plTrace: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_Trace(@as(*const IMSMQMessage2, @ptrCast(self)), plTrace);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_Trace(self: *const T, lTrace: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_Trace(@as(*const IMSMQMessage2, @ptrCast(self)), lTrace);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_Priority(self: *const T, plPriority: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_Priority(@as(*const IMSMQMessage2, @ptrCast(self)), plPriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_Priority(self: *const T, lPriority: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_Priority(@as(*const IMSMQMessage2, @ptrCast(self)), lPriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_Journal(self: *const T, plJournal: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_Journal(@as(*const IMSMQMessage2, @ptrCast(self)), plJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_Journal(self: *const T, lJournal: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_Journal(@as(*const IMSMQMessage2, @ptrCast(self)), lJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_ResponseQueueInfo_v1(self: *const T, ppqinfoResponse: ?*?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_ResponseQueueInfo_v1(@as(*const IMSMQMessage2, @ptrCast(self)), ppqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_putref_ResponseQueueInfo_v1(self: *const T, pqinfoResponse: ?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).putref_ResponseQueueInfo_v1(@as(*const IMSMQMessage2, @ptrCast(self)), pqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_AppSpecific(self: *const T, plAppSpecific: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_AppSpecific(@as(*const IMSMQMessage2, @ptrCast(self)), plAppSpecific);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_AppSpecific(self: *const T, lAppSpecific: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_AppSpecific(@as(*const IMSMQMessage2, @ptrCast(self)), lAppSpecific);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_SourceMachineGuid(self: *const T, pbstrGuidSrcMachine: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_SourceMachineGuid(@as(*const IMSMQMessage2, @ptrCast(self)), pbstrGuidSrcMachine);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_BodyLength(self: *const T, pcbBody: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_BodyLength(@as(*const IMSMQMessage2, @ptrCast(self)), pcbBody);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_Body(self: *const T, pvarBody: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_Body(@as(*const IMSMQMessage2, @ptrCast(self)), pvarBody);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_Body(self: *const T, varBody: VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_Body(@as(*const IMSMQMessage2, @ptrCast(self)), varBody);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_AdminQueueInfo_v1(self: *const T, ppqinfoAdmin: ?*?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_AdminQueueInfo_v1(@as(*const IMSMQMessage2, @ptrCast(self)), ppqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_putref_AdminQueueInfo_v1(self: *const T, pqinfoAdmin: ?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).putref_AdminQueueInfo_v1(@as(*const IMSMQMessage2, @ptrCast(self)), pqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_Id(self: *const T, pvarMsgId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_Id(@as(*const IMSMQMessage2, @ptrCast(self)), pvarMsgId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_CorrelationId(self: *const T, pvarMsgId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_CorrelationId(@as(*const IMSMQMessage2, @ptrCast(self)), pvarMsgId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_CorrelationId(self: *const T, varMsgId: VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_CorrelationId(@as(*const IMSMQMessage2, @ptrCast(self)), varMsgId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_Ack(self: *const T, plAck: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_Ack(@as(*const IMSMQMessage2, @ptrCast(self)), plAck);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_Ack(self: *const T, lAck: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_Ack(@as(*const IMSMQMessage2, @ptrCast(self)), lAck);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_Label(self: *const T, pbstrLabel: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_Label(@as(*const IMSMQMessage2, @ptrCast(self)), pbstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_Label(self: *const T, bstrLabel: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_Label(@as(*const IMSMQMessage2, @ptrCast(self)), bstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_MaxTimeToReachQueue(self: *const T, plMaxTimeToReachQueue: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_MaxTimeToReachQueue(@as(*const IMSMQMessage2, @ptrCast(self)), plMaxTimeToReachQueue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_MaxTimeToReachQueue(self: *const T, lMaxTimeToReachQueue: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_MaxTimeToReachQueue(@as(*const IMSMQMessage2, @ptrCast(self)), lMaxTimeToReachQueue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_MaxTimeToReceive(self: *const T, plMaxTimeToReceive: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_MaxTimeToReceive(@as(*const IMSMQMessage2, @ptrCast(self)), plMaxTimeToReceive);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_MaxTimeToReceive(self: *const T, lMaxTimeToReceive: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_MaxTimeToReceive(@as(*const IMSMQMessage2, @ptrCast(self)), lMaxTimeToReceive);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_HashAlgorithm(self: *const T, plHashAlg: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_HashAlgorithm(@as(*const IMSMQMessage2, @ptrCast(self)), plHashAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_HashAlgorithm(self: *const T, lHashAlg: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_HashAlgorithm(@as(*const IMSMQMessage2, @ptrCast(self)), lHashAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_EncryptAlgorithm(self: *const T, plEncryptAlg: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_EncryptAlgorithm(@as(*const IMSMQMessage2, @ptrCast(self)), plEncryptAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_EncryptAlgorithm(self: *const T, lEncryptAlg: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_EncryptAlgorithm(@as(*const IMSMQMessage2, @ptrCast(self)), lEncryptAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_SentTime(self: *const T, pvarSentTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_SentTime(@as(*const IMSMQMessage2, @ptrCast(self)), pvarSentTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_ArrivedTime(self: *const T, plArrivedTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_ArrivedTime(@as(*const IMSMQMessage2, @ptrCast(self)), plArrivedTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_DestinationQueueInfo(self: *const T, ppqinfoDest: ?*?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_DestinationQueueInfo(@as(*const IMSMQMessage2, @ptrCast(self)), ppqinfoDest);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_SenderCertificate(self: *const T, pvarSenderCert: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_SenderCertificate(@as(*const IMSMQMessage2, @ptrCast(self)), pvarSenderCert);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_SenderCertificate(self: *const T, varSenderCert: VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_SenderCertificate(@as(*const IMSMQMessage2, @ptrCast(self)), varSenderCert);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_SenderId(self: *const T, pvarSenderId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_SenderId(@as(*const IMSMQMessage2, @ptrCast(self)), pvarSenderId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_SenderIdType(self: *const T, plSenderIdType: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_SenderIdType(@as(*const IMSMQMessage2, @ptrCast(self)), plSenderIdType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_SenderIdType(self: *const T, lSenderIdType: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_SenderIdType(@as(*const IMSMQMessage2, @ptrCast(self)), lSenderIdType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_Send(self: *const T, DestinationQueue: ?*IMSMQQueue2, Transaction: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).Send(@as(*const IMSMQMessage2, @ptrCast(self)), DestinationQueue, Transaction);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_AttachCurrentSecurityContext(self: *const T) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).AttachCurrentSecurityContext(@as(*const IMSMQMessage2, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_SenderVersion(self: *const T, plSenderVersion: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_SenderVersion(@as(*const IMSMQMessage2, @ptrCast(self)), plSenderVersion);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_Extension(self: *const T, pvarExtension: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_Extension(@as(*const IMSMQMessage2, @ptrCast(self)), pvarExtension);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_Extension(self: *const T, varExtension: VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_Extension(@as(*const IMSMQMessage2, @ptrCast(self)), varExtension);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_ConnectorTypeGuid(self: *const T, pbstrGuidConnectorType: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_ConnectorTypeGuid(@as(*const IMSMQMessage2, @ptrCast(self)), pbstrGuidConnectorType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_ConnectorTypeGuid(self: *const T, bstrGuidConnectorType: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_ConnectorTypeGuid(@as(*const IMSMQMessage2, @ptrCast(self)), bstrGuidConnectorType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_TransactionStatusQueueInfo(self: *const T, ppqinfoXactStatus: ?*?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_TransactionStatusQueueInfo(@as(*const IMSMQMessage2, @ptrCast(self)), ppqinfoXactStatus);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_DestinationSymmetricKey(self: *const T, pvarDestSymmKey: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_DestinationSymmetricKey(@as(*const IMSMQMessage2, @ptrCast(self)), pvarDestSymmKey);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_DestinationSymmetricKey(self: *const T, varDestSymmKey: VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_DestinationSymmetricKey(@as(*const IMSMQMessage2, @ptrCast(self)), varDestSymmKey);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_Signature(self: *const T, pvarSignature: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_Signature(@as(*const IMSMQMessage2, @ptrCast(self)), pvarSignature);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_Signature(self: *const T, varSignature: VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_Signature(@as(*const IMSMQMessage2, @ptrCast(self)), varSignature);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_AuthenticationProviderType(self: *const T, plAuthProvType: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_AuthenticationProviderType(@as(*const IMSMQMessage2, @ptrCast(self)), plAuthProvType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_AuthenticationProviderType(self: *const T, lAuthProvType: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_AuthenticationProviderType(@as(*const IMSMQMessage2, @ptrCast(self)), lAuthProvType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_AuthenticationProviderName(self: *const T, pbstrAuthProvName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_AuthenticationProviderName(@as(*const IMSMQMessage2, @ptrCast(self)), pbstrAuthProvName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_AuthenticationProviderName(self: *const T, bstrAuthProvName: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_AuthenticationProviderName(@as(*const IMSMQMessage2, @ptrCast(self)), bstrAuthProvName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_SenderId(self: *const T, varSenderId: VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_SenderId(@as(*const IMSMQMessage2, @ptrCast(self)), varSenderId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_MsgClass(self: *const T, plMsgClass: ?*i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_MsgClass(@as(*const IMSMQMessage2, @ptrCast(self)), plMsgClass);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_put_MsgClass(self: *const T, lMsgClass: i32) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).put_MsgClass(@as(*const IMSMQMessage2, @ptrCast(self)), lMsgClass);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQMessage2, @ptrCast(self)), ppcolProperties);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_TransactionId(self: *const T, pvarXactId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_TransactionId(@as(*const IMSMQMessage2, @ptrCast(self)), pvarXactId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_IsFirstInTransaction(self: *const T, pisFirstInXact: ?*i16) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_IsFirstInTransaction(@as(*const IMSMQMessage2, @ptrCast(self)), pisFirstInXact);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_IsLastInTransaction(self: *const T, pisLastInXact: ?*i16) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_IsLastInTransaction(@as(*const IMSMQMessage2, @ptrCast(self)), pisLastInXact);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_ResponseQueueInfo(self: *const T, ppqinfoResponse: ?*?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_ResponseQueueInfo(@as(*const IMSMQMessage2, @ptrCast(self)), ppqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_putref_ResponseQueueInfo(self: *const T, pqinfoResponse: ?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).putref_ResponseQueueInfo(@as(*const IMSMQMessage2, @ptrCast(self)), pqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_AdminQueueInfo(self: *const T, ppqinfoAdmin: ?*?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_AdminQueueInfo(@as(*const IMSMQMessage2, @ptrCast(self)), ppqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_putref_AdminQueueInfo(self: *const T, pqinfoAdmin: ?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).putref_AdminQueueInfo(@as(*const IMSMQMessage2, @ptrCast(self)), pqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage2_get_ReceivedAuthenticationLevel(self: *const T, psReceivedAuthenticationLevel: ?*i16) HRESULT {
                return @as(*const IMSMQMessage2.VTable, @ptrCast(self.vtable)).get_ReceivedAuthenticationLevel(@as(*const IMSMQMessage2, @ptrCast(self)), psReceivedAuthenticationLevel);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQMessage3_Value = Guid.initString("eba96b1a-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQMessage3 = &IID_IMSMQMessage3_Value;
pub const IMSMQMessage3 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Class: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AuthLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plAuthLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plAuthLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AuthLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lAuthLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lAuthLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsAuthenticated: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pisAuthenticated: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pisAuthenticated: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Delivery: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plDelivery: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plDelivery: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Delivery: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lDelivery: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lDelivery: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Trace: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plTrace: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plTrace: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Trace: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lTrace: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lTrace: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Priority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plPriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plPriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Priority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lPriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lPriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ResponseQueueInfo_v1: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                ppqinfoResponse: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                ppqinfoResponse: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_ResponseQueueInfo_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pqinfoResponse: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage3,
                pqinfoResponse: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AppSpecific: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plAppSpecific: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plAppSpecific: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AppSpecific: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lAppSpecific: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lAppSpecific: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SourceMachineGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pbstrGuidSrcMachine: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pbstrGuidSrcMachine: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_BodyLength: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pcbBody: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pcbBody: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Body: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pvarBody: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pvarBody: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Body: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                varBody: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                varBody: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AdminQueueInfo_v1: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_AdminQueueInfo_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pqinfoAdmin: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage3,
                pqinfoAdmin: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Id: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_CorrelationId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_CorrelationId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                varMsgId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                varMsgId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Ack: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plAck: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plAck: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Ack: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lAck: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lAck: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MaxTimeToReachQueue: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plMaxTimeToReachQueue: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plMaxTimeToReachQueue: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_MaxTimeToReachQueue: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lMaxTimeToReachQueue: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lMaxTimeToReachQueue: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MaxTimeToReceive: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plMaxTimeToReceive: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plMaxTimeToReceive: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_MaxTimeToReceive: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lMaxTimeToReceive: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lMaxTimeToReceive: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_HashAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plHashAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plHashAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_HashAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lHashAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lHashAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_EncryptAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plEncryptAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plEncryptAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_EncryptAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lEncryptAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lEncryptAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SentTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pvarSentTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pvarSentTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ArrivedTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plArrivedTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plArrivedTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_DestinationQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                ppqinfoDest: ?*?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                ppqinfoDest: ?*?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderCertificate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pvarSenderCert: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pvarSenderCert: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SenderCertificate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                varSenderCert: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                varSenderCert: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pvarSenderId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pvarSenderId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderIdType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plSenderIdType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plSenderIdType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SenderIdType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lSenderIdType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lSenderIdType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Send: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage3,
                DestinationQueue: ?*IDispatch,
                Transaction: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage3,
                DestinationQueue: ?*IDispatch,
                Transaction: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        AttachCurrentSecurityContext: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderVersion: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plSenderVersion: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plSenderVersion: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Extension: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pvarExtension: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pvarExtension: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Extension: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                varExtension: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                varExtension: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ConnectorTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pbstrGuidConnectorType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pbstrGuidConnectorType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_ConnectorTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                bstrGuidConnectorType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                bstrGuidConnectorType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_TransactionStatusQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                ppqinfoXactStatus: ?*?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                ppqinfoXactStatus: ?*?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_DestinationSymmetricKey: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pvarDestSymmKey: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pvarDestSymmKey: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_DestinationSymmetricKey: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                varDestSymmKey: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                varDestSymmKey: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Signature: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pvarSignature: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pvarSignature: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Signature: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                varSignature: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                varSignature: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AuthenticationProviderType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plAuthProvType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plAuthProvType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AuthenticationProviderType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lAuthProvType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lAuthProvType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AuthenticationProviderName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pbstrAuthProvName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pbstrAuthProvName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AuthenticationProviderName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                bstrAuthProvName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                bstrAuthProvName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SenderId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                varSenderId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                varSenderId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MsgClass: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                plMsgClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                plMsgClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_MsgClass: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                lMsgClass: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                lMsgClass: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_TransactionId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pvarXactId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pvarXactId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsFirstInTransaction: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pisFirstInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pisFirstInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsLastInTransaction: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pisLastInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pisLastInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ResponseQueueInfo_v2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                ppqinfoResponse: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                ppqinfoResponse: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_ResponseQueueInfo_v2: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pqinfoResponse: ?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage3,
                pqinfoResponse: ?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AdminQueueInfo_v2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_AdminQueueInfo_v2: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pqinfoAdmin: ?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage3,
                pqinfoAdmin: ?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ReceivedAuthenticationLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                psReceivedAuthenticationLevel: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                psReceivedAuthenticationLevel: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ResponseQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                ppqinfoResponse: ?*?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                ppqinfoResponse: ?*?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_ResponseQueueInfo: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pqinfoResponse: ?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage3,
                pqinfoResponse: ?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AdminQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_AdminQueueInfo: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pqinfoAdmin: ?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage3,
                pqinfoAdmin: ?*IMSMQQueueInfo3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ResponseDestination: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                ppdestResponse: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                ppdestResponse: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_ResponseDestination: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pdestResponse: ?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage3,
                pdestResponse: ?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Destination: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                ppdestDestination: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                ppdestDestination: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_LookupId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pvarLookupId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pvarLookupId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsAuthenticated2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pisAuthenticated: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pisAuthenticated: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsFirstInTransaction2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pisFirstInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pisFirstInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsLastInTransaction2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pisLastInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pisLastInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        AttachCurrentSecurityContext2: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SoapEnvelope: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pbstrSoapEnvelope: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pbstrSoapEnvelope: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_CompoundMessage: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                pvarCompoundMessage: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                pvarCompoundMessage: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SoapHeader: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                bstrSoapHeader: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                bstrSoapHeader: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SoapBody: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage3,
                bstrSoapBody: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage3,
                bstrSoapBody: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_Class(self: *const T, plClass: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_Class(@as(*const IMSMQMessage3, @ptrCast(self)), plClass);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_PrivLevel(self: *const T, plPrivLevel: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_PrivLevel(@as(*const IMSMQMessage3, @ptrCast(self)), plPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_PrivLevel(self: *const T, lPrivLevel: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_PrivLevel(@as(*const IMSMQMessage3, @ptrCast(self)), lPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_AuthLevel(self: *const T, plAuthLevel: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_AuthLevel(@as(*const IMSMQMessage3, @ptrCast(self)), plAuthLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_AuthLevel(self: *const T, lAuthLevel: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_AuthLevel(@as(*const IMSMQMessage3, @ptrCast(self)), lAuthLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_IsAuthenticated(self: *const T, pisAuthenticated: ?*i16) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_IsAuthenticated(@as(*const IMSMQMessage3, @ptrCast(self)), pisAuthenticated);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_Delivery(self: *const T, plDelivery: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_Delivery(@as(*const IMSMQMessage3, @ptrCast(self)), plDelivery);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_Delivery(self: *const T, lDelivery: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_Delivery(@as(*const IMSMQMessage3, @ptrCast(self)), lDelivery);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_Trace(self: *const T, plTrace: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_Trace(@as(*const IMSMQMessage3, @ptrCast(self)), plTrace);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_Trace(self: *const T, lTrace: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_Trace(@as(*const IMSMQMessage3, @ptrCast(self)), lTrace);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_Priority(self: *const T, plPriority: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_Priority(@as(*const IMSMQMessage3, @ptrCast(self)), plPriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_Priority(self: *const T, lPriority: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_Priority(@as(*const IMSMQMessage3, @ptrCast(self)), lPriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_Journal(self: *const T, plJournal: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_Journal(@as(*const IMSMQMessage3, @ptrCast(self)), plJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_Journal(self: *const T, lJournal: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_Journal(@as(*const IMSMQMessage3, @ptrCast(self)), lJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_ResponseQueueInfo_v1(self: *const T, ppqinfoResponse: ?*?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_ResponseQueueInfo_v1(@as(*const IMSMQMessage3, @ptrCast(self)), ppqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_putref_ResponseQueueInfo_v1(self: *const T, pqinfoResponse: ?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).putref_ResponseQueueInfo_v1(@as(*const IMSMQMessage3, @ptrCast(self)), pqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_AppSpecific(self: *const T, plAppSpecific: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_AppSpecific(@as(*const IMSMQMessage3, @ptrCast(self)), plAppSpecific);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_AppSpecific(self: *const T, lAppSpecific: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_AppSpecific(@as(*const IMSMQMessage3, @ptrCast(self)), lAppSpecific);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_SourceMachineGuid(self: *const T, pbstrGuidSrcMachine: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_SourceMachineGuid(@as(*const IMSMQMessage3, @ptrCast(self)), pbstrGuidSrcMachine);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_BodyLength(self: *const T, pcbBody: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_BodyLength(@as(*const IMSMQMessage3, @ptrCast(self)), pcbBody);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_Body(self: *const T, pvarBody: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_Body(@as(*const IMSMQMessage3, @ptrCast(self)), pvarBody);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_Body(self: *const T, varBody: VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_Body(@as(*const IMSMQMessage3, @ptrCast(self)), varBody);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_AdminQueueInfo_v1(self: *const T, ppqinfoAdmin: ?*?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_AdminQueueInfo_v1(@as(*const IMSMQMessage3, @ptrCast(self)), ppqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_putref_AdminQueueInfo_v1(self: *const T, pqinfoAdmin: ?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).putref_AdminQueueInfo_v1(@as(*const IMSMQMessage3, @ptrCast(self)), pqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_Id(self: *const T, pvarMsgId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_Id(@as(*const IMSMQMessage3, @ptrCast(self)), pvarMsgId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_CorrelationId(self: *const T, pvarMsgId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_CorrelationId(@as(*const IMSMQMessage3, @ptrCast(self)), pvarMsgId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_CorrelationId(self: *const T, varMsgId: VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_CorrelationId(@as(*const IMSMQMessage3, @ptrCast(self)), varMsgId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_Ack(self: *const T, plAck: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_Ack(@as(*const IMSMQMessage3, @ptrCast(self)), plAck);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_Ack(self: *const T, lAck: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_Ack(@as(*const IMSMQMessage3, @ptrCast(self)), lAck);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_Label(self: *const T, pbstrLabel: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_Label(@as(*const IMSMQMessage3, @ptrCast(self)), pbstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_Label(self: *const T, bstrLabel: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_Label(@as(*const IMSMQMessage3, @ptrCast(self)), bstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_MaxTimeToReachQueue(self: *const T, plMaxTimeToReachQueue: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_MaxTimeToReachQueue(@as(*const IMSMQMessage3, @ptrCast(self)), plMaxTimeToReachQueue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_MaxTimeToReachQueue(self: *const T, lMaxTimeToReachQueue: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_MaxTimeToReachQueue(@as(*const IMSMQMessage3, @ptrCast(self)), lMaxTimeToReachQueue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_MaxTimeToReceive(self: *const T, plMaxTimeToReceive: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_MaxTimeToReceive(@as(*const IMSMQMessage3, @ptrCast(self)), plMaxTimeToReceive);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_MaxTimeToReceive(self: *const T, lMaxTimeToReceive: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_MaxTimeToReceive(@as(*const IMSMQMessage3, @ptrCast(self)), lMaxTimeToReceive);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_HashAlgorithm(self: *const T, plHashAlg: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_HashAlgorithm(@as(*const IMSMQMessage3, @ptrCast(self)), plHashAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_HashAlgorithm(self: *const T, lHashAlg: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_HashAlgorithm(@as(*const IMSMQMessage3, @ptrCast(self)), lHashAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_EncryptAlgorithm(self: *const T, plEncryptAlg: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_EncryptAlgorithm(@as(*const IMSMQMessage3, @ptrCast(self)), plEncryptAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_EncryptAlgorithm(self: *const T, lEncryptAlg: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_EncryptAlgorithm(@as(*const IMSMQMessage3, @ptrCast(self)), lEncryptAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_SentTime(self: *const T, pvarSentTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_SentTime(@as(*const IMSMQMessage3, @ptrCast(self)), pvarSentTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_ArrivedTime(self: *const T, plArrivedTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_ArrivedTime(@as(*const IMSMQMessage3, @ptrCast(self)), plArrivedTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_DestinationQueueInfo(self: *const T, ppqinfoDest: ?*?*IMSMQQueueInfo3) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_DestinationQueueInfo(@as(*const IMSMQMessage3, @ptrCast(self)), ppqinfoDest);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_SenderCertificate(self: *const T, pvarSenderCert: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_SenderCertificate(@as(*const IMSMQMessage3, @ptrCast(self)), pvarSenderCert);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_SenderCertificate(self: *const T, varSenderCert: VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_SenderCertificate(@as(*const IMSMQMessage3, @ptrCast(self)), varSenderCert);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_SenderId(self: *const T, pvarSenderId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_SenderId(@as(*const IMSMQMessage3, @ptrCast(self)), pvarSenderId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_SenderIdType(self: *const T, plSenderIdType: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_SenderIdType(@as(*const IMSMQMessage3, @ptrCast(self)), plSenderIdType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_SenderIdType(self: *const T, lSenderIdType: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_SenderIdType(@as(*const IMSMQMessage3, @ptrCast(self)), lSenderIdType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_Send(self: *const T, DestinationQueue: ?*IDispatch, Transaction: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).Send(@as(*const IMSMQMessage3, @ptrCast(self)), DestinationQueue, Transaction);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_AttachCurrentSecurityContext(self: *const T) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).AttachCurrentSecurityContext(@as(*const IMSMQMessage3, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_SenderVersion(self: *const T, plSenderVersion: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_SenderVersion(@as(*const IMSMQMessage3, @ptrCast(self)), plSenderVersion);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_Extension(self: *const T, pvarExtension: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_Extension(@as(*const IMSMQMessage3, @ptrCast(self)), pvarExtension);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_Extension(self: *const T, varExtension: VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_Extension(@as(*const IMSMQMessage3, @ptrCast(self)), varExtension);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_ConnectorTypeGuid(self: *const T, pbstrGuidConnectorType: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_ConnectorTypeGuid(@as(*const IMSMQMessage3, @ptrCast(self)), pbstrGuidConnectorType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_ConnectorTypeGuid(self: *const T, bstrGuidConnectorType: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_ConnectorTypeGuid(@as(*const IMSMQMessage3, @ptrCast(self)), bstrGuidConnectorType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_TransactionStatusQueueInfo(self: *const T, ppqinfoXactStatus: ?*?*IMSMQQueueInfo3) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_TransactionStatusQueueInfo(@as(*const IMSMQMessage3, @ptrCast(self)), ppqinfoXactStatus);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_DestinationSymmetricKey(self: *const T, pvarDestSymmKey: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_DestinationSymmetricKey(@as(*const IMSMQMessage3, @ptrCast(self)), pvarDestSymmKey);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_DestinationSymmetricKey(self: *const T, varDestSymmKey: VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_DestinationSymmetricKey(@as(*const IMSMQMessage3, @ptrCast(self)), varDestSymmKey);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_Signature(self: *const T, pvarSignature: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_Signature(@as(*const IMSMQMessage3, @ptrCast(self)), pvarSignature);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_Signature(self: *const T, varSignature: VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_Signature(@as(*const IMSMQMessage3, @ptrCast(self)), varSignature);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_AuthenticationProviderType(self: *const T, plAuthProvType: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_AuthenticationProviderType(@as(*const IMSMQMessage3, @ptrCast(self)), plAuthProvType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_AuthenticationProviderType(self: *const T, lAuthProvType: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_AuthenticationProviderType(@as(*const IMSMQMessage3, @ptrCast(self)), lAuthProvType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_AuthenticationProviderName(self: *const T, pbstrAuthProvName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_AuthenticationProviderName(@as(*const IMSMQMessage3, @ptrCast(self)), pbstrAuthProvName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_AuthenticationProviderName(self: *const T, bstrAuthProvName: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_AuthenticationProviderName(@as(*const IMSMQMessage3, @ptrCast(self)), bstrAuthProvName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_SenderId(self: *const T, varSenderId: VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_SenderId(@as(*const IMSMQMessage3, @ptrCast(self)), varSenderId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_MsgClass(self: *const T, plMsgClass: ?*i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_MsgClass(@as(*const IMSMQMessage3, @ptrCast(self)), plMsgClass);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_MsgClass(self: *const T, lMsgClass: i32) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_MsgClass(@as(*const IMSMQMessage3, @ptrCast(self)), lMsgClass);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQMessage3, @ptrCast(self)), ppcolProperties);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_TransactionId(self: *const T, pvarXactId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_TransactionId(@as(*const IMSMQMessage3, @ptrCast(self)), pvarXactId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_IsFirstInTransaction(self: *const T, pisFirstInXact: ?*i16) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_IsFirstInTransaction(@as(*const IMSMQMessage3, @ptrCast(self)), pisFirstInXact);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_IsLastInTransaction(self: *const T, pisLastInXact: ?*i16) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_IsLastInTransaction(@as(*const IMSMQMessage3, @ptrCast(self)), pisLastInXact);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_ResponseQueueInfo_v2(self: *const T, ppqinfoResponse: ?*?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_ResponseQueueInfo_v2(@as(*const IMSMQMessage3, @ptrCast(self)), ppqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_putref_ResponseQueueInfo_v2(self: *const T, pqinfoResponse: ?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).putref_ResponseQueueInfo_v2(@as(*const IMSMQMessage3, @ptrCast(self)), pqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_AdminQueueInfo_v2(self: *const T, ppqinfoAdmin: ?*?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_AdminQueueInfo_v2(@as(*const IMSMQMessage3, @ptrCast(self)), ppqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_putref_AdminQueueInfo_v2(self: *const T, pqinfoAdmin: ?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).putref_AdminQueueInfo_v2(@as(*const IMSMQMessage3, @ptrCast(self)), pqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_ReceivedAuthenticationLevel(self: *const T, psReceivedAuthenticationLevel: ?*i16) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_ReceivedAuthenticationLevel(@as(*const IMSMQMessage3, @ptrCast(self)), psReceivedAuthenticationLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_ResponseQueueInfo(self: *const T, ppqinfoResponse: ?*?*IMSMQQueueInfo3) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_ResponseQueueInfo(@as(*const IMSMQMessage3, @ptrCast(self)), ppqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_putref_ResponseQueueInfo(self: *const T, pqinfoResponse: ?*IMSMQQueueInfo3) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).putref_ResponseQueueInfo(@as(*const IMSMQMessage3, @ptrCast(self)), pqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_AdminQueueInfo(self: *const T, ppqinfoAdmin: ?*?*IMSMQQueueInfo3) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_AdminQueueInfo(@as(*const IMSMQMessage3, @ptrCast(self)), ppqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_putref_AdminQueueInfo(self: *const T, pqinfoAdmin: ?*IMSMQQueueInfo3) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).putref_AdminQueueInfo(@as(*const IMSMQMessage3, @ptrCast(self)), pqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_ResponseDestination(self: *const T, ppdestResponse: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_ResponseDestination(@as(*const IMSMQMessage3, @ptrCast(self)), ppdestResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_putref_ResponseDestination(self: *const T, pdestResponse: ?*IDispatch) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).putref_ResponseDestination(@as(*const IMSMQMessage3, @ptrCast(self)), pdestResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_Destination(self: *const T, ppdestDestination: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_Destination(@as(*const IMSMQMessage3, @ptrCast(self)), ppdestDestination);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_LookupId(self: *const T, pvarLookupId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_LookupId(@as(*const IMSMQMessage3, @ptrCast(self)), pvarLookupId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_IsAuthenticated2(self: *const T, pisAuthenticated: ?*i16) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_IsAuthenticated2(@as(*const IMSMQMessage3, @ptrCast(self)), pisAuthenticated);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_IsFirstInTransaction2(self: *const T, pisFirstInXact: ?*i16) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_IsFirstInTransaction2(@as(*const IMSMQMessage3, @ptrCast(self)), pisFirstInXact);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_IsLastInTransaction2(self: *const T, pisLastInXact: ?*i16) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_IsLastInTransaction2(@as(*const IMSMQMessage3, @ptrCast(self)), pisLastInXact);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_AttachCurrentSecurityContext2(self: *const T) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).AttachCurrentSecurityContext2(@as(*const IMSMQMessage3, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_SoapEnvelope(self: *const T, pbstrSoapEnvelope: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_SoapEnvelope(@as(*const IMSMQMessage3, @ptrCast(self)), pbstrSoapEnvelope);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_get_CompoundMessage(self: *const T, pvarCompoundMessage: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).get_CompoundMessage(@as(*const IMSMQMessage3, @ptrCast(self)), pvarCompoundMessage);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_SoapHeader(self: *const T, bstrSoapHeader: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_SoapHeader(@as(*const IMSMQMessage3, @ptrCast(self)), bstrSoapHeader);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage3_put_SoapBody(self: *const T, bstrSoapBody: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage3.VTable, @ptrCast(self.vtable)).put_SoapBody(@as(*const IMSMQMessage3, @ptrCast(self)), bstrSoapBody);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQMessage4_Value = Guid.initString("eba96b23-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQMessage4 = &IID_IMSMQMessage4_Value;
pub const IMSMQMessage4 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Class: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plPrivLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_PrivLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lPrivLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AuthLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plAuthLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plAuthLevel: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AuthLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lAuthLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lAuthLevel: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsAuthenticated: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pisAuthenticated: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pisAuthenticated: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Delivery: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plDelivery: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plDelivery: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Delivery: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lDelivery: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lDelivery: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Trace: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plTrace: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plTrace: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Trace: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lTrace: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lTrace: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Priority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plPriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plPriority: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Priority: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lPriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lPriority: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plJournal: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Journal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lJournal: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ResponseQueueInfo_v1: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                ppqinfoResponse: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                ppqinfoResponse: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_ResponseQueueInfo_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pqinfoResponse: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage4,
                pqinfoResponse: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AppSpecific: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plAppSpecific: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plAppSpecific: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AppSpecific: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lAppSpecific: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lAppSpecific: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SourceMachineGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pbstrGuidSrcMachine: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pbstrGuidSrcMachine: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_BodyLength: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pcbBody: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pcbBody: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Body: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pvarBody: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pvarBody: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Body: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                varBody: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                varBody: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AdminQueueInfo_v1: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_AdminQueueInfo_v1: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pqinfoAdmin: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage4,
                pqinfoAdmin: ?*IMSMQQueueInfo,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Id: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_CorrelationId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pvarMsgId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_CorrelationId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                varMsgId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                varMsgId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Ack: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plAck: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plAck: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Ack: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lAck: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lAck: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pbstrLabel: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Label: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                bstrLabel: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MaxTimeToReachQueue: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plMaxTimeToReachQueue: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plMaxTimeToReachQueue: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_MaxTimeToReachQueue: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lMaxTimeToReachQueue: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lMaxTimeToReachQueue: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MaxTimeToReceive: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plMaxTimeToReceive: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plMaxTimeToReceive: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_MaxTimeToReceive: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lMaxTimeToReceive: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lMaxTimeToReceive: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_HashAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plHashAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plHashAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_HashAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lHashAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lHashAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_EncryptAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plEncryptAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plEncryptAlg: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_EncryptAlgorithm: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lEncryptAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lEncryptAlg: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SentTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pvarSentTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pvarSentTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ArrivedTime: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plArrivedTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plArrivedTime: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_DestinationQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                ppqinfoDest: ?*?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                ppqinfoDest: ?*?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderCertificate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pvarSenderCert: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pvarSenderCert: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SenderCertificate: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                varSenderCert: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                varSenderCert: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pvarSenderId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pvarSenderId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderIdType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plSenderIdType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plSenderIdType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SenderIdType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lSenderIdType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lSenderIdType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Send: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage4,
                DestinationQueue: ?*IDispatch,
                Transaction: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage4,
                DestinationQueue: ?*IDispatch,
                Transaction: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        AttachCurrentSecurityContext: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SenderVersion: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plSenderVersion: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plSenderVersion: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Extension: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pvarExtension: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pvarExtension: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Extension: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                varExtension: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                varExtension: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ConnectorTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pbstrGuidConnectorType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pbstrGuidConnectorType: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_ConnectorTypeGuid: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                bstrGuidConnectorType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                bstrGuidConnectorType: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_TransactionStatusQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                ppqinfoXactStatus: ?*?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                ppqinfoXactStatus: ?*?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_DestinationSymmetricKey: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pvarDestSymmKey: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pvarDestSymmKey: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_DestinationSymmetricKey: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                varDestSymmKey: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                varDestSymmKey: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Signature: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pvarSignature: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pvarSignature: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Signature: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                varSignature: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                varSignature: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AuthenticationProviderType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plAuthProvType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plAuthProvType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AuthenticationProviderType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lAuthProvType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lAuthProvType: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AuthenticationProviderName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pbstrAuthProvName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pbstrAuthProvName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_AuthenticationProviderName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                bstrAuthProvName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                bstrAuthProvName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SenderId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                varSenderId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                varSenderId: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MsgClass: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                plMsgClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                plMsgClass: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_MsgClass: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                lMsgClass: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                lMsgClass: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_TransactionId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pvarXactId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pvarXactId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsFirstInTransaction: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pisFirstInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pisFirstInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsLastInTransaction: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pisLastInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pisLastInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ResponseQueueInfo_v2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                ppqinfoResponse: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                ppqinfoResponse: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_ResponseQueueInfo_v2: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pqinfoResponse: ?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage4,
                pqinfoResponse: ?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AdminQueueInfo_v2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_AdminQueueInfo_v2: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pqinfoAdmin: ?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage4,
                pqinfoAdmin: ?*IMSMQQueueInfo2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ReceivedAuthenticationLevel: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                psReceivedAuthenticationLevel: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                psReceivedAuthenticationLevel: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ResponseQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                ppqinfoResponse: ?*?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                ppqinfoResponse: ?*?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_ResponseQueueInfo: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pqinfoResponse: ?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage4,
                pqinfoResponse: ?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_AdminQueueInfo: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                ppqinfoAdmin: ?*?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_AdminQueueInfo: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pqinfoAdmin: ?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage4,
                pqinfoAdmin: ?*IMSMQQueueInfo4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ResponseDestination: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                ppdestResponse: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                ppdestResponse: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_ResponseDestination: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pdestResponse: ?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage4,
                pdestResponse: ?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Destination: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                ppdestDestination: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                ppdestDestination: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_LookupId: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pvarLookupId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pvarLookupId: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsAuthenticated2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pisAuthenticated: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pisAuthenticated: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsFirstInTransaction2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pisFirstInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pisFirstInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsLastInTransaction2: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pisLastInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pisLastInXact: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        AttachCurrentSecurityContext2: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQMessage4,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_SoapEnvelope: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pbstrSoapEnvelope: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pbstrSoapEnvelope: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_CompoundMessage: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                pvarCompoundMessage: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                pvarCompoundMessage: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SoapHeader: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                bstrSoapHeader: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                bstrSoapHeader: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_SoapBody: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQMessage4,
                bstrSoapBody: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQMessage4,
                bstrSoapBody: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_Class(self: *const T, plClass: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_Class(@as(*const IMSMQMessage4, @ptrCast(self)), plClass);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_PrivLevel(self: *const T, plPrivLevel: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_PrivLevel(@as(*const IMSMQMessage4, @ptrCast(self)), plPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_PrivLevel(self: *const T, lPrivLevel: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_PrivLevel(@as(*const IMSMQMessage4, @ptrCast(self)), lPrivLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_AuthLevel(self: *const T, plAuthLevel: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_AuthLevel(@as(*const IMSMQMessage4, @ptrCast(self)), plAuthLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_AuthLevel(self: *const T, lAuthLevel: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_AuthLevel(@as(*const IMSMQMessage4, @ptrCast(self)), lAuthLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_IsAuthenticated(self: *const T, pisAuthenticated: ?*i16) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_IsAuthenticated(@as(*const IMSMQMessage4, @ptrCast(self)), pisAuthenticated);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_Delivery(self: *const T, plDelivery: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_Delivery(@as(*const IMSMQMessage4, @ptrCast(self)), plDelivery);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_Delivery(self: *const T, lDelivery: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_Delivery(@as(*const IMSMQMessage4, @ptrCast(self)), lDelivery);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_Trace(self: *const T, plTrace: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_Trace(@as(*const IMSMQMessage4, @ptrCast(self)), plTrace);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_Trace(self: *const T, lTrace: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_Trace(@as(*const IMSMQMessage4, @ptrCast(self)), lTrace);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_Priority(self: *const T, plPriority: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_Priority(@as(*const IMSMQMessage4, @ptrCast(self)), plPriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_Priority(self: *const T, lPriority: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_Priority(@as(*const IMSMQMessage4, @ptrCast(self)), lPriority);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_Journal(self: *const T, plJournal: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_Journal(@as(*const IMSMQMessage4, @ptrCast(self)), plJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_Journal(self: *const T, lJournal: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_Journal(@as(*const IMSMQMessage4, @ptrCast(self)), lJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_ResponseQueueInfo_v1(self: *const T, ppqinfoResponse: ?*?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_ResponseQueueInfo_v1(@as(*const IMSMQMessage4, @ptrCast(self)), ppqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_putref_ResponseQueueInfo_v1(self: *const T, pqinfoResponse: ?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).putref_ResponseQueueInfo_v1(@as(*const IMSMQMessage4, @ptrCast(self)), pqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_AppSpecific(self: *const T, plAppSpecific: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_AppSpecific(@as(*const IMSMQMessage4, @ptrCast(self)), plAppSpecific);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_AppSpecific(self: *const T, lAppSpecific: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_AppSpecific(@as(*const IMSMQMessage4, @ptrCast(self)), lAppSpecific);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_SourceMachineGuid(self: *const T, pbstrGuidSrcMachine: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_SourceMachineGuid(@as(*const IMSMQMessage4, @ptrCast(self)), pbstrGuidSrcMachine);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_BodyLength(self: *const T, pcbBody: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_BodyLength(@as(*const IMSMQMessage4, @ptrCast(self)), pcbBody);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_Body(self: *const T, pvarBody: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_Body(@as(*const IMSMQMessage4, @ptrCast(self)), pvarBody);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_Body(self: *const T, varBody: VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_Body(@as(*const IMSMQMessage4, @ptrCast(self)), varBody);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_AdminQueueInfo_v1(self: *const T, ppqinfoAdmin: ?*?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_AdminQueueInfo_v1(@as(*const IMSMQMessage4, @ptrCast(self)), ppqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_putref_AdminQueueInfo_v1(self: *const T, pqinfoAdmin: ?*IMSMQQueueInfo) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).putref_AdminQueueInfo_v1(@as(*const IMSMQMessage4, @ptrCast(self)), pqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_Id(self: *const T, pvarMsgId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_Id(@as(*const IMSMQMessage4, @ptrCast(self)), pvarMsgId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_CorrelationId(self: *const T, pvarMsgId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_CorrelationId(@as(*const IMSMQMessage4, @ptrCast(self)), pvarMsgId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_CorrelationId(self: *const T, varMsgId: VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_CorrelationId(@as(*const IMSMQMessage4, @ptrCast(self)), varMsgId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_Ack(self: *const T, plAck: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_Ack(@as(*const IMSMQMessage4, @ptrCast(self)), plAck);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_Ack(self: *const T, lAck: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_Ack(@as(*const IMSMQMessage4, @ptrCast(self)), lAck);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_Label(self: *const T, pbstrLabel: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_Label(@as(*const IMSMQMessage4, @ptrCast(self)), pbstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_Label(self: *const T, bstrLabel: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_Label(@as(*const IMSMQMessage4, @ptrCast(self)), bstrLabel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_MaxTimeToReachQueue(self: *const T, plMaxTimeToReachQueue: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_MaxTimeToReachQueue(@as(*const IMSMQMessage4, @ptrCast(self)), plMaxTimeToReachQueue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_MaxTimeToReachQueue(self: *const T, lMaxTimeToReachQueue: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_MaxTimeToReachQueue(@as(*const IMSMQMessage4, @ptrCast(self)), lMaxTimeToReachQueue);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_MaxTimeToReceive(self: *const T, plMaxTimeToReceive: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_MaxTimeToReceive(@as(*const IMSMQMessage4, @ptrCast(self)), plMaxTimeToReceive);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_MaxTimeToReceive(self: *const T, lMaxTimeToReceive: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_MaxTimeToReceive(@as(*const IMSMQMessage4, @ptrCast(self)), lMaxTimeToReceive);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_HashAlgorithm(self: *const T, plHashAlg: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_HashAlgorithm(@as(*const IMSMQMessage4, @ptrCast(self)), plHashAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_HashAlgorithm(self: *const T, lHashAlg: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_HashAlgorithm(@as(*const IMSMQMessage4, @ptrCast(self)), lHashAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_EncryptAlgorithm(self: *const T, plEncryptAlg: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_EncryptAlgorithm(@as(*const IMSMQMessage4, @ptrCast(self)), plEncryptAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_EncryptAlgorithm(self: *const T, lEncryptAlg: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_EncryptAlgorithm(@as(*const IMSMQMessage4, @ptrCast(self)), lEncryptAlg);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_SentTime(self: *const T, pvarSentTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_SentTime(@as(*const IMSMQMessage4, @ptrCast(self)), pvarSentTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_ArrivedTime(self: *const T, plArrivedTime: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_ArrivedTime(@as(*const IMSMQMessage4, @ptrCast(self)), plArrivedTime);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_DestinationQueueInfo(self: *const T, ppqinfoDest: ?*?*IMSMQQueueInfo4) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_DestinationQueueInfo(@as(*const IMSMQMessage4, @ptrCast(self)), ppqinfoDest);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_SenderCertificate(self: *const T, pvarSenderCert: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_SenderCertificate(@as(*const IMSMQMessage4, @ptrCast(self)), pvarSenderCert);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_SenderCertificate(self: *const T, varSenderCert: VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_SenderCertificate(@as(*const IMSMQMessage4, @ptrCast(self)), varSenderCert);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_SenderId(self: *const T, pvarSenderId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_SenderId(@as(*const IMSMQMessage4, @ptrCast(self)), pvarSenderId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_SenderIdType(self: *const T, plSenderIdType: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_SenderIdType(@as(*const IMSMQMessage4, @ptrCast(self)), plSenderIdType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_SenderIdType(self: *const T, lSenderIdType: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_SenderIdType(@as(*const IMSMQMessage4, @ptrCast(self)), lSenderIdType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_Send(self: *const T, DestinationQueue: ?*IDispatch, Transaction: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).Send(@as(*const IMSMQMessage4, @ptrCast(self)), DestinationQueue, Transaction);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_AttachCurrentSecurityContext(self: *const T) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).AttachCurrentSecurityContext(@as(*const IMSMQMessage4, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_SenderVersion(self: *const T, plSenderVersion: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_SenderVersion(@as(*const IMSMQMessage4, @ptrCast(self)), plSenderVersion);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_Extension(self: *const T, pvarExtension: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_Extension(@as(*const IMSMQMessage4, @ptrCast(self)), pvarExtension);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_Extension(self: *const T, varExtension: VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_Extension(@as(*const IMSMQMessage4, @ptrCast(self)), varExtension);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_ConnectorTypeGuid(self: *const T, pbstrGuidConnectorType: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_ConnectorTypeGuid(@as(*const IMSMQMessage4, @ptrCast(self)), pbstrGuidConnectorType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_ConnectorTypeGuid(self: *const T, bstrGuidConnectorType: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_ConnectorTypeGuid(@as(*const IMSMQMessage4, @ptrCast(self)), bstrGuidConnectorType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_TransactionStatusQueueInfo(self: *const T, ppqinfoXactStatus: ?*?*IMSMQQueueInfo4) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_TransactionStatusQueueInfo(@as(*const IMSMQMessage4, @ptrCast(self)), ppqinfoXactStatus);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_DestinationSymmetricKey(self: *const T, pvarDestSymmKey: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_DestinationSymmetricKey(@as(*const IMSMQMessage4, @ptrCast(self)), pvarDestSymmKey);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_DestinationSymmetricKey(self: *const T, varDestSymmKey: VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_DestinationSymmetricKey(@as(*const IMSMQMessage4, @ptrCast(self)), varDestSymmKey);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_Signature(self: *const T, pvarSignature: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_Signature(@as(*const IMSMQMessage4, @ptrCast(self)), pvarSignature);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_Signature(self: *const T, varSignature: VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_Signature(@as(*const IMSMQMessage4, @ptrCast(self)), varSignature);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_AuthenticationProviderType(self: *const T, plAuthProvType: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_AuthenticationProviderType(@as(*const IMSMQMessage4, @ptrCast(self)), plAuthProvType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_AuthenticationProviderType(self: *const T, lAuthProvType: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_AuthenticationProviderType(@as(*const IMSMQMessage4, @ptrCast(self)), lAuthProvType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_AuthenticationProviderName(self: *const T, pbstrAuthProvName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_AuthenticationProviderName(@as(*const IMSMQMessage4, @ptrCast(self)), pbstrAuthProvName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_AuthenticationProviderName(self: *const T, bstrAuthProvName: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_AuthenticationProviderName(@as(*const IMSMQMessage4, @ptrCast(self)), bstrAuthProvName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_SenderId(self: *const T, varSenderId: VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_SenderId(@as(*const IMSMQMessage4, @ptrCast(self)), varSenderId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_MsgClass(self: *const T, plMsgClass: ?*i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_MsgClass(@as(*const IMSMQMessage4, @ptrCast(self)), plMsgClass);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_MsgClass(self: *const T, lMsgClass: i32) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_MsgClass(@as(*const IMSMQMessage4, @ptrCast(self)), lMsgClass);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQMessage4, @ptrCast(self)), ppcolProperties);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_TransactionId(self: *const T, pvarXactId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_TransactionId(@as(*const IMSMQMessage4, @ptrCast(self)), pvarXactId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_IsFirstInTransaction(self: *const T, pisFirstInXact: ?*i16) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_IsFirstInTransaction(@as(*const IMSMQMessage4, @ptrCast(self)), pisFirstInXact);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_IsLastInTransaction(self: *const T, pisLastInXact: ?*i16) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_IsLastInTransaction(@as(*const IMSMQMessage4, @ptrCast(self)), pisLastInXact);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_ResponseQueueInfo_v2(self: *const T, ppqinfoResponse: ?*?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_ResponseQueueInfo_v2(@as(*const IMSMQMessage4, @ptrCast(self)), ppqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_putref_ResponseQueueInfo_v2(self: *const T, pqinfoResponse: ?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).putref_ResponseQueueInfo_v2(@as(*const IMSMQMessage4, @ptrCast(self)), pqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_AdminQueueInfo_v2(self: *const T, ppqinfoAdmin: ?*?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_AdminQueueInfo_v2(@as(*const IMSMQMessage4, @ptrCast(self)), ppqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_putref_AdminQueueInfo_v2(self: *const T, pqinfoAdmin: ?*IMSMQQueueInfo2) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).putref_AdminQueueInfo_v2(@as(*const IMSMQMessage4, @ptrCast(self)), pqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_ReceivedAuthenticationLevel(self: *const T, psReceivedAuthenticationLevel: ?*i16) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_ReceivedAuthenticationLevel(@as(*const IMSMQMessage4, @ptrCast(self)), psReceivedAuthenticationLevel);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_ResponseQueueInfo(self: *const T, ppqinfoResponse: ?*?*IMSMQQueueInfo4) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_ResponseQueueInfo(@as(*const IMSMQMessage4, @ptrCast(self)), ppqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_putref_ResponseQueueInfo(self: *const T, pqinfoResponse: ?*IMSMQQueueInfo4) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).putref_ResponseQueueInfo(@as(*const IMSMQMessage4, @ptrCast(self)), pqinfoResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_AdminQueueInfo(self: *const T, ppqinfoAdmin: ?*?*IMSMQQueueInfo4) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_AdminQueueInfo(@as(*const IMSMQMessage4, @ptrCast(self)), ppqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_putref_AdminQueueInfo(self: *const T, pqinfoAdmin: ?*IMSMQQueueInfo4) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).putref_AdminQueueInfo(@as(*const IMSMQMessage4, @ptrCast(self)), pqinfoAdmin);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_ResponseDestination(self: *const T, ppdestResponse: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_ResponseDestination(@as(*const IMSMQMessage4, @ptrCast(self)), ppdestResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_putref_ResponseDestination(self: *const T, pdestResponse: ?*IDispatch) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).putref_ResponseDestination(@as(*const IMSMQMessage4, @ptrCast(self)), pdestResponse);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_Destination(self: *const T, ppdestDestination: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_Destination(@as(*const IMSMQMessage4, @ptrCast(self)), ppdestDestination);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_LookupId(self: *const T, pvarLookupId: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_LookupId(@as(*const IMSMQMessage4, @ptrCast(self)), pvarLookupId);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_IsAuthenticated2(self: *const T, pisAuthenticated: ?*i16) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_IsAuthenticated2(@as(*const IMSMQMessage4, @ptrCast(self)), pisAuthenticated);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_IsFirstInTransaction2(self: *const T, pisFirstInXact: ?*i16) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_IsFirstInTransaction2(@as(*const IMSMQMessage4, @ptrCast(self)), pisFirstInXact);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_IsLastInTransaction2(self: *const T, pisLastInXact: ?*i16) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_IsLastInTransaction2(@as(*const IMSMQMessage4, @ptrCast(self)), pisLastInXact);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_AttachCurrentSecurityContext2(self: *const T) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).AttachCurrentSecurityContext2(@as(*const IMSMQMessage4, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_SoapEnvelope(self: *const T, pbstrSoapEnvelope: ?*?BSTR) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_SoapEnvelope(@as(*const IMSMQMessage4, @ptrCast(self)), pbstrSoapEnvelope);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_get_CompoundMessage(self: *const T, pvarCompoundMessage: ?*VARIANT) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).get_CompoundMessage(@as(*const IMSMQMessage4, @ptrCast(self)), pvarCompoundMessage);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_SoapHeader(self: *const T, bstrSoapHeader: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_SoapHeader(@as(*const IMSMQMessage4, @ptrCast(self)), bstrSoapHeader);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQMessage4_put_SoapBody(self: *const T, bstrSoapBody: ?BSTR) HRESULT {
                return @as(*const IMSMQMessage4.VTable, @ptrCast(self.vtable)).put_SoapBody(@as(*const IMSMQMessage4, @ptrCast(self)), bstrSoapBody);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQPrivateEvent_Value = Guid.initString("d7ab3341-c9d3-11d1-bb47-0080c7c5a2c0");
pub const IID_IMSMQPrivateEvent = &IID_IMSMQPrivateEvent_Value;
pub const IMSMQPrivateEvent = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Hwnd: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQPrivateEvent,
                phwnd: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQPrivateEvent,
                phwnd: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        FireArrivedEvent: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQPrivateEvent,
                pq: ?*IMSMQQueue,
                msgcursor: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQPrivateEvent,
                pq: ?*IMSMQQueue,
                msgcursor: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        FireArrivedErrorEvent: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQPrivateEvent,
                pq: ?*IMSMQQueue,
                hrStatus: HRESULT,
                msgcursor: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQPrivateEvent,
                pq: ?*IMSMQQueue,
                hrStatus: HRESULT,
                msgcursor: i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQPrivateEvent_get_Hwnd(self: *const T, phwnd: ?*i32) HRESULT {
                return @as(*const IMSMQPrivateEvent.VTable, @ptrCast(self.vtable)).get_Hwnd(@as(*const IMSMQPrivateEvent, @ptrCast(self)), phwnd);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQPrivateEvent_FireArrivedEvent(self: *const T, pq: ?*IMSMQQueue, msgcursor: i32) HRESULT {
                return @as(*const IMSMQPrivateEvent.VTable, @ptrCast(self.vtable)).FireArrivedEvent(@as(*const IMSMQPrivateEvent, @ptrCast(self)), pq, msgcursor);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQPrivateEvent_FireArrivedErrorEvent(self: *const T, pq: ?*IMSMQQueue, hrStatus: HRESULT, msgcursor: i32) HRESULT {
                return @as(*const IMSMQPrivateEvent.VTable, @ptrCast(self.vtable)).FireArrivedErrorEvent(@as(*const IMSMQPrivateEvent, @ptrCast(self)), pq, hrStatus, msgcursor);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID__DMSMQEventEvents_Value = Guid.initString("d7d6e078-dccd-11d0-aa4b-0060970debae");
pub const IID__DMSMQEventEvents = &IID__DMSMQEventEvents_Value;
pub const _DMSMQEventEvents = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQTransaction2_Value = Guid.initString("2ce0c5b0-6e67-11d2-b0e6-00e02c074f6b");
pub const IID_IMSMQTransaction2 = &IID_IMSMQTransaction2_Value;
pub const IMSMQTransaction2 = extern struct {
    pub const VTable = extern struct {
        base: IMSMQTransaction.VTable,
        InitNew: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQTransaction2,
                varTransaction: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQTransaction2,
                varTransaction: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQTransaction2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQTransaction2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IMSMQTransaction.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQTransaction2_InitNew(self: *const T, varTransaction: VARIANT) HRESULT {
                return @as(*const IMSMQTransaction2.VTable, @ptrCast(self.vtable)).InitNew(@as(*const IMSMQTransaction2, @ptrCast(self)), varTransaction);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQTransaction2_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQTransaction2.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQTransaction2, @ptrCast(self)), ppcolProperties);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQTransaction3_Value = Guid.initString("eba96b13-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQTransaction3 = &IID_IMSMQTransaction3_Value;
pub const IMSMQTransaction3 = extern struct {
    pub const VTable = extern struct {
        base: IMSMQTransaction2.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ITransaction: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQTransaction3,
                pvarITransaction: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQTransaction3,
                pvarITransaction: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IMSMQTransaction2.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQTransaction3_get_ITransaction(self: *const T, pvarITransaction: ?*VARIANT) HRESULT {
                return @as(*const IMSMQTransaction3.VTable, @ptrCast(self.vtable)).get_ITransaction(@as(*const IMSMQTransaction3, @ptrCast(self)), pvarITransaction);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQCoordinatedTransactionDispenser2_Value = Guid.initString("eba96b10-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQCoordinatedTransactionDispenser2 = &IID_IMSMQCoordinatedTransactionDispenser2_Value;
pub const IMSMQCoordinatedTransactionDispenser2 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        BeginTransaction: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQCoordinatedTransactionDispenser2,
                ptransaction: ?*?*IMSMQTransaction2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQCoordinatedTransactionDispenser2,
                ptransaction: ?*?*IMSMQTransaction2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQCoordinatedTransactionDispenser2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQCoordinatedTransactionDispenser2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQCoordinatedTransactionDispenser2_BeginTransaction(self: *const T, ptransaction: ?*?*IMSMQTransaction2) HRESULT {
                return @as(*const IMSMQCoordinatedTransactionDispenser2.VTable, @ptrCast(self.vtable)).BeginTransaction(@as(*const IMSMQCoordinatedTransactionDispenser2, @ptrCast(self)), ptransaction);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQCoordinatedTransactionDispenser2_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQCoordinatedTransactionDispenser2.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQCoordinatedTransactionDispenser2, @ptrCast(self)), ppcolProperties);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQCoordinatedTransactionDispenser3_Value = Guid.initString("eba96b14-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQCoordinatedTransactionDispenser3 = &IID_IMSMQCoordinatedTransactionDispenser3_Value;
pub const IMSMQCoordinatedTransactionDispenser3 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        BeginTransaction: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQCoordinatedTransactionDispenser3,
                ptransaction: ?*?*IMSMQTransaction3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQCoordinatedTransactionDispenser3,
                ptransaction: ?*?*IMSMQTransaction3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQCoordinatedTransactionDispenser3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQCoordinatedTransactionDispenser3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQCoordinatedTransactionDispenser3_BeginTransaction(self: *const T, ptransaction: ?*?*IMSMQTransaction3) HRESULT {
                return @as(*const IMSMQCoordinatedTransactionDispenser3.VTable, @ptrCast(self.vtable)).BeginTransaction(@as(*const IMSMQCoordinatedTransactionDispenser3, @ptrCast(self)), ptransaction);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQCoordinatedTransactionDispenser3_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQCoordinatedTransactionDispenser3.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQCoordinatedTransactionDispenser3, @ptrCast(self)), ppcolProperties);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQTransactionDispenser2_Value = Guid.initString("eba96b11-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQTransactionDispenser2 = &IID_IMSMQTransactionDispenser2_Value;
pub const IMSMQTransactionDispenser2 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        BeginTransaction: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQTransactionDispenser2,
                ptransaction: ?*?*IMSMQTransaction2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQTransactionDispenser2,
                ptransaction: ?*?*IMSMQTransaction2,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQTransactionDispenser2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQTransactionDispenser2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQTransactionDispenser2_BeginTransaction(self: *const T, ptransaction: ?*?*IMSMQTransaction2) HRESULT {
                return @as(*const IMSMQTransactionDispenser2.VTable, @ptrCast(self.vtable)).BeginTransaction(@as(*const IMSMQTransactionDispenser2, @ptrCast(self)), ptransaction);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQTransactionDispenser2_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQTransactionDispenser2.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQTransactionDispenser2, @ptrCast(self)), ppcolProperties);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQTransactionDispenser3_Value = Guid.initString("eba96b15-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQTransactionDispenser3 = &IID_IMSMQTransactionDispenser3_Value;
pub const IMSMQTransactionDispenser3 = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        BeginTransaction: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQTransactionDispenser3,
                ptransaction: ?*?*IMSMQTransaction3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQTransactionDispenser3,
                ptransaction: ?*?*IMSMQTransaction3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQTransactionDispenser3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQTransactionDispenser3,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQTransactionDispenser3_BeginTransaction(self: *const T, ptransaction: ?*?*IMSMQTransaction3) HRESULT {
                return @as(*const IMSMQTransactionDispenser3.VTable, @ptrCast(self.vtable)).BeginTransaction(@as(*const IMSMQTransactionDispenser3, @ptrCast(self)), ptransaction);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQTransactionDispenser3_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQTransactionDispenser3.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQTransactionDispenser3, @ptrCast(self)), ppcolProperties);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQApplication_Value = Guid.initString("d7d6e085-dccd-11d0-aa4b-0060970debae");
pub const IID_IMSMQApplication = &IID_IMSMQApplication_Value;
pub const IMSMQApplication = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        MachineIdOfMachineName: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQApplication,
                MachineName: ?BSTR,
                pbstrGuid: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQApplication,
                MachineName: ?BSTR,
                pbstrGuid: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication_MachineIdOfMachineName(self: *const T, MachineName: ?BSTR, pbstrGuid: ?*?BSTR) HRESULT {
                return @as(*const IMSMQApplication.VTable, @ptrCast(self.vtable)).MachineIdOfMachineName(@as(*const IMSMQApplication, @ptrCast(self)), MachineName, pbstrGuid);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQApplication2_Value = Guid.initString("12a30900-7300-11d2-b0e6-00e02c074f6b");
pub const IID_IMSMQApplication2 = &IID_IMSMQApplication2_Value;
pub const IMSMQApplication2 = extern struct {
    pub const VTable = extern struct {
        base: IMSMQApplication.VTable,
        RegisterCertificate: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQApplication2,
                Flags: ?*VARIANT,
                ExternalCertificate: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQApplication2,
                Flags: ?*VARIANT,
                ExternalCertificate: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        MachineNameOfMachineId: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQApplication2,
                bstrGuid: ?BSTR,
                pbstrMachineName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQApplication2,
                bstrGuid: ?BSTR,
                pbstrMachineName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MSMQVersionMajor: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQApplication2,
                psMSMQVersionMajor: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQApplication2,
                psMSMQVersionMajor: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MSMQVersionMinor: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQApplication2,
                psMSMQVersionMinor: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQApplication2,
                psMSMQVersionMinor: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MSMQVersionBuild: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQApplication2,
                psMSMQVersionBuild: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQApplication2,
                psMSMQVersionBuild: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsDsEnabled: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQApplication2,
                pfIsDsEnabled: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQApplication2,
                pfIsDsEnabled: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQApplication2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQApplication2,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IMSMQApplication.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication2_RegisterCertificate(self: *const T, Flags: ?*VARIANT, ExternalCertificate: ?*VARIANT) HRESULT {
                return @as(*const IMSMQApplication2.VTable, @ptrCast(self.vtable)).RegisterCertificate(@as(*const IMSMQApplication2, @ptrCast(self)), Flags, ExternalCertificate);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication2_MachineNameOfMachineId(self: *const T, bstrGuid: ?BSTR, pbstrMachineName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQApplication2.VTable, @ptrCast(self.vtable)).MachineNameOfMachineId(@as(*const IMSMQApplication2, @ptrCast(self)), bstrGuid, pbstrMachineName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication2_get_MSMQVersionMajor(self: *const T, psMSMQVersionMajor: ?*i16) HRESULT {
                return @as(*const IMSMQApplication2.VTable, @ptrCast(self.vtable)).get_MSMQVersionMajor(@as(*const IMSMQApplication2, @ptrCast(self)), psMSMQVersionMajor);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication2_get_MSMQVersionMinor(self: *const T, psMSMQVersionMinor: ?*i16) HRESULT {
                return @as(*const IMSMQApplication2.VTable, @ptrCast(self.vtable)).get_MSMQVersionMinor(@as(*const IMSMQApplication2, @ptrCast(self)), psMSMQVersionMinor);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication2_get_MSMQVersionBuild(self: *const T, psMSMQVersionBuild: ?*i16) HRESULT {
                return @as(*const IMSMQApplication2.VTable, @ptrCast(self.vtable)).get_MSMQVersionBuild(@as(*const IMSMQApplication2, @ptrCast(self)), psMSMQVersionBuild);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication2_get_IsDsEnabled(self: *const T, pfIsDsEnabled: ?*i16) HRESULT {
                return @as(*const IMSMQApplication2.VTable, @ptrCast(self.vtable)).get_IsDsEnabled(@as(*const IMSMQApplication2, @ptrCast(self)), pfIsDsEnabled);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication2_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQApplication2.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQApplication2, @ptrCast(self)), ppcolProperties);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQApplication3_Value = Guid.initString("eba96b1f-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQApplication3 = &IID_IMSMQApplication3_Value;
pub const IMSMQApplication3 = extern struct {
    pub const VTable = extern struct {
        base: IMSMQApplication2.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ActiveQueues: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQApplication3,
                pvActiveQueues: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQApplication3,
                pvActiveQueues: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PrivateQueues: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQApplication3,
                pvPrivateQueues: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQApplication3,
                pvPrivateQueues: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_DirectoryServiceServer: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQApplication3,
                pbstrDirectoryServiceServer: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQApplication3,
                pbstrDirectoryServiceServer: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsConnected: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQApplication3,
                pfIsConnected: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQApplication3,
                pfIsConnected: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_BytesInAllQueues: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQApplication3,
                pvBytesInAllQueues: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQApplication3,
                pvBytesInAllQueues: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Machine: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQApplication3,
                bstrMachine: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQApplication3,
                bstrMachine: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Machine: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQApplication3,
                pbstrMachine: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQApplication3,
                pbstrMachine: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Connect: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQApplication3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQApplication3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Disconnect: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQApplication3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQApplication3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Tidy: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQApplication3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQApplication3,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IMSMQApplication2.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication3_get_ActiveQueues(self: *const T, pvActiveQueues: ?*VARIANT) HRESULT {
                return @as(*const IMSMQApplication3.VTable, @ptrCast(self.vtable)).get_ActiveQueues(@as(*const IMSMQApplication3, @ptrCast(self)), pvActiveQueues);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication3_get_PrivateQueues(self: *const T, pvPrivateQueues: ?*VARIANT) HRESULT {
                return @as(*const IMSMQApplication3.VTable, @ptrCast(self.vtable)).get_PrivateQueues(@as(*const IMSMQApplication3, @ptrCast(self)), pvPrivateQueues);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication3_get_DirectoryServiceServer(self: *const T, pbstrDirectoryServiceServer: ?*?BSTR) HRESULT {
                return @as(*const IMSMQApplication3.VTable, @ptrCast(self.vtable)).get_DirectoryServiceServer(@as(*const IMSMQApplication3, @ptrCast(self)), pbstrDirectoryServiceServer);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication3_get_IsConnected(self: *const T, pfIsConnected: ?*i16) HRESULT {
                return @as(*const IMSMQApplication3.VTable, @ptrCast(self.vtable)).get_IsConnected(@as(*const IMSMQApplication3, @ptrCast(self)), pfIsConnected);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication3_get_BytesInAllQueues(self: *const T, pvBytesInAllQueues: ?*VARIANT) HRESULT {
                return @as(*const IMSMQApplication3.VTable, @ptrCast(self.vtable)).get_BytesInAllQueues(@as(*const IMSMQApplication3, @ptrCast(self)), pvBytesInAllQueues);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication3_put_Machine(self: *const T, bstrMachine: ?BSTR) HRESULT {
                return @as(*const IMSMQApplication3.VTable, @ptrCast(self.vtable)).put_Machine(@as(*const IMSMQApplication3, @ptrCast(self)), bstrMachine);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication3_get_Machine(self: *const T, pbstrMachine: ?*?BSTR) HRESULT {
                return @as(*const IMSMQApplication3.VTable, @ptrCast(self.vtable)).get_Machine(@as(*const IMSMQApplication3, @ptrCast(self)), pbstrMachine);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication3_Connect(self: *const T) HRESULT {
                return @as(*const IMSMQApplication3.VTable, @ptrCast(self.vtable)).Connect(@as(*const IMSMQApplication3, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication3_Disconnect(self: *const T) HRESULT {
                return @as(*const IMSMQApplication3.VTable, @ptrCast(self.vtable)).Disconnect(@as(*const IMSMQApplication3, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQApplication3_Tidy(self: *const T) HRESULT {
                return @as(*const IMSMQApplication3.VTable, @ptrCast(self.vtable)).Tidy(@as(*const IMSMQApplication3, @ptrCast(self)));
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQDestination_Value = Guid.initString("eba96b16-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQDestination = &IID_IMSMQDestination_Value;
pub const IMSMQDestination = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        Open: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQDestination,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQDestination,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Close: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQDestination,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQDestination,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsOpen: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQDestination,
                pfIsOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQDestination,
                pfIsOpen: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IADs: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQDestination,
                ppIADs: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQDestination,
                ppIADs: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_IADs: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQDestination,
                pIADs: ?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQDestination,
                pIADs: ?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ADsPath: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQDestination,
                pbstrADsPath: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQDestination,
                pbstrADsPath: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_ADsPath: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQDestination,
                bstrADsPath: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQDestination,
                bstrADsPath: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_PathName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQDestination,
                pbstrPathName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQDestination,
                pbstrPathName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_PathName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQDestination,
                bstrPathName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQDestination,
                bstrPathName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_FormatName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQDestination,
                pbstrFormatName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQDestination,
                pbstrFormatName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_FormatName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQDestination,
                bstrFormatName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQDestination,
                bstrFormatName: ?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Destinations: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQDestination,
                ppDestinations: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQDestination,
                ppDestinations: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        putref_Destinations: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQDestination,
                pDestinations: ?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQDestination,
                pDestinations: ?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Properties: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQDestination,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQDestination,
                ppcolProperties: ?*?*IDispatch,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_Open(self: *const T) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).Open(@as(*const IMSMQDestination, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_Close(self: *const T) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).Close(@as(*const IMSMQDestination, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_get_IsOpen(self: *const T, pfIsOpen: ?*i16) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).get_IsOpen(@as(*const IMSMQDestination, @ptrCast(self)), pfIsOpen);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_get_IADs(self: *const T, ppIADs: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).get_IADs(@as(*const IMSMQDestination, @ptrCast(self)), ppIADs);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_putref_IADs(self: *const T, pIADs: ?*IDispatch) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).putref_IADs(@as(*const IMSMQDestination, @ptrCast(self)), pIADs);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_get_ADsPath(self: *const T, pbstrADsPath: ?*?BSTR) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).get_ADsPath(@as(*const IMSMQDestination, @ptrCast(self)), pbstrADsPath);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_put_ADsPath(self: *const T, bstrADsPath: ?BSTR) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).put_ADsPath(@as(*const IMSMQDestination, @ptrCast(self)), bstrADsPath);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_get_PathName(self: *const T, pbstrPathName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).get_PathName(@as(*const IMSMQDestination, @ptrCast(self)), pbstrPathName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_put_PathName(self: *const T, bstrPathName: ?BSTR) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).put_PathName(@as(*const IMSMQDestination, @ptrCast(self)), bstrPathName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_get_FormatName(self: *const T, pbstrFormatName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).get_FormatName(@as(*const IMSMQDestination, @ptrCast(self)), pbstrFormatName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_put_FormatName(self: *const T, bstrFormatName: ?BSTR) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).put_FormatName(@as(*const IMSMQDestination, @ptrCast(self)), bstrFormatName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_get_Destinations(self: *const T, ppDestinations: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).get_Destinations(@as(*const IMSMQDestination, @ptrCast(self)), ppDestinations);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_putref_Destinations(self: *const T, pDestinations: ?*IDispatch) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).putref_Destinations(@as(*const IMSMQDestination, @ptrCast(self)), pDestinations);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQDestination_get_Properties(self: *const T, ppcolProperties: ?*?*IDispatch) HRESULT {
                return @as(*const IMSMQDestination.VTable, @ptrCast(self.vtable)).get_Properties(@as(*const IMSMQDestination, @ptrCast(self)), ppcolProperties);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQPrivateDestination_Value = Guid.initString("eba96b17-2168-11d3-898c-00e02c074f6b");
pub const IID_IMSMQPrivateDestination = &IID_IMSMQPrivateDestination_Value;
pub const IMSMQPrivateDestination = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Handle: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQPrivateDestination,
                pvarHandle: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQPrivateDestination,
                pvarHandle: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        put_Handle: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQPrivateDestination,
                varHandle: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQPrivateDestination,
                varHandle: VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQPrivateDestination_get_Handle(self: *const T, pvarHandle: ?*VARIANT) HRESULT {
                return @as(*const IMSMQPrivateDestination.VTable, @ptrCast(self.vtable)).get_Handle(@as(*const IMSMQPrivateDestination, @ptrCast(self)), pvarHandle);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQPrivateDestination_put_Handle(self: *const T, varHandle: VARIANT) HRESULT {
                return @as(*const IMSMQPrivateDestination.VTable, @ptrCast(self.vtable)).put_Handle(@as(*const IMSMQPrivateDestination, @ptrCast(self)), varHandle);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQCollection_Value = Guid.initString("0188ac2f-ecb3-4173-9779-635ca2039c72");
pub const IID_IMSMQCollection = &IID_IMSMQCollection_Value;
pub const IMSMQCollection = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        Item: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQCollection,
                Index: ?*VARIANT,
                pvarRet: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQCollection,
                Index: ?*VARIANT,
                pvarRet: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Count: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQCollection,
                pCount: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQCollection,
                pCount: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        _NewEnum: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQCollection,
                ppunk: ?*?*IUnknown,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQCollection,
                ppunk: ?*?*IUnknown,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQCollection_Item(self: *const T, Index: ?*VARIANT, pvarRet: ?*VARIANT) HRESULT {
                return @as(*const IMSMQCollection.VTable, @ptrCast(self.vtable)).Item(@as(*const IMSMQCollection, @ptrCast(self)), Index, pvarRet);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQCollection_get_Count(self: *const T, pCount: ?*i32) HRESULT {
                return @as(*const IMSMQCollection.VTable, @ptrCast(self.vtable)).get_Count(@as(*const IMSMQCollection, @ptrCast(self)), pCount);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQCollection__NewEnum(self: *const T, ppunk: ?*?*IUnknown) HRESULT {
                return @as(*const IMSMQCollection.VTable, @ptrCast(self.vtable))._NewEnum(@as(*const IMSMQCollection, @ptrCast(self)), ppunk);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQManagement_Value = Guid.initString("be5f0241-e489-4957-8cc4-a452fcf3e23e");
pub const IID_IMSMQManagement = &IID_IMSMQManagement_Value;
pub const IMSMQManagement = extern struct {
    pub const VTable = extern struct {
        base: IDispatch.VTable,
        Init: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQManagement,
                Machine: ?*VARIANT,
                Pathname: ?*VARIANT,
                FormatName: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQManagement,
                Machine: ?*VARIANT,
                Pathname: ?*VARIANT,
                FormatName: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_FormatName: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQManagement,
                pbstrFormatName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQManagement,
                pbstrFormatName: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_Machine: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQManagement,
                pbstrMachine: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQManagement,
                pbstrMachine: ?*?BSTR,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_MessageCount: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQManagement,
                plMessageCount: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQManagement,
                plMessageCount: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_ForeignStatus: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQManagement,
                plForeignStatus: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQManagement,
                plForeignStatus: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_QueueType: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQManagement,
                plQueueType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQManagement,
                plQueueType: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_IsLocal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQManagement,
                pfIsLocal: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQManagement,
                pfIsLocal: ?*i16,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_TransactionalStatus: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQManagement,
                plTransactionalStatus: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQManagement,
                plTransactionalStatus: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_BytesInQueue: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQManagement,
                pvBytesInQueue: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQManagement,
                pvBytesInQueue: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IDispatch.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQManagement_Init(self: *const T, Machine: ?*VARIANT, Pathname: ?*VARIANT, FormatName: ?*VARIANT) HRESULT {
                return @as(*const IMSMQManagement.VTable, @ptrCast(self.vtable)).Init(@as(*const IMSMQManagement, @ptrCast(self)), Machine, Pathname, FormatName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQManagement_get_FormatName(self: *const T, pbstrFormatName: ?*?BSTR) HRESULT {
                return @as(*const IMSMQManagement.VTable, @ptrCast(self.vtable)).get_FormatName(@as(*const IMSMQManagement, @ptrCast(self)), pbstrFormatName);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQManagement_get_Machine(self: *const T, pbstrMachine: ?*?BSTR) HRESULT {
                return @as(*const IMSMQManagement.VTable, @ptrCast(self.vtable)).get_Machine(@as(*const IMSMQManagement, @ptrCast(self)), pbstrMachine);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQManagement_get_MessageCount(self: *const T, plMessageCount: ?*i32) HRESULT {
                return @as(*const IMSMQManagement.VTable, @ptrCast(self.vtable)).get_MessageCount(@as(*const IMSMQManagement, @ptrCast(self)), plMessageCount);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQManagement_get_ForeignStatus(self: *const T, plForeignStatus: ?*i32) HRESULT {
                return @as(*const IMSMQManagement.VTable, @ptrCast(self.vtable)).get_ForeignStatus(@as(*const IMSMQManagement, @ptrCast(self)), plForeignStatus);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQManagement_get_QueueType(self: *const T, plQueueType: ?*i32) HRESULT {
                return @as(*const IMSMQManagement.VTable, @ptrCast(self.vtable)).get_QueueType(@as(*const IMSMQManagement, @ptrCast(self)), plQueueType);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQManagement_get_IsLocal(self: *const T, pfIsLocal: ?*i16) HRESULT {
                return @as(*const IMSMQManagement.VTable, @ptrCast(self.vtable)).get_IsLocal(@as(*const IMSMQManagement, @ptrCast(self)), pfIsLocal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQManagement_get_TransactionalStatus(self: *const T, plTransactionalStatus: ?*i32) HRESULT {
                return @as(*const IMSMQManagement.VTable, @ptrCast(self.vtable)).get_TransactionalStatus(@as(*const IMSMQManagement, @ptrCast(self)), plTransactionalStatus);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQManagement_get_BytesInQueue(self: *const T, pvBytesInQueue: ?*VARIANT) HRESULT {
                return @as(*const IMSMQManagement.VTable, @ptrCast(self.vtable)).get_BytesInQueue(@as(*const IMSMQManagement, @ptrCast(self)), pvBytesInQueue);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQOutgoingQueueManagement_Value = Guid.initString("64c478fb-f9b0-4695-8a7f-439ac94326d3");
pub const IID_IMSMQOutgoingQueueManagement = &IID_IMSMQOutgoingQueueManagement_Value;
pub const IMSMQOutgoingQueueManagement = extern struct {
    pub const VTable = extern struct {
        base: IMSMQManagement.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_State: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQOutgoingQueueManagement,
                plState: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQOutgoingQueueManagement,
                plState: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_NextHops: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQOutgoingQueueManagement,
                pvNextHops: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQOutgoingQueueManagement,
                pvNextHops: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        EodGetSendInfo: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQOutgoingQueueManagement,
                ppCollection: ?*?*IMSMQCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQOutgoingQueueManagement,
                ppCollection: ?*?*IMSMQCollection,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Resume: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQOutgoingQueueManagement,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQOutgoingQueueManagement,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        Pause: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQOutgoingQueueManagement,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQOutgoingQueueManagement,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        EodResend: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQOutgoingQueueManagement,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQOutgoingQueueManagement,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IMSMQManagement.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQOutgoingQueueManagement_get_State(self: *const T, plState: ?*i32) HRESULT {
                return @as(*const IMSMQOutgoingQueueManagement.VTable, @ptrCast(self.vtable)).get_State(@as(*const IMSMQOutgoingQueueManagement, @ptrCast(self)), plState);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQOutgoingQueueManagement_get_NextHops(self: *const T, pvNextHops: ?*VARIANT) HRESULT {
                return @as(*const IMSMQOutgoingQueueManagement.VTable, @ptrCast(self.vtable)).get_NextHops(@as(*const IMSMQOutgoingQueueManagement, @ptrCast(self)), pvNextHops);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQOutgoingQueueManagement_EodGetSendInfo(self: *const T, ppCollection: ?*?*IMSMQCollection) HRESULT {
                return @as(*const IMSMQOutgoingQueueManagement.VTable, @ptrCast(self.vtable)).EodGetSendInfo(@as(*const IMSMQOutgoingQueueManagement, @ptrCast(self)), ppCollection);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQOutgoingQueueManagement_Resume(self: *const T) HRESULT {
                return @as(*const IMSMQOutgoingQueueManagement.VTable, @ptrCast(self.vtable)).Resume(@as(*const IMSMQOutgoingQueueManagement, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQOutgoingQueueManagement_Pause(self: *const T) HRESULT {
                return @as(*const IMSMQOutgoingQueueManagement.VTable, @ptrCast(self.vtable)).Pause(@as(*const IMSMQOutgoingQueueManagement, @ptrCast(self)));
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQOutgoingQueueManagement_EodResend(self: *const T) HRESULT {
                return @as(*const IMSMQOutgoingQueueManagement.VTable, @ptrCast(self.vtable)).EodResend(@as(*const IMSMQOutgoingQueueManagement, @ptrCast(self)));
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

const IID_IMSMQQueueManagement_Value = Guid.initString("7fbe7759-5760-444d-b8a5-5e7ab9a84cce");
pub const IID_IMSMQQueueManagement = &IID_IMSMQQueueManagement_Value;
pub const IMSMQQueueManagement = extern struct {
    pub const VTable = extern struct {
        base: IMSMQManagement.VTable,
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_JournalMessageCount: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueManagement,
                plJournalMessageCount: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueManagement,
                plJournalMessageCount: ?*i32,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        // TODO: this function has a "SpecialName", should Zig do anything with this?
        get_BytesInJournal: switch (@import("builtin").zig_backend) {
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            .stage1 => fn (
                self: *const IMSMQQueueManagement,
                pvBytesInJournal: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            // TODO: this function has a "SpecialName", should Zig do anything with this?
            else => *const fn (
                self: *const IMSMQQueueManagement,
                pvBytesInJournal: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
        EodGetReceiveInfo: switch (@import("builtin").zig_backend) {
            .stage1 => fn (
                self: *const IMSMQQueueManagement,
                pvCollection: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
            else => *const fn (
                self: *const IMSMQQueueManagement,
                pvCollection: ?*VARIANT,
            ) callconv(@import("std").os.windows.WINAPI) HRESULT,
        },
    };
    vtable: *const VTable,
    pub fn MethodMixin(comptime T: type) type {
        return struct {
            pub usingnamespace IMSMQManagement.MethodMixin(T);
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueManagement_get_JournalMessageCount(self: *const T, plJournalMessageCount: ?*i32) HRESULT {
                return @as(*const IMSMQQueueManagement.VTable, @ptrCast(self.vtable)).get_JournalMessageCount(@as(*const IMSMQQueueManagement, @ptrCast(self)), plJournalMessageCount);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueManagement_get_BytesInJournal(self: *const T, pvBytesInJournal: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueManagement.VTable, @ptrCast(self.vtable)).get_BytesInJournal(@as(*const IMSMQQueueManagement, @ptrCast(self)), pvBytesInJournal);
            }
            // NOTE: method is namespaced with interface name to avoid conflicts for now
            pub inline fn IMSMQQueueManagement_EodGetReceiveInfo(self: *const T, pvCollection: ?*VARIANT) HRESULT {
                return @as(*const IMSMQQueueManagement.VTable, @ptrCast(self.vtable)).EodGetReceiveInfo(@as(*const IMSMQQueueManagement, @ptrCast(self)), pvCollection);
            }
        };
    }
    pub usingnamespace MethodMixin(@This());
};

//--------------------------------------------------------------------------------
// Section: Functions (0)
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
// Section: Unicode Aliases (0)
//--------------------------------------------------------------------------------
const thismodule = @This();
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
    .ansi => struct {},
    .wide => struct {},
    .unspecified => if (@import("builtin").is_test) struct {} else struct {},
};
//--------------------------------------------------------------------------------
// Section: Imports (6)
//--------------------------------------------------------------------------------
const Guid = @import("../zig.zig").Guid;
const BSTR = @import("../foundation.zig").BSTR;
const HRESULT = @import("../foundation.zig").HRESULT;
const IDispatch = @import("../system/com.zig").IDispatch;
const IUnknown = @import("../system/com.zig").IUnknown;
const VARIANT = @import("../system/com.zig").VARIANT;

test {
    @setEvalBranchQuota(comptime @import("std").meta.declarations(@This()).len * 3);

    // reference all the pub declarations
    if (!@import("builtin").is_test) return;
    inline for (comptime @import("std").meta.declarations(@This())) |decl| {
        if (decl.is_pub) {
            _ = @field(@This(), decl.name);
        }
    }
}
