This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
nekohook/modules/source2013/sdk/mathlib/public/steam/isteamunifiedmessages.h
2020-08-04 13:13:01 -04:00

78 lines
3.0 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Interface to unified messages client
//
// You should not need to use this interface except if your product
//is using a language other than C++. Contact your Steam Tech contact for more
//details.
//
//=============================================================================
#ifndef ISTEAMUNIFIEDMESSAGES_H
#define ISTEAMUNIFIEDMESSAGES_H
#ifdef _WIN32
#pragma once
#endif
typedef uint64 ClientUnifiedMessageHandle;
class ISteamUnifiedMessages {
public:
static const ClientUnifiedMessageHandle k_InvalidUnifiedMessageHandle = 0;
// Sends a service method (in binary serialized form) using the Steam
// Client. Returns a unified message handle (k_InvalidUnifiedMessageHandle
// if could not send the message).
virtual ClientUnifiedMessageHandle SendMethod(const char *pchServiceMethod,
const void *pRequestBuffer,
uint32 unRequestBufferSize,
uint64 unContext) = 0;
// Gets the size of the response and the EResult. Returns false if the
// response is not ready yet.
virtual bool GetMethodResponseInfo(ClientUnifiedMessageHandle hHandle,
uint32 *punResponseSize,
EResult *peResult) = 0;
// Gets a response in binary serialized form (and optionally release the
// corresponding allocated memory).
virtual bool GetMethodResponseData(ClientUnifiedMessageHandle hHandle,
void *pResponseBuffer,
uint32 unResponseBufferSize,
bool bAutoRelease) = 0;
// Releases the message and its corresponding allocated memory.
virtual bool ReleaseMethod(ClientUnifiedMessageHandle hHandle) = 0;
// Sends a service notification (in binary serialized form) using the Steam
// Client. Returns true if the notification was sent successfully.
virtual bool SendNotification(const char *pchServiceNotification,
const void *pNotificationBuffer,
uint32 unNotificationBufferSize) = 0;
};
#define STEAMUNIFIEDMESSAGES_INTERFACE_VERSION \
"STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001"
// callbacks
#if defined(VALVE_CALLBACK_PACK_SMALL)
#pragma pack(push, 4)
#elif defined(VALVE_CALLBACK_PACK_LARGE)
#pragma pack(push, 8)
#else
#error isteamclient.h must be included
#endif
struct SteamUnifiedMessagesSendMethodResult_t {
enum { k_iCallback = k_iClientUnifiedMessagesCallbacks + 1 };
ClientUnifiedMessageHandle
m_hHandle; // The handle returned by SendMethod().
uint64 m_unContext; // Context provided when calling SendMethod().
EResult m_eResult; // The result of the method call.
uint32 m_unResponseSize; // The size of the response.
};
#pragma pack(pop)
#endif // ISTEAMUNIFIEDMESSAGES_H