mirror of
https://github.com/ncblakely/GiantsTools
synced 2024-11-23 22:55:37 +01:00
25 lines
497 B
C
25 lines
497 B
C
|
#pragma once
|
||
|
|
||
|
#ifndef DECLSPEC_UUID
|
||
|
#if (_MSC_VER >= 1100) && defined(__cplusplus)
|
||
|
#define DECLSPEC_UUID(x) __declspec(uuid(x))
|
||
|
#else
|
||
|
#define DECLSPEC_UUID(x)
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#define DEFINE_SERVICE(iid, iface) \
|
||
|
struct DECLSPEC_UUID(iid) iface; \
|
||
|
struct iface : IGameService \
|
||
|
|
||
|
#define DEFINE_SERVICE_MULTI(iid, iface, ...) \
|
||
|
struct DECLSPEC_UUID(iid) iface; \
|
||
|
struct iface : IGameService, __VA_ARGS__ \
|
||
|
|
||
|
/// <summary>
|
||
|
/// Base interface for a game service.
|
||
|
/// </summary>
|
||
|
struct IGameService
|
||
|
{
|
||
|
};
|