Altium C++ SDK 3.0
Loading...
Searching...
No Matches
DXP.SetWrappers.h
Go to the documentation of this file.
1#pragma once
2
3#ifndef DXP_SETWRAPPERS_H_INCLUDED
4#define DXP_SETWRAPPERS_H_INCLUDED
5
6#include <comdef.h>
7#include <set>
8
9#pragma pack(push, 8)
10
11/*..............................................................................*/
12struct __declspec(uuid("0130c08b-40a4-4ef1-8bf3-c605d284ae16"))
13ITransportSet : public IUnknown
14{
15 virtual HRESULT __stdcall GetData(int * D0, int * D1, int * D2, int * D3, int * D4, int * D5, int * D6, int * D7) = 0;
16 virtual HRESULT __stdcall SetData(int D0, int D1, int D2, int D3, int D4, int D5, int D6, int D7) = 0;
17};
18_COM_SMARTPTR_TYPEDEF(ITransportSet, __uuidof(ITransportSet)); // ITransportSetPtr
19/*..............................................................................*/
20
21/*..............................................................................*/
23{
24protected:
25 virtual HRESULT __stdcall GetData(int * D0, int * D1, int * D2, int * D3, int * D4, int * D5, int * D6, int * D7);
26 virtual HRESULT __stdcall SetData(int D0, int D1, int D2, int D3, int D4, int D5, int D6, int D7);
27
28public:
29 int mask[8];
30
32 {
33 memset(mask, 0, sizeof(mask));
34 }
35
36 virtual HRESULT __stdcall QueryInterface(const IID & riid, void ** ppvObject);
37 virtual ULONG __stdcall AddRef (void );
38 virtual ULONG __stdcall Release(void );
39};
40/*..............................................................................*/
41
42/*..............................................................................*/
43template <typename T>
45{
46public:
47 static std::set<T> GetEnumSet(const int mask[8], const int Count)
48 {
49 std::set<T> setVal;
50
51 for(int i = 0; i < Count; ++i)
52 if (mask[i/32] & (0x01<<(i%32)))
53 setVal.insert((T)i);
54
55 return setVal;
56 }
57
58 static void GetSetMask(const std::set<T> & setVal, const int Count, int mask[8])
59 {
60 memset(mask, 0, 8);
61
62 for(int i = 0; i < Count; i++)
63 if (setVal.find((T)i) != setVal.end())
64 mask[i/32] |= (0x01<<(i%32));
65 }
66};
67/*..............................................................................*/
68
69#pragma pack(pop)
70
71#endif // DXP_SETWRAPPERS_H_INCLUDED
_COM_SMARTPTR_TYPEDEF(ITransportSet, __uuidof(ITransportSet))
¥ ¼6† i
Definition EDP.Interfaces.cpp:4612
virtual ULONG __stdcall Release(void)
virtual HRESULT __stdcall SetData(int D0, int D1, int D2, int D3, int D4, int D5, int D6, int D7)
virtual ULONG __stdcall AddRef(void)
virtual HRESULT __stdcall GetData(int *D0, int *D1, int *D2, int *D3, int *D4, int *D5, int *D6, int *D7)
int mask[8]
Definition DXP.SetWrappers.h:29
CTransportSet()
Definition DXP.SetWrappers.h:31
virtual HRESULT __stdcall QueryInterface(const IID &riid, void **ppvObject)
Definition DXP.SetWrappers.h:45
static void GetSetMask(const std::set< T > &setVal, const int Count, int mask[8])
Definition DXP.SetWrappers.h:58
static std::set< T > GetEnumSet(const int mask[8], const int Count)
Definition DXP.SetWrappers.h:47
Definition DXP.SetWrappers.h:14
virtual HRESULT __stdcall SetData(int D0, int D1, int D2, int D3, int D4, int D5, int D6, int D7)=0
virtual HRESULT __stdcall GetData(int *D0, int *D1, int *D2, int *D3, int *D4, int *D5, int *D6, int *D7)=0