#pragma once

enum {
	// ropNone = 0x00,
	ropRelease = 0x01,
	ropOpenFolder = 0x02,
	ropOpenMessage = 0x03,
	ropGetHierarchyTable = 0x04,
	ropGetContentsTable = 0x05,
	ropCreateMessage = 0x06,
	ropGetPropertiesSpecific = 0x07, /* ropGetPropsSpecific */
	ropGetPropertiesAll = 0x08, /* ropGetPropsAll */
	ropGetPropertiesList = 0x09, /* ropGetPropList */
	ropSetProperties = 0x0A, /* ropSetProps */
	ropDeleteProperties = 0x0B, /* ropDeleteProps */
	ropSaveChangesMessage = 0x0C,
	ropRemoveAllRecipients = 0x0D, /* ropDeleteRecipients, ropNukeRecipients */
	ropModifyRecipients = 0x0E, /* ropFlushRecipients */
	ropReadRecipients = 0x0F,
	ropReloadCachedInformation = 0x10, /* ropReloadCachedInfo */
	ropSetMessageReadFlag = 0x11, /* ropSetReadFlag */
	ropSetColumns = 0x12,
	ropSortTable = 0x13,
	ropRestrict = 0x14,
	ropQueryRows = 0x15,
	ropGetStatus = 0x16,
	ropQueryPosition = 0x17,
	ropSeekRow = 0x18,
	ropSeekRowBookmark = 0x19,
	ropSeekRowFractional = 0x1A, /* ropSeekRowApprox */
	ropCreateBookmark = 0x1B,
	ropCreateFolder = 0x1C,
	ropDeleteFolder = 0x1D,
	ropDeleteMessages = 0x1E,
	ropGetMessageStatus = 0x1F,
	ropSetMessageStatus = 0x20,
	ropGetAttachmentTable = 0x21,
	ropOpenAttachment = 0x22, /* ropOpenAttach */
	ropCreateAttachment = 0x23, /* ropCreateAttach */
	ropDeleteAttachment = 0x24, /* ropDeleteAttach */
	ropSaveChangesAttachment = 0x25, /* ropSaveChangesAttach */
	ropSetReceiveFolder = 0x26,
	ropGetReceiveFolder = 0x27,
	// ropSpoolerRules = 0x28,
	ropRegisterNotification = 0x29,
	ropNotify = 0x2A,
	ropOpenStream = 0x2B,
	ropReadStream = 0x2C,
	ropWriteStream = 0x2D,
	ropSeekStream = 0x2E,
	ropSetStreamSize = 0x2F, /* ropSetSizeStream */
	ropSetSearchCriteria = 0x30,
	ropGetSearchCriteria = 0x31,
	ropSubmitMessage = 0x32,
	ropMoveCopyMessages = 0x33,
	ropAbortSubmit = 0x34,
	ropMoveFolder = 0x35,
	ropCopyFolder = 0x36,
	ropQueryColumnsAll = 0x37,
	ropAbort = 0x38,
	ropCopyTo = 0x39,
	ropCopyToStream = 0x3A,
	ropCloneStream = 0x3B,
	// ropRegisterTableNotification = 0x3C,
	// ropDeregisterTableNotification = 0x3D,
	ropGetPermissionsTable = 0x3E, /* ropGetACLTable */
	ropGetRulesTable = 0x3F,
	ropModifyPermissions = 0x40, /* ropModifyACL */
	ropModifyRules = 0x41,
	ropGetOwningServers = 0x42, /* ropGetOwningMDBs */
	ropLongTermIdFromId = 0x43, /* ropLtidFromId */
	ropIdFromLongTermId = 0x44, /* ropIdFromLtid */
	ropPublicFolderIsGhosted = 0x45, /* ropFGhosted */
	ropOpenEmbeddedMessage = 0x46, /* ropOpenMessageProp */
	ropSetSpooler = 0x47,
	ropSpoolerLockMessage = 0x48, /* ropSpoolerLockMsg */
	ropGetAddressTypes = 0x49, /* ropAddressTypes */
	ropTransportSend = 0x4A,
	ropFastTransferSourceCopyMessages = 0x4B, /* ropFXSrcCopyMessages */
	ropFastTransferSourceCopyFolder = 0x4C, /* ropFXSrcCopyFolder */
	ropFastTransferSourceCopyTo = 0x4D, /* ropFXSrcCopyTo */
	ropFastTransferSourceGetBuffer = 0x4E, /* ropFXSrcGetBuffer */
	ropFindRow = 0x4F,
	ropProgress = 0x50,
	ropTransportNewMail = 0x51, /* ropXportNewMail */
	ropGetValidAttachments = 0x52, /* ropValidAttachs */
	ropFastTransferDestinationConfigure = 0x53, /* ropFXDstCopyConfig */
	ropFastTransferDestinationPutBuffer = 0x54, /* ropFXDstPutBuffer */
	ropGetNamesFromPropertyIds = 0x55, /* ropGetNamesFromIDs */
	ropGetPropertyIdsFromNames = 0x56, /* ropGetIDsFromNames */
	ropUpdateDeferredActionMessages = 0x57, /* ropUpdateDAMs */
	ropEmptyFolder = 0x58,
	ropExpandRow = 0x59,
	ropCollapseRow = 0x5A,
	ropLockRegionStream = 0x5B,
	ropUnlockRegionStream = 0x5C,
	ropCommitStream = 0x5D,
	ropGetStreamSize = 0x5E,
	ropQueryNamedProperties = 0x5F, /* ropQryNamedProps */
	ropGetPerUserLongTermIds = 0x60, /* ropGetPerUserLtids */
	ropGetPerUserGuid = 0x61,
	// ropFlushPerUser = 0x62,
	ropReadPerUserInformation = 0x63, /* ropGetPerUser */
	ropWritePerUserInformation = 0x64, /* ropSetPerUser */
	// ropCacheCcnRead = 0x65,
	ropSetReadFlags = 0x66,
	ropCopyProperties = 0x67,
	ropGetReceiveFolderTable = 0x68,
	ropFastTransferSourceCopyProperties = 0x69, /* ropFXSrcCopyProps */
	// ropFXDstCopyProps = 0x6A,
	ropGetCollapseState = 0x6B,
	ropSetCollapseState = 0x6C,
	ropGetTransportFolder = 0x6D, /* ropSetXport [sic] */
	ropPending = 0x6E,
	ropOptionsData = 0x6F,
	ropSynchronizationConfigure = 0x70, /* ropIncrCfg */
	// ropIncrState = 0x71,
	ropSynchronizationImportMessageChange = 0x72, /* ropImportMsgChange */
	ropSynchronizationImportHierarchyChange = 0x73, /* ropImportHierChange */
	ropSynchronizationImportDeletes = 0x74, /* ropImportDelete */
	ropSynchronizationUploadStateStreamBegin = 0x75, /* ropUpldStStrmBegin */
	ropSynchronizationUploadStateStreamContinue = 0x76, /* ropUpldStStrmContinue */
	ropSynchronizationUploadStateStreamEnd = 0x77, /* ropUpldStStrmEnd */
	ropSynchronizationImportMessageMove = 0x78, /* ropImportMsgMove */
	ropSetPropertiesNoReplicate = 0x79, /* ropSetPropsNoReplicate */
	ropDeletePropertiesNoReplicate = 0x7A, /* ropDeletePropsNoReplicate */
	ropGetStoreState = 0x7B,
	// ropGetRights = 0x7C,
	// ropGetAllPerUserLtids = 0x7D,
	ropSynchronizationOpenCollector = 0x7E, /* ropOpenCollect */
	ropGetLocalReplicaIds = 0x7F, /* ropGetLrepIds */
	ropSynchronizationImportReadStateChanges = 0x80, /* ropImportReads */
	ropResetTable = 0x81,
	ropSynchronizationGetTransferState = 0x82, /* ropFXGetIncrState */
	ropSynchronizationOpenAdvisor = 0x83, /* ropOpenAdvisor */
	ropRegisterSynchronizationNotifications = 0x84, /* ropRegICSNotifs */
	// ropOpenCStream = 0x85,
	ropTellVersion = 0x86,
	ropOpenPublicFolderByName = 0x87, /* ropOpenFolderByName */
	ropSetSynchronizationNotificationGuid = 0x88, /* ropSetICSNotifGUID */
	ropFreeBookmark = 0x89,
	ropDeletePublicFolderByName = 0x8A, /* ropDeleteFolderByName */
	// ropConfigNntpNewsfeed = 0x8B,
	// ropCheckMsgIds = 0x8C,
	// ropBeginNntpArticle = 0x8D,
	// ropWriteNntpArticle = 0x8E,
	// ropSaveNntpArticle = 0x8F,
	ropWriteAndCommitStream = 0x90, /* ropWriteCommitStream */
	ropHardDeleteMessages = 0x91,
	ropHardDeleteMessagesAndSubfolders = 0x92, /* ropHardEmptyFolder */
	ropSetLocalReplicaMidsetDeleted = 0x93, /* ropSetLocalRepMidsetDeleted */
	// ropTransportDeliverMessage = 0x94,
	// ropTransportDoneWithMessage = 0x95,
	// ropIdFromLegacyDN = 0x96,
	// ropSetAuthenticatedContext = 0x97,
	// ropCopyToEx = 0x98,
	// ropImportMsgChangePartial = 0x99,
	// ropSetMessageFlags = 0x9A,
	// ropMoveCopyMessagesEx = 0x9B,
	// ropFXSrcGetBufferEx = 0x9C,
	// ropFXDstPutBufferEx = 0x9D,
	// ropTransportDeliverMessage2 = 0x9E,
	// ropCreateMessageEx = 0x9F,
	// ropMoveCopyMessagesEID = 0xA0,
	// ropTransportDupDlvCheck = 0xA1,
	// ropPrereadMessages = 0xA2,
	// ropWriteStreamExtended = 0xA3,
	// ropGetContentsTableExtended = 0xA4,
	// ropStartScope = 0xA5, (wireshark)
	// ropEndScope = 0xA6, (wireshark)
	// ropEchoString = 0xC8, (wireshark)
	// ropEchoInt = 0xC9, (wireshark)
	// ropEchoBinary = 0xCA, (wireshark)
	ropBackoff = 0xF9,
	// ropExtendedError = 0xFA,
	// ropBookmarkReturned = 0xFB,
	// ropFidReturned = 0xFC,
	/* HSOT = Handle in Server Object Table, a.k.a. SOHT = Server Object Handle Table */
	// ropHsotReturned = 0xFD,
	ropLogon = 0xFE,
	ropBufferTooSmall = 0xFF,
	/* update names.cpp! */
};

#ifdef __cplusplus
extern "C" {
#endif

extern const char *rop_idtoname(unsigned int i);

#ifdef __cplusplus
}
#endif
