From fbbba3f63db427c14e342afa6ba6e3db90b28e78 Mon Sep 17 00:00:00 2001 From: xj qian <qianxj15@sina.com> Date: 星期三, 26 六月 2024 11:33:12 +0800 Subject: [PATCH] update element and arg ptr --- jrj/xframe/wobject/xaserverarg.hpp | 41 ++++++++++++++++++++++++++++++++++++++++- 1 files changed, 40 insertions(+), 1 deletions(-) diff --git a/jrj/xframe/wobject/xaserverarg.hpp b/jrj/xframe/wobject/xaserverarg.hpp index 0909ca6..30dade5 100644 --- a/jrj/xframe/wobject/xaserverarg.hpp +++ b/jrj/xframe/wobject/xaserverarg.hpp @@ -26,17 +26,45 @@ static int ReleaseInstance(IXAServerArg * pArgs); int SetXml(LPTSTR pStrXml); + public: + unsigned long AddRef_(); + unsigned long Release_(); }; }}; +using kxaserverarg = Hxsoft::XFrame::IXAServerArg; class xaserverarg : public xnative { public: + xaserverarg(kxaserverarg* impl) :xnative(impl) {} xaserverarg():xnative(Hxsoft::XFrame::IXAServerArg::CreateInstance()){} + xaserverarg(xaserverarg & rhs){ + ((kxaserverarg*)rhs.getNativePointer())->AddRef_(); + this->setNativePointer(rhs.GetNativePtr()); + } ~xaserverarg() { - Hxsoft::XFrame::IXAServerArg::ReleaseInstance((Hxsoft::XFrame::IXAServerArg*)getNativePointer()); + ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->Release_(); + //Hxsoft::XFrame::IXAServerArg::ReleaseInstance((Hxsoft::XFrame::IXAServerArg*)getNativePointer()); } +public: + kxaserverarg* GetKXAServerArg() + { + return (kxaserverarg*)this->GetNativePtr(); + } +public: + xaserverarg& operator =(xaserverarg& rhs) + { + return operator =(rhs.GetKXAServerArg()); + } + xaserverarg& operator =(kxaserverarg* rhs) + { + if (GetKXAServerArg())GetKXAServerArg()->Release_(); + if (rhs)rhs->AddRef_(); + SetNativePtr(rhs); + return *this; + } + public: /*int AddArg(string argname,double val,string typ=NULL)// alias "?AddArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_WNO@Z"; { @@ -112,6 +140,17 @@ return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetParam(pArgName); } + template<class T> + int SetParam(LPCTSTR pArgName, T pValue) + { + return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetParam(pArgName, (LPARAM)pValue); + } + + template<class T> + T GetParam(LPCTSTR pArgName) + { + return (T)((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetParam(pArgName); + } }; class xaserverargPtr -- Gitblit v1.9.3