From b8acff9a95f359f4f378b5626585e02f002cf0a7 Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期二, 23 七月 2024 10:43:20 +0800
Subject: [PATCH] update
---
jrj/xframe/wobject/xaserverarg.hpp | 87 ++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 84 insertions(+), 3 deletions(-)
diff --git a/jrj/xframe/wobject/xaserverarg.hpp b/jrj/xframe/wobject/xaserverarg.hpp
index 0faff43..e42a90e 100644
--- a/jrj/xframe/wobject/xaserverarg.hpp
+++ b/jrj/xframe/wobject/xaserverarg.hpp
@@ -1,5 +1,6 @@
#pragma once
#include "xnative.hpp"
+#include "xcontrol.hpp"
namespace Hxsoft{ namespace XFrame
{
@@ -26,17 +27,54 @@
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) {
+ if(rhs.GetKXAServerArg()) rhs.GetKXAServerArg()->AddRef_();
+ this->setNativePointer(rhs.GetNativePtr());
+ }
+ 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;
+ }
+
+ operator LPARAM()
+ {
+ return (LPARAM)this;
+ }
+
public:
/*int AddArg(string argname,double val,string typ=NULL)// alias "?AddArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_WNO@Z";
{
@@ -72,7 +110,7 @@
{
return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetArg(argname,val,typ);
}
- string GetString() //alias "?GetString@IXAServerArg@XFrame@Hxsoft@@QAEPB_WXZ" from "xframe.dll";
+ xstring GetString() //alias "?GetString@IXAServerArg@XFrame@Hxsoft@@QAEPB_WXZ" from "xframe.dll";
{
return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetString();
}
@@ -97,9 +135,24 @@
{
return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetArgInt((LPTSTR)argname);
}
- string GetArgString(string argname) //alias "?GetArgString@IXAServerArg@XFrame@Hxsoft@@QAEPA_WPA_W@Z";
+ xstring GetArgString(string argname) //alias "?GetArgString@IXAServerArg@XFrame@Hxsoft@@QAEPA_WPA_W@Z";
{
return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetArgString((LPTSTR)argname);
+ }
+
+ int SetParam(LPCTSTR pArgName, xcontrol& xc)
+ {
+ return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetParam(pArgName,(LPARAM)xc.getNativePointer());
+ }
+
+ int SetParam(LPCTSTR pArgName, HWND hWnd)
+ {
+ return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetParam(pArgName, (LPARAM)hWnd);
+ }
+
+ int SetParam(LPCTSTR pArgName, KXMLDOMElement ele)
+ {
+ return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetParam(pArgName, ele.ptr());
}
int SetParam(LPCTSTR pArgName, LPARAM pValue)
@@ -112,4 +165,32 @@
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
+{
+public:
+ xaserverarg* arg;
+public:
+ xaserverargPtr() :arg(new xaserverarg) {}
+ xaserverargPtr(LPARAM* val) :arg((xaserverarg*)val) {}
+ xaserverargPtr(xaserverarg* val) :arg(val) {}
+ xaserverargPtr(xaserverarg val) :arg(new xaserverarg(val)){}
+public:
+ xaserverarg* value() { return arg; }
+public:
+ operator xaserverarg& () { return *arg; }
+ operator xaserverarg* () { return arg; }
+ xaserverarg* operator ->() { return arg; }
};
\ No newline at end of file
--
Gitblit v1.9.3