Last active
August 29, 2015 14:05
-
-
Save hirosof/c84f9e45b81029babdfb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef __HSMATHLIB__ | |
#define __HSMATHLIB__ | |
#include <Windows.h> | |
#ifdef HSMATHLIB_EXPORTS | |
#ifdef HSMATHDLL_EXPORTS | |
#define HSMATHLIB_EXPORT extern "C" __declspec (dllexport) | |
#define HSMATHLIB_VAREXPORT extern | |
#else | |
#define HSMATHLIB_EXPORT | |
#define HSMATHLIB_VAREXPORT extern | |
#endif | |
#else | |
#ifdef HSMATHLIB_USESTATIC | |
#define HSMATHLIB_EXPORT | |
#define HSMATHLIB_VAREXPORT extern | |
#else | |
#define HSMATHLIB_EXPORT extern "C" __declspec (dllimport) | |
#define HSMATHLIB_VAREXPORT extern __declspec(dllimport) | |
#endif | |
#endif | |
//基本クラス | |
HSMATHLIB_VAREXPORT const GUID IID_IHSMathBase; | |
class __declspec(uuid("{1FE06D33-B8D3-40E0-B433-B89FF2FD45D1}")) IHSMathBase { | |
public: | |
virtual DWORD AddReference(void) = 0; | |
virtual DWORD GetReference(void) = 0; | |
virtual BOOL InquiryType(const GUID TargetGuid) = 0; | |
virtual void Dispose(void) = 0; | |
virtual DWORD Release(void) = 0; | |
}; | |
//基本クラスの継承先で使うマクロ | |
#define HSMATHLIB_CLASSWITHGUID(uuidstr , name) class __declspec(uuid(uuidstr)) name : public IHSMathBase | |
#define HSMATHLIB_PROPERTY_RW(GetFunc , SetFunc , Type ,PropName) __declspec(property(get = GetFunc , put = SetFunc)) Type PropName | |
//複素数インタフェースクラス | |
HSMATHLIB_VAREXPORT const GUID IID_IHSMathComplex; | |
HSMATHLIB_CLASSWITHGUID("{4F3E7885-91E4-4DBE-A56F-A2BEC9342829}", IHSMathComplex) { | |
public: | |
//実数部 | |
virtual void SetRealNumber(double Real) = 0; | |
virtual double GetRealNumber(void) = 0; | |
HSMATHLIB_PROPERTY_RW(GetRealNumber, SetRealNumber, double, Real); | |
//虚数部 | |
virtual void SetImaginaryNumber(double Real) = 0; | |
virtual double GetImaginaryNumber(void) = 0; | |
HSMATHLIB_PROPERTY_RW(GetImaginaryNumber, SetImaginaryNumber, double, Imag); | |
//基本演算 | |
virtual bool Add(IHSMathComplex *pComplex) = 0; | |
virtual void Add(double Real , double Imaginary) = 0; | |
}; | |
#endif /*__HSMATHLIB__*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment