intercom-common 0.3.0

See 'intercom'
Documentation

#ifndef INTERCOM_LIBRARY_test_lib_H
#define INTERCOM_LIBRARY_test_lib_H

#include <array>
#include <intercom.h>

namespace test_lib
{
    class Descriptor
    {
    public:
        static const char NAME[];
        static const char WINDOWS_NAME[];
        static const char POSIX_NAME[];
    };

namespace raw
{
    struct Foo;
    struct IAllocator;
    struct Foo : IUnknown
    {
        static const intercom::IID ID;
        virtual uint32_t INTERCOM_CC Method(uint32_t a) = 0;
    };
    struct IAllocator : IUnknown
    {
        static const intercom::IID ID;
        virtual intercom::BSTR INTERCOM_CC AllocBstr(intercom::BSTR text, uint32_t len) = 0;
        virtual void INTERCOM_CC FreeBstr(intercom::BSTR bstr) = 0;
        virtual void* INTERCOM_CC Alloc(size_t len) = 0;
        virtual void INTERCOM_CC Free(void* ptr) = 0;
    };
    class AllocatorDescriptor
    {
    public:
        static const intercom::CLSID ID;

        static const std::array<intercom::IID, 1> INTERFACES;

        using Library = test_lib::Descriptor;

        AllocatorDescriptor() = delete;
        ~AllocatorDescriptor() = delete;
    };

}
}

#ifdef INTERCOM_FLATTEN_DECLARATIONS
    static constexpr intercom::IID IID_Foo = {0x4cb2a593,0xc19f,0x320b,{0x62,0xb2,0x03,0xed,0x6a,0x7c,0x33,0xf0}};
    using Foo = test_lib::raw::Foo;
    static constexpr intercom::IID IID_IAllocator = {0x18ee22b3,0xb0c6,0x44a5,{0xa9,0x4a,0x7a,0x41,0x76,0x76,0xfb,0x66}};
    using IAllocator = test_lib::raw::IAllocator;
    static constexpr intercom::CLSID CLSID_Allocator = {0xdf3c35c1,0xcdd2,0x3b15,{0x6a,0x24,0xa7,0xe9,0xd6,0xb3,0xdd,0xf0}};
#endif

#endif