From 9b3b2eb20b09e13da837a28f16e552ba70a090c4 Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期四, 24 四月 2025 14:48:21 +0800
Subject: [PATCH] update

---
 jrj/project/printview/Template.Print.ViewEx.cpp |  559 ++++++++++++++++++++++++++-----------------------------
 1 files changed, 266 insertions(+), 293 deletions(-)

diff --git a/jrj/project/printview/Template.Print.ViewEx.cpp b/jrj/project/printview/Template.Print.ViewEx.cpp
index 04de185..3f1ec4a 100644
--- a/jrj/project/printview/Template.Print.ViewEx.cpp
+++ b/jrj/project/printview/Template.Print.ViewEx.cpp
@@ -1,13 +1,31 @@
+
+#include <guiddef.h>
+#include <exdisp.h>		// Defines of stuff like IWebBrowser2. This is an include file with Visual C 6 and above
+#include <mshtml.h>		// Defines of stuff like IHTMLDocument2. This is an include file with Visual C 6 and above
+#include <mshtmhst.h>	// Defines of stuff like IDocHostUIHandler. This is an include file with Visual C 6 and above
+#include <Shlwapi.h>
+#include <Windows.h>
+#include <comutil.h>
+
+#undef _XWIN
+
 #include <wobject/xstring.hpp>
 #include <xcontrol/xtreeview.hpp>
 #include <xcontrol/xdwgrid.hpp>
 #include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xhtml.hpp>
+#include <wobject/xutil.hpp>
 
 #include "vbusiness/vframe/maint.vframe.vbusiness.hpp"
 #include "viewobject/view.base.hpp"
+#include <xcontrol/xcell.hpp>
+#include <xcontrol/xexcel.hpp>
+#include <xcontrol/xhtml.hpp>
+#include <win32/xfile.hpp>
 
 using xml = KXMLDOMDocument;
 
+#if 0
 namespace _excel for ole "Excel.Application,{00020813-0000-0000-C000-000000000046}";
 namespace _mshtml for ole "MSHtml,{3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}";
 
@@ -22,46 +40,15 @@
 	void SaveToFile(xstring filename) alias "?SaveToFile@CExcelApplication@@QAEXQA_W@Z";
 	void Quit() alias "?Quit@CExcelApplication@@QAEXXZ";
 };
-
-struct MYOPENFILENAMEW
-{
-   unsigned int	lStructSize;
-   unsigned int   hwndOwner;
-   unsigned int   hInstance;
-   xstring		     	lpstrFilter;
-   
-   xstring       		lpstrCustomFilter;
-   unsigned int   nMaxCustFilter;
-   unsigned int        nFilterIndex;
-   xstring       			 lpstrFile;
-   
-   unsigned int        nMaxFile;
-   xstring       			 lpstrFileTitle;
-   unsigned int        nMaxFileTitle;
-   xstring      lpstrInitialDir;
-   
-   xstring      			lpstrTitle;
-   unsigned int       Flags;
-   unsigned short   nFileOffset;
-   unsigned short   nFileExtension;
-   xstring      lpstrDefExt;
-   
-   unsigned int   lCustData;
-   unsigned int 	lpfnHook;
-   xstring      lpTemplateName;
-   
-	//_WIN32_WINNT >= 0x0500
-   unsigned int		 pvReserved;
-   unsigned int        dwReserved;
-   unsigned int        FlagsEx;
-	// (_WIN32_WINNT >= 0x0500)
-};
+#endif
 	
-class  __declspec(dllexport) TemplatePrintViewEx : public xframe
+DeclWinObject_(TemplatePrintViewEx, xframe)
 {	
+	CreateWinObject_(TemplatePrintViewEx, xframe)
 public:
-	xole ole_print;
+	xhtml ole_print;
 	xcell cell;
+	xstring m_SupplierName;
 	xstring m_EntityName;
 	xstring m_EntityID;
 	xstring m_EntityNo;
@@ -70,7 +57,6 @@
 	bool updated;
 
 	xstring   htmlStr;
-	cexcel   excel;
 	bool 	   editing;
 
 	xstring  billName ;
@@ -82,49 +68,24 @@
 	//bool showgrid;
 	bool PaperPrint;
 
+#if 0
+	cexcel   excel;
 	static stdcall int GetModuleFileName(int hModule ,xstring lpFileName ,int nSize ) native from "kernel32.dll" alias "GetModuleFileNameW";
 	static stdcall int PathRemoveFileSpec(xstring lpFileName ) native from "shlwapi.dll" alias "PathRemoveFileSpecW";
 	static stdcall int DeleteFile(xstring lpFileName) native from "kernel32.dll" alias "DeleteFileW";	
 	static stdcall bool GetSaveFileName(ref MYOPENFILENAMEW)native from "comdlg32.dll" alias "GetSaveFileNameW"; 
+#endif
 
-public:
-	TemplatePrintViewEx(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
-public:
-	static TemplatePrintViewEx* CreateInstance(void* implPtr, void* hWnd)
+
+	xstring GetMySaveFileName(xstring initFileName, xstring filter, xstring ext)
 	{
-		TemplatePrintViewEx* pWin = new TemplatePrintViewEx(implPtr, (HWND)hWnd);
-		return pWin;
-	}
-	xstring GetModulePath()
-	{
-		xstring str =L"";
-		str = str.space(255);
-		GetModuleFileName(0,str,250);
-		PathRemoveFileSpec(str);
-		return str;
-	}
-	xstring GetModuleTmpPath()
-	{
-		xstring str =L"";
-		str = str.space(255);
-		GetModuleFileName(0,str,250);
-		PathRemoveFileSpec(str);
-		xstring tmp = str + L"\\Temp";
-		xaserver::CreateDirectory(tmp);
-		return tmp;
-	}
-	
-	xstring GetSaveFileName(xstring initFileName, xstring filter, xstring ext)
-	{
-		char[]  szFileName = new char[255] ;
-		char[]  szPath =  new char[255];
-		szFileName[0] = 0;
-		szPath[0] = 0;
+		wchar_t  szFileName[255] = { 0 };
+		wchar_t  szPath[255] = { 0 };
 		
 		if(initFileName !=L"")
 		{
 			int len = initFileName.length();
-			char[] tmp = initFileName;
+			const wchar_t* tmp = initFileName;
 			for(int i=0; i<len+1;i++)
 			{
 				//szFileName[i] = tmp[i];
@@ -133,10 +94,11 @@
 		}
 		
 		int	 nFilterIndex = 1;
-		ref MYOPENFILENAMEW ofn = new MYOPENFILENAMEW;
-
-		ofn.lStructSize = 88;//sizeof(ofn);
-		ofn.hwndOwner = 0;
+		OPENFILENAMEW ofn = { 0 };
+		//::ZeroMemory(&ofn,sizeof(OPENFILENAMEW))
+		//ofn.lStructSize = 88;//sizeof(ofn);
+		ofn.lStructSize = sizeof(ofn);
+		ofn.hwndOwner = GetHWND();
 		ofn.hInstance = 0;
 		ofn.lpstrFilter = filter;
 			//"JPEG 文件(*.jpg)\0*.jpg;*.jpeg;*.png;*.gif;*.bmp\0全部文件(*.*)\0*.*\0";
@@ -157,14 +119,13 @@
 		ofn.lpTemplateName = 0;
 
 		//debugbreak();
-		if(GetSaveFileName(ofn))
+		if(xfile::GetSaveFileNameW(ofn))
 		{
-			delete ofn;
 			return szPath;
 		}
 		else
 		{
-			return "";
+			return L"";
 		}
 	}
 			
@@ -177,22 +138,21 @@
 			if(m_EntityName==L"SaleOrder") pre=L"PI";
 			if(m_EntityName==L"GDN3")pre=L"INV";
 		}
-		xstring file1 =  GetSaveFileName(pre+m_EntityNo+L".xlsx",
-			"Excel1文件(*.xlsx)\0*.xlsx;*.xls\0Excel97文件(*.xls)\0*.xls\0PDF文件(*.pdf)\0*.pdf\0",
-			"xlsx");
+		if (m_EntityName == L"VATNotify")m_EntityNo = m_EntityNo + m_SupplierName;
+		xstring file1 =  GetMySaveFileName(pre+m_EntityNo+L".xlsx",
+			L"Excel1文件(*.xlsx)\0*.xlsx;*.xls\0Excel97文件(*.xls)\0*.xls\0PDF文件(*.pdf)\0*.pdf\0",
+			L"xlsx");
 		if(file1 ==L"") return 1;
 		
-		if(win32::PathFileExists(file1))
+		if(PathFileExists(file1))
 		{
-			int res = win32::MessageBox(this.GetHWND(), L"文件已经存在,是否覆盖?",L"提示",4);
+			int res = MessageBox(GetHWND(), L"文件已经存在,是否覆盖?",L"提示",4);
 			if(res != 6) return 1;
 		}
 		
 		trace(L"\r\n link excel");
-		excel = new cexcel;
-		int hexcel = cexcel::CreateInstance();
-		excel.setNativePointer(hexcel);
-		if(hexcel == 0)
+		xexcel excel;
+		if(!excel.GetNativePtr())
 		{
 			alert(L"不能连接Excel");
 			return 1;
@@ -200,64 +160,62 @@
 
 		xstring gid =  publiccode::GetGuid();
 		xstring filename= pre+m_EntityNo+L"_.htm";
-		xutil::SaveToFile(GetModuleTmpPath() + L"\\"+ filename, htmlStr,L"",L"",L"");
+		xutil::SaveToFile(xutil::GetModuleTmpPath() + L"\\"+ filename, htmlStr,NULL,NULL);
 		trace(L"\r\n excel to open");
-		excel .OpenDocument(GetModuleTmpPath() + L"\\"+ filename);
+		excel .OpenDocument(xutil::GetModuleTmpPath() + L"\\"+ filename);
 		trace(L"\r\n trans shape");
 		//excel .put_Visible(true);
 		excel.TransShape();
 		trace(L"\r\n save to tmp excel file");
 		if(file1.find(L".xls"))
 		{
-			if(win32::PathFileExists(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls"))
-				DeleteFile(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls");
-			excel.SaveToFile(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls");
+			if(PathFileExists(xutil::GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls"))
+				DeleteFile(xutil::GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls");
+			excel.SaveToFile(xutil::GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls");
 			//alert(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls");
 		}
 		else 
 		{
-			if(win32::PathFileExists(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx"))
-				DeleteFile(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx");
-			excel.SaveToFile(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx");
+			if(PathFileExists(xutil::GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx"))
+				DeleteFile(xutil::GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx");
+			excel.SaveToFile(xutil::GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx");
 		}
 		
 		trace(L"\r\n save to excel file");
-		if(win32::PathFileExists(file1)) //GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx"))
+		if(PathFileExists(file1)) //GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx"))
 			DeleteFile(file1);
 		excel.SaveToFile(file1);
 		
 		excel.Quit();
-		excel.Release(excel.ptr_native_);
+		//excel.Release(excel.ptr_native_);
 		return 1;
 	}
 	
 	int OntoExcel() //转为Excel
 	{
-		excel = new cexcel;
-		excel.setNativePointer(cexcel::CreateInstance());
-		
+		xexcel  excel;
 		xstring gid =  publiccode::GetGuid();
 		xstring pre = m_EntityName;
 		if(m_EntityName==L"SaleOrder") pre=L"PI";
 		if(m_EntityName==L"GDN3")pre=L"INV";
 		xstring filename= pre+m_EntityNo+L".htm";
 		xstring filenameex= pre+m_EntityNo+L".xlsx";
-		xutil::SaveToFile(GetModuleTmpPath() + L"\\"+ filename, htmlStr,L"",L"",L"");
-		excel .OpenDocument(GetModuleTmpPath() + L"\\"+ filename);
+		xutil::SaveToFile(xutil::GetModuleTmpPath() + L"\\"+ filename, htmlStr,NULL,NULL);
+		excel .OpenDocument(xutil::GetModuleTmpPath() + L"\\"+ filename);
 		//excel.put_Visible(true);
 		excel.TransShape();
-		if(win32::PathFileExists(GetModuleTmpPath() + L"\\"+ filenameex))
-			DeleteFile(GetModuleTmpPath() + L"\\"+ filenameex);
-		excel.SaveToFile(GetModuleTmpPath() + L"\\"+ filenameex);
+		if(PathFileExists(xutil::GetModuleTmpPath() + L"\\"+ filenameex))
+			DeleteFile(xutil::GetModuleTmpPath() + L"\\"+ filenameex);
+		excel.SaveToFile(xutil::GetModuleTmpPath() + L"\\"+ filenameex);
 		excel.put_Visible(true);
 
-		excel.Release(excel.ptr_native_);
+		//excel.Release(excel.ptr_native_);
 		return 1;
 	}
 
 	xstring getfilePath()
 	{
-		xstring path=GetModulePath()+L"\\resource\\image";		
+		xstring path= xutil::GetModulePath()+L"\\resource\\image";
 		xstring filename=L"contract.jpg";
 		filename=L"sign.png";
 		filename=L"jrj_maersk.png";
@@ -281,7 +239,7 @@
 		xstring right=L"";
 		xstring tag=L"";
 		
-		len = L"[$element:".length();
+		len = ((xstring)L"[$element:").length();
 		while(true)
 		{
 			pos = str.find(L"[$element:");
@@ -305,7 +263,7 @@
 		
 		str = pre + str;
 		pre = L"";
-		len = L"[/$element:".length();
+		len = ((xstring)L"[/$element:").length();
 		while(true)
 		{
 			pos = str.find(L"[/$element:");
@@ -336,16 +294,16 @@
 		str = replaceInnerElement(str);
 		return str;
 	}
-	
+#if 0
 	xstring DownLoadSKUNoPic(xstring SKUNo,xstring CustomerID=L"",xstring CustomerItemNo=L"")
 	{
 		
 		if(SKUNo.length()>20) return DownLoadPaperPic(SKUNo);
 		
-		xml x = new xml;
-		x.setNativePointer(xml::CreateInstance());
-		xaserverarg arg = new xaserverarg;
-		arg.setNativePointer(arg.CreateInstance());
+		xml x;
+		
+		xaserverarg arg;
+		
 		arg.AddArg(L"SKUNo",SKUNo);
 		
 		xstring src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
@@ -356,49 +314,47 @@
 			src =L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo";
 		}
 		//trace(L"SKUNo=L"+SKUNo);//要有展示图片查询条件内必定要skuno
-		if(url::get(src,arg.GetString(),x)!=1)
+		if(xurl::get(src,arg.GetString(),x)!=1)
 		{
 			trace(L"error for download skuno pic!");
-			return "";
+			return L"";
 		}
 		
 		xstring spath = L"";
-		xstring path =GetModuleTmpPath();
+		xstring path = xutil::GetModuleTmpPath();
 		xstring ext = L"jpg";
-		if(x.GetXmlDoc().selectSingleNode(L"//FileExt[1]"))
+		if(x.selectSingleNode(L"//FileExt[1]"))
 		{
-			ext = x.GetXmlDoc().selectSingleNode(L"//FileExt[1]").text;
+			ext = x.selectSingleNode(L"//FileExt[1]").text();
 		}else if(CustomerID !=L"")
 		{
 			src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
-			if(url::get(src,arg.GetString(),x)!=1)
+			if(xurl::get(src,arg.GetString(),x)!=1)
 			{
 				trace(L"error for download skuno pic!");
-				return "";
+				return L"";
 			}
-			if(x.GetXmlDoc().selectSingleNode(L"//FileExt[1]"))
-				ext = x.GetXmlDoc().selectSingleNode(L"//FileExt[1]").text;
+			if(x.selectSingleNode(L"//FileExt[1]"))
+				ext = x.selectSingleNode(L"//FileExt[1]").text();
 		}
 			
 		xstring filename = SKUNo + L"." + ext;
-		if(x.GetXmlDoc().selectSingleNode(L"//PicPath[1]"))
-			spath = x.GetXmlDoc().selectSingleNode(L"//PicPath[1]").text;
+		if(x.selectSingleNode(L"//PicPath[1]"))
+			spath = x.selectSingleNode(L"//PicPath[1]").text();
 		if(spath != L"")
 		{
 			 xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
 		}
-		return "file://"+ path+L"/"+filename;
+		return (xstring)L"file://"+ path+L"/"+filename;
 	}
-		
+#endif		
 	xstring DownLoadSKUNoPic(xstring SKUNo,xstring CustomerID=L"",xstring CustomerItemNo=L"")
 	{
 		
 		if(SKUNo.length()>20) return DownLoadPaperPic(SKUNo);
 		
-		xml x = new xml;
-		x.setNativePointer(xml::CreateInstance());
-		xaserverarg arg = new xaserverarg;
-		arg.setNativePointer(arg.CreateInstance());
+		xml x;
+		xaserverarg arg;
 		arg.AddArg(L"SKUNo",SKUNo);
 		
 		xstring src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
@@ -409,99 +365,96 @@
 			src =L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo";
 		}
 		//trace(L"SKUNo=L"+SKUNo);//要有展示图片查询条件内必定要skuno
-		if(url::get(src,arg.GetString(),x)!=1)
+		if(xurl::get(src,arg.GetString(),x)!=1)
 		{
 			trace(L"error for download skuno pic!");
-			return "";
+			return L"";
 		}
 		
 		xstring spath = L"";
-		xstring path =GetModuleTmpPath();
+		xstring path = xutil::GetModuleTmpPath();
 		xstring ext = L"jpg";
-		if(x.GetXmlDoc().selectSingleNode(L"//FileExt[1]"))
+		if(x.selectSingleNode(L"//FileExt[1]"))
 		{
-			ext = x.GetXmlDoc().selectSingleNode(L"//FileExt[1]").text;
+			ext = x.selectSingleNode(L"//FileExt[1]").text();
 		}else if(CustomerID !=L"")
 		{
 			src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
-			if(url::get(src,arg.GetString(),x)!=1)
+			if(xurl::get(src,arg.GetString(),x)!=1)
 			{
 				trace(L"error for download skuno pic!");
-				return "";
+				return L"";
 			}
-			if(x.GetXmlDoc().selectSingleNode(L"//FileExt[1]"))
-				ext = x.GetXmlDoc().selectSingleNode(L"//FileExt[1]").text;
+			if(x.selectSingleNode(L"//FileExt[1]"))
+				ext = x.selectSingleNode(L"//FileExt[1]").text();
 		}
 			
 		xstring filename = SKUNo + L"." + ext;
-		if(x.GetXmlDoc().selectSingleNode(L"//PicPath[1]"))
-			spath = x.GetXmlDoc().selectSingleNode(L"//PicPath[1]").text;
+		if(x.selectSingleNode(L"//PicPath[1]"))
+			spath = x.selectSingleNode(L"//PicPath[1]").text();
 		if(spath != L"")
 		{
 			 xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
 		}
-		return "file://"+ path+L"/"+filename;
+		return L"file://"+ path+L"/"+filename;
 	}
 		
 	xstring GetImageUrl(xstring id)
 	{
-		xml xp=new xml;
-		xp.setNativePointer(xml::CreateInstance());
-		xaserverarg arg_pic=new xaserverarg;
-		arg_pic.setNativePointer(arg_pic.CreateInstance());	
+		xml xp;
+		xaserverarg arg_pic;	
 		arg_pic.AddArg(L"id",id);
 		
 		xstring res = L"/sale/data/productlibrary3/image/url";
-		if(url::get(res,arg_pic.GetString(),xp)!=1)
+		if(xurl::get(res,arg_pic.GetString(),xp)!=1)
 		{
-			xp.GetXml();
+			xp.xml();
 			return 1;
 		}else
 		{
-			xstring path = xp.GetXmlDoc().text;
+			xstring path = xp.text();
 			if(path !=L"") return path;
 		}
 		
-		return "/business/products/chanpin/"+id.left(2)+L"/"+ id+L".jpg";
+		return L"/business/products/chanpin/"+id.left(2)+L"/"+ id+L".jpg";
 	}
 	
 	xstring DownLoadPaperPic(xstring guid)
 	{
-		
-		xstring path =GetModuleTmpPath();
+		xstring path = xutil::GetModuleTmpPath();
 		xstring ext = L"jpg";
 		xstring filename = guid + L"." + ext;
 		xstring spath = GetImageUrl(guid);
 		//alert(spath);
 		xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
-		return "file://"+ path+L"/"+filename;
+		return (xstring)L"file://"+ path+L"/"+filename;
 	}
 			
 	xstring DownLoadPaperPic1(xstring guid)
 	{
-		xstring path =GetModuleTmpPath();
+		xstring path = xutil::GetModuleTmpPath();
 		xstring ext = L"jpg";
 		xstring filename = guid + L"." + ext;
 		xstring str = guid.mid(0,2);
 		xstring spath = L"/business/products/chanpin/"+str+L"/"+guid+L".jpg";
 		xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
-		return "file://"+ path+L"/"+filename;
+		return (xstring)L"file://"+ path+L"/"+filename;
 	}
 	
 	xstring DownLoadUrlPic(xstring src)
 	{
 		xstring guid =  publiccode::GetGuid();
-		xstring path =GetModuleTmpPath();
+		xstring path = xutil::GetModuleTmpPath();
 		xstring ext = L"jpg";
 		xstring filename = guid + L"." + ext;
 		xstring spath = src;
 		xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
-		return "file://"+ path+L"/"+filename;
+		return (xstring)L"file://"+ path+L"/"+filename;
 	}
 	
 	int OnHtml(xaserverarg arg)
 	{
-		int hCursor = xutil::SetCursorWait();
+		HCURSOR hCursor = xutil::SetCursorWait();
 
 		xstring sEntityName = arg.GetArgString(L"EntityName");
 		xstring sEntityID = arg.GetArgString(L"EntityID");
@@ -512,14 +465,13 @@
 			dataUrl = L"/sale/data/"+sEntityName+ L"/"+ dataUrl;
 		if(!m_dataset)
 		{
-			xml x0 = new xml;
-			x0.setNativePointer(xml::CreateInstance());
-			if (url::get(dataUrl,arg.GetString(),x0) != 1)
+			xml x0 ;
+			if (xurl::get(dataUrl,arg.GetString(),x0) != 1)
 			{
 				alert(L"数据集出错了!");
 				return 0;
 			}
-			trace(x0.GetXml());
+			trace(x0.xml());
 			m_dataset = x0;
 		}
 			
@@ -528,23 +480,22 @@
 		arg.AddArg(L"sPath",sPath);
 		m_spath = sPath;
 		
-		xml xsl = new xml;
-		xsl.setNativePointer(xml::CreateInstance());
-		if (url::get(L"/sale/data/SysPrintTemplate/getxsl",arg.GetString(),xsl) != 1)
+		xml xsl;
+		if (xurl::get(L"/sale/data/SysPrintTemplate/getxsl", arg.GetString(), xsl) != 1)
 		{
 			alert(L"数据模板错误!");
 			return 0;
 		}
 		
-		xstring xslStr = xsl.GetXml();
+		xstring xslStr = xsl.xml();
 		
 		xslStr = adjustXsl(xslStr,sPath);
-		xsl.LoadXml(xslStr);
+		xsl.loadXML(xslStr);
 		
 		//trace(m_dataset.GetXml());
 		trace(L"\r\n--------\r\n"+xslStr);
 		
-		m_strHtml = m_dataset.GetXmlDoc().transformNode(xsl.GetXmlDoc());
+		m_strHtml = m_dataset.transformNode(xsl);
 		xstring aspace = m_strHtml.replace(L"[空]",L"&nbsp;",0);
 		aspace = aspace.replace(L"[line]",L"<br/>",0);
 		xstring scontent = aspace.replace(L"<?xml version=\"1.0\"?>",L"",0);
@@ -555,20 +506,20 @@
 		int pos = tail.find(L"src=\"item-picture:");
 		while(pos > 0)
 		{
-			int spos = pos+L"src=\"item-picture:".length();
+			int spos = pos+((xstring)L"src=\"item-picture:").length();
 			int pos1 = tail.find(L"\"",spos+1);
 			xstring skuno = tail.mid(spos,pos1 - spos ).trim();
 			xstring CustomerID=L"";
 			xstring CustomerItemNo=L"";
-			if(skuno.find(L",L")>0)
+			if(skuno.find(L",")>0)
 			{
-				CustomerID = skuno.left(skuno.find(L",L")).trim();
-				skuno = skuno.mid(skuno.find(L",L")+1,256).trim();
+				CustomerID = skuno.left(skuno.find(L",")).trim();
+				skuno = skuno.mid(skuno.find(L",")+1,256).trim();
 			}
-			if(skuno.find(L",L")>0)
+			if(skuno.find(L",")>0)
 			{
-				CustomerItemNo = skuno.left(skuno.find(L",L")).trim();
-				skuno = skuno.mid(skuno.find(L",L")+1,256).trim();
+				CustomerItemNo = skuno.left(skuno.find(L",")).trim();
+				skuno = skuno.mid(skuno.find(L",")+1,256).trim();
 			}
 			xstring src =  DownLoadSKUNoPic(skuno,CustomerID,CustomerItemNo);
 			head += tail.left(pos) + L"src=\"" + src;
@@ -582,7 +533,7 @@
 		int position = tail.find(L"src=\"paper-picture:");
 		while(position > 0)
 		{
-			int sposition = position+L"src=\"paper-picture:".length();
+			int sposition = position+ ((xstring)L"src=\"paper-picture:").length();
 			int position1 = tail.find(L"\"",sposition+1);
 			xstring guid = tail.mid(sposition,position1 - sposition ).trim();
 			xstring src2 =  DownLoadPaperPic(guid);
@@ -597,10 +548,10 @@
 		position = tail.find(L"src=\"src-picture:");
 		while(position > 0)
 		{
-			sposition = position+L"src=\"src-picture:".length();
-			position1 = tail.find(L"\"",sposition+1);
-			guid = tail.mid(sposition,position1 - sposition ).trim();
-			src2 =  DownLoadUrlPic(guid);
+			int sposition = position+((xstring)L"src=\"src-picture:").length();
+			int position1 = tail.find(L"\"",sposition+1);
+			xstring guid = tail.mid(sposition,position1 - sposition ).trim();
+			xstring src2 =  DownLoadUrlPic(guid);
 			head += tail.left(position) + L"src=\"" + src2;
 			tail = tail.mid(position1,999999999);
 			position = tail.find(L"src=\"src-picture:");
@@ -611,8 +562,7 @@
 		htmlStr = scontent;	
 		ole_print.LoadHtml(scontent);	
 		
-		xml x1 = new xml;
-		x1.setNativePointer(xml ::CreateInstance());
+		xml x1;
 		//xstring xcontent = m_strHtml.replace(L"&nbsp;",L"[空]",0);
 		xstring xcontent = m_strHtml.replace(L"[空]",L" ",0);
 		int pos0 = xcontent.find(L"<xml");
@@ -622,15 +572,15 @@
 			xstring str = xcontent.left(pos0)+ xcontent.mid(pos2+6,9999999);
 			xcontent = str;
 		}
-		x1.LoadXml(xcontent);
-		if(x1.GetXmlDoc())
+		x1.loadXML(xcontent);
+		if(x1)
 		{
 			/*if(!showgrid)
 			{
 				SendCtrlCmd(cell,L"xmFormatShowGrid");
 				showgrid = true;
 			}*/
-			cell.LoadTemplate(x1.GetXmlDoc());
+			cell.LoadTemplate(x1);
 			cell.Redraw();
 		}
 
@@ -641,40 +591,61 @@
 		
 	int updateHtml()
 	{
-		_mshtml::IHTMLDocument3 doc = ole_print.GetHtmlDocument();
-		_mshtml::IHTMLElementCollection rows = doc.getElementsByTagName(L"tr");
-		_mshtml::IHTMLElementCollection rows2 = doc.getElementsByTagName(L"td");
-		int len = rows.length;
-		int len2 = rows2.length;
+		return 1;
+		IHTMLDocument3* doc = (IHTMLDocument3 * )ole_print.GetHtmlDocument();
+		IHTMLElementCollection* rows = NULL;
+		IHTMLElementCollection* rows2 = NULL;
+		doc->getElementsByTagName((BSTR)L"tr",&rows);
+		doc->getElementsByTagName((BSTR)L"td",&rows2);
+		long len;
+		rows->get_length(&len);
+		long len2;
+		rows2->get_length(&len2);
 		for(int i=0; i < len - 1;i++)
 		{
-			_mshtml::IHTMLElement e = rows.item(i,i);
-			e.style.setAttribute(L"height",e.offsetHeight,0);
-			e.Release();
+			_variant_t var;
+			IHTMLElement* e=0;
+			IHTMLStyle* pstyle=0;
+			long offsetHeight=0;
+			rows->item((_variant_t)i, (_variant_t)i,(IDispatch**) & e);
+			e->get_style(&pstyle);
+			e->get_offsetHeight(&offsetHeight);
+			pstyle->setAttribute((BSTR)L"height",(_variant_t)offsetHeight, 0);
+			e->Release();
+			pstyle->Release();
 		}
-		for( i=0; i < len2 - 1;i++)
+		for( int i=0; i < len2 - 1;i++)
 		{
-			_mshtml::IHTMLElement e2 = rows2.item(i,i);
-			e2.style.setAttribute(L"width",e.offsetWidth,0);
-			e2.Release();
+			IHTMLElement* e = 0;
+			IHTMLStyle* pstyle = 0;
+			long offsetWidth=0;
+			rows->item((_variant_t)i, (_variant_t)i, (IDispatch**)&e);
+			e->get_style(&pstyle);
+			e->get_offsetHeight(&offsetWidth);
+			pstyle->setAttribute((BSTR)L"width", (_variant_t)offsetWidth, 0);
+			e->Release();
+			pstyle->Release();
 		}
-		rows.Release();
-		doc.release();
-		htmlStr = doc.documentElement.outerHtml;
+		rows->Release();
+		doc->Release();
+
+		//IHTMLElement* e = 0;
+		//doc->get_documentElement(&e);
+		//BSTR bstrHtml=0;
+		//e->get_outerHTML(&bstrHtml);
+
 		return 1;
 	}
 	
 	int OnOpenDocument()
 	{
-		if(GetParam())
+		if(GetWinParam())
 		{
-			xaserverarg arg = new xaserverarg;
-			arg.setNativePointer(GetParam());
-			int p = arg.ptr_native_;
+			xaserverarg arg=GetArg();
 			arg.AddArg(L"action",L"open");
 			arg.AddArg(L"DocumentID",L"");
 			arg.AddArg(L"ok",L"");
-			openUrl(L"/sale/view/view.dlg/xpage/Template/PrintDialog", p);
+			openUrl(L"/sale/view/view.dlg/xpage/Template/PrintDialog", &arg);
 			xstring ret = arg.GetArgString(L"return");
 			xstring action = arg.GetArgString(L"action");
 			if (ret ==L"ok") 
@@ -682,24 +653,24 @@
 				if(action ==L"open")
 				{
 					m_DocumentID = arg.GetArgString(L"DocumentID");
-					xml x = new xml;
-					x.setNativePointer(xml::CreateInstance());	
+					xml x;
+						
 					xstring prestr = m_DocumentID.mid(0,2);
-					prestr = prestr.upper();
+					prestr = prestr.toUpper();
 					xaserver::LoadUrl(GetServerUrl(),L"/business/data/bill/"+prestr+L"/"+ m_DocumentID+L".jpg",L"",x);
-					if(x.GetXml()!=L"")
+					if((xstring)x.xml()!=L"")
 					{
-						if(x.GetXmlDoc())
+						if(x)
 						{
 							/*if(!showgrid)
 							{
 								SendCtrlCmd(cell,L"xmFormatShowGrid");
 								showgrid = true;
 							}*/
-							cell.LoadTemplate(x.GetXmlDoc());
+							cell.LoadTemplate(x);
 							cell.Redraw();
 						}
-						ole_print.LoadHtml(x.GetXml());
+						ole_print.LoadHtml(x.xml());
 					}else
 					{
 						ole_print.LoadHtml(L"<html><body>未找到对应的文档</body></html>");
@@ -709,13 +680,14 @@
 				else
 				{
 					xstring templateName = arg.GetArgString(L"template-name");
-					win32::SetWindowText(GetHWND(),templateName);
+					SetWindowText(GetHWND(),templateName);
 					billName = templateName;
 					billPre = arg.GetArgString(L"template-pre");
 					billID = arg.GetArgString(L"template-guid");
 					m_EntityID  = arg.GetArgString(L"EntityID");
 					m_EntityNo = arg.GetArgString(L"EntityNo");
 					m_EntityName  = arg.GetArgString(L"EntityName");
+					m_SupplierName = arg.GetArgString(L"SupplierName");
 					m_DocumentID = L"";
 				
 					OnHtml(arg);
@@ -728,13 +700,11 @@
 		
 	int OnPrintDialog()
 	{		
-		if(GetParam())
+		if(GetWinParam())
 		{
-			xaserverarg arg = new xaserverarg;
-			arg.setNativePointer(GetParam());
-			int p = arg.ptr_native_;
+			xaserverarg arg=GetArg();
 			arg.AddArg(L"ok",L"");
-			openUrl(L"/sale/view/view.dlg/xpage/Template/PrintDialog", p);
+			openUrl(L"/sale/view/view.dlg/xpage/Template/PrintDialog", &arg);
 			xstring ret = arg.GetArgString(L"return");
 			xstring action = arg.GetArgString(L"action");
 			if (ret ==L"ok") 
@@ -743,58 +713,59 @@
 				if(action ==L"open")
 				{
 					m_DocumentID = arg.GetArgString(L"DocumentID");
-					xml x = new xml;
-					x.setNativePointer(xml::CreateInstance());	
+					xml x;
+						
 					xstring prestr = m_DocumentID.mid(0,2);
-					prestr = prestr.upper();
+					prestr = prestr.toUpper();
 					xaserver::LoadUrl(GetServerUrl(),L"/business/data/bill/"+prestr+L"/"+ m_DocumentID+L".jpg",L"",x);
-					if(x.GetXml()!=L"")
+					if((xstring)x.xml()!=L"")
 					{
 						
 						xstring content = L"";
-						if(x.GetXmlDoc().documentElement.tagName==L"Bill")
+						if((xstring)x.documentElement().tagName() == L"Bill")
 						{
-							content = x.GetXmlDoc().documentElement.text;
+							content = x.documentElement().text();
 							content = content.replace(L"[空]",L"&nbsp",0);
-							ole_print.LoadHtml(content);
+							ole_print.LoadHtml((LPTSTR)content.c_str());
 						}else
 						{
-							if(x.GetXmlDoc())
+							if(x)
 							{
 								/*if(!showgrid)
 								{
 									SendCtrlCmd(cell,L"xmFormatShowGrid");
 									showgrid = true;
 								}*/
-								xml x1 = new xml;
-								x1.setNativePointer(xml::CreateInstance());	
-								xstring content1 = x.GetXml();
+								xml x1 ;
+									
+								xstring content1 = x.xml();
 								content1 = content1.replace(L"[空]",L" ",0);
 								//trace(content1);
-								x1.LoadXml(content1);
-								cell.LoadTemplate(x1.GetXmlDoc());
+								x1.loadXML(content1);
+								cell.LoadTemplate(x1);
 								cell.Redraw();
 							}
-							content = x.GetXml();
+							content = x.xml();
 							content = content.replace(L"[空]",L"&nbsp",0);
 							ole_print.LoadHtml(content);
 						}
 					}else
 					{
-						ole_print.LoadHtml(L"<html><body>未找到对应的文档</body></html>");
+						ole_print.LoadHtml((LPTSTR)L"<html><body>未找到对应的文档</body></html>");
 						//cell.LoadHtml(L"<html><body>未找到对应的文档</body></html>");
 					}
 				}
 				else
 				{
 					xstring templateName = arg.GetArgString(L"template-name");
-					win32::SetWindowText(GetHWND(),templateName);
+					SetWindowText(GetHWND(),templateName);
 					billName = templateName;
 					billPre = arg.GetArgString(L"template-pre");
 					billID = arg.GetArgString(L"template-guid");
 					m_EntityID  = arg.GetArgString(L"EntityID");
 					m_EntityNo = arg.GetArgString(L"EntityNo");
 					m_EntityName  = arg.GetArgString(L"EntityName");
+					m_SupplierName = arg.GetArgString(L"SupplierName");
 					m_DocumentID = L"";
 					OnHtml(arg);
 				}
@@ -817,22 +788,22 @@
 		xstring tools=L"<hbox class=''>";
 		if(agent)
 		{
-			nlist = agent.SelectNodes(L".//xtoolbutton");
-			nlen = nlist.length;
+			nlist = agent.selectNodes(L".//xtoolbutton");
+			nlen = nlist.length();
 			for(index=0;index<nlen;index++)
 			{
 				ele  =  nlist.item(index);
-				xstring name = ele.selectSingleNode(L"@name").text;
-				xstring label  =  ele.selectSingleNode(L"@caption").text;
+				xstring name = ele.selectSingleNode(L"@name").text();
+				xstring label  =  ele.selectSingleNode(L"@caption").text();
 				xstring image;
 				xstring src = L"";
 				if(ele.selectSingleNode(L"@image"))
-					image = ele.selectSingleNode(L"@image").text;
+					image = ele.selectSingleNode(L"@image").text();
 				else
 					image = L"0 22";
 				
 				if(ele.selectSingleNode(L"@src"))
-					src = ele.selectSingleNode(L"@src").text;
+					src = ele.selectSingleNode(L"@src").text();
 				
 				int strLen = label.length();
 				int width = 60 + (strLen - 2) * 10;
@@ -850,7 +821,7 @@
 	}
 
 	//焦点激活处理函数
-	int OnSetFocus(ref TNotifyEvent evt,int p)
+	int OnSetFocus(TEvent * evt,int p)
 	{
 		//重置工具条
 		SetAgent();
@@ -887,17 +858,18 @@
 	}
 	int PrintPaper() //打印
 	{
-		//ole_print.GetHtmlDocument();
+#ifdef shouldFinish	//ole_print.GetHtmlDocument();
 		//return 1;
-		_mshtml::IHTMLDocument3 doc = ole_print.GetHtmlDocument();
-		_mshtml::IHTMLElementCollection rows = doc.getElementsByTagName(L"tr");
+		IHTMLDocument3* doc = (IHTMLDocument3 * )ole_print.GetHtmlDocument();
+		IHTMLElementCollection* rows = doc->getElementsByTagName(L"tr");
 		
-		int len = rows.length;
+		long len;
+		rows->get_length(&len);
 		for(int i=0; i < len - 1;i++)
 		{
 			//oleobject v = rows.item(i,i);
-			_mshtml::IHTMLElement e = rows.item(i,i);
-			_mshtml::IHTMLElement2 e1 = e;
+			IHTMLElement* e = rows->item(i,i);
+			IHTMLElement2* e1 = e;
 			//e.setAttribute(L"height",e1.clientHeight,0);
 			e.setAttribute(L"height",300,0);
 			e.Release();
@@ -905,6 +877,7 @@
 		}
 		rows.Release();
 		doc.Release();
+#endif
 		/*
 		if(PaperPrint == false)
 		{
@@ -955,18 +928,17 @@
 		xstring guid = publiccode::GetGuid();
 		
 		xstring prestr = guid.mid(0,2);
-		prestr = prestr.upper();
+		prestr = prestr.toUpper();
 		
 		
 		content = content.replace(L"gb2312",L"utf-16",0);
 		content = content.replace(L"&nbsp",L"[空]",0);
 		content = content.replace(L"&",L"",0);
 		
-		xml x0 = new xml;
-		x0.setNativePointer(xml::CreateInstance());
-		x0.LoadXml(L"<Bill/>");
-		x0.GetXmlDoc().documentElement.text = content;
-		content = x0.GetXml();
+		xml x0 ;
+		x0.loadXML(L"<Bill/>");
+		x0.documentElement().settext(content);
+		content = x0.xml();
 
 		int ret= xaserver::UploadData(L"bill"+prestr, guid+L".jpg", content);
 		if(ret < 0) trace(L"error upload");
@@ -979,20 +951,20 @@
 		ls_xml += L"<BillName>"+ billName + L"</BillName>";
 		ls_xml += L"</DocumentList>";
 		
-		xml x = new xml;
-		x.setNativePointer(xml::CreateInstance());
-		x.LoadXml(ls_xml); 
-		xaserverarg arg = new xaserverarg;
-		arg.setNativePointer(xaserverarg::CreateInstance());
-		arg.AddArg(L"content",x.GetXml());
+		xml x;
 		
-		if(url::get(L"/sale/data/DocumentList3/bill/update", arg.GetString(),x)!=1)
+		x.loadXML(ls_xml); 
+		xaserverarg arg;
+		
+		arg.AddArg(L"content", x.xml());
+		
+		if(xurl::get(L"/sale/data/DocumentList3/bill/update", arg.GetString(),x)!=1)
 		{
-			xstring error = x.GetXmlDoc().text;
+			xstring error = x.text();
 			alert(L"err:"+error);
 			return 1;
 		}
-		xstring str = x.GetXmlDoc().documentElement.getAttribute(L"text");
+		xstring str = x.documentElement().getAttribute(L"text");
 		if(str == L"true")
 		{
 			alert(L"保存成功!"); 
@@ -1007,16 +979,15 @@
 	
 	int SendCtrlCmd(xcontrol xc, xstring cmd)
 	{
-		win32::SendMessage(xc.GetId(),0x401,cmd,0);
+		SendMessage(xc.GetHWND(), 0x401, (WPARAM)cmd.c_str(), 0);
 		return 1;
 	}
 	
 	int OnRefreshData()
 	{
-		xaserverarg arg = new xaserverarg;
-		arg.setNativePointer(GetParam());
+		xaserverarg arg;
 		xstring templateName = arg.GetArgString(L"template-name");
-		win32::SetWindowText(GetHWND(),templateName);
+		SetWindowText(GetHWND(),templateName);
 		OnHtml(arg);
 		billName = templateName;
 		billPre = arg.GetArgString(L"template-pre");
@@ -1024,6 +995,7 @@
 		m_EntityID  = arg.GetArgString(L"EntityID");
 		m_EntityNo = arg.GetArgString(L"EntityNo");
 		m_EntityName  = arg.GetArgString(L"EntityName");
+		m_SupplierName = arg.GetArgString(L"SupplierName");
 		m_DocumentID = L"";
 		return 1;
 	}
@@ -1032,7 +1004,7 @@
 	{
 		if(comdid==L"xmSort")
 		{
-			OpenWindow(L"dev:xpage[DataSort.dialog.vx]",cast(m_dataset as int));
+			//OpenWindow(L"dev:xpage[DataSort.dialog.vx]",cast(m_dataset as int));
 			return 1;
 		}
 		if(comdid==L"print:PrintImmediate") 
@@ -1068,13 +1040,12 @@
 		{	
 			if(updated)
 			{
-				int res = win32::MessageBox(this.GetHWND(), L"单据已制作,是否保存?",L"提示",4);
+				int res = MessageBox(GetHWND(), L"单据已制作,是否保存?",L"提示",4);
 				if(res == 6)OnCmdDispatch(L"print:AddToDocumentList");
 			}
-			if(GetParam())
+			if(GetWinParam())
 			{
-				xaserverarg arg1 = new xaserverarg;
-				arg1.setNativePointer(GetParam());		
+				xaserverarg arg1 = GetArg();
 				arg1.AddArg(L"action",L"new");
 				OnPrintDialog();
 				arg1.AddArg(L"action",L"");
@@ -1125,38 +1096,38 @@
 			ole_print.ExecWB(27,0);
 			return 1;
 				alert(L"xxx");
-					xml x1 = new xml;
-			x1.setNativePointer(xml::CreateInstance());
+					xml x1 ;
+			
 			xaserver::ExecXQuery(GetServerUrl(), L"[xsl.getdevobj.xq]",L"<args/>",x1);
 		}
 		
 		if(comdid == L"xxx") 
 		{
-			xml x = new xml;
-			x.setNativePointer(xml::CreateInstance());
-			xaserverarg arg = new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());		
+			xml x;
+			
+			xaserverarg arg;
+					
 			arg.AddArg(L"strHtml",m_strHtml);
-			if (url::get(L"/sale/data/SysPrintTemplate/WebBrowser",arg.GetString(),x) != 1)
+			if (xurl::get(L"/sale/data/SysPrintTemplate/WebBrowser",arg.GetString(),x) != 1)
 			{
 				alert(L"数据集出错了!");
 				return 0;
 			}
-			xstring strHtml = x.GetXml();
+			xstring strHtml = x.xml();
 			ole_print.LoadHtml(strHtml);		
 		}
 		return 0;
 	}
 
-	int OnXCommand(ref TXCommandEvent evt,int p)
+	int OnXCommand(TEvent* evt,int p)
 	{
-		return OnCmdDispatch(evt.pStrID);
+		return OnCmdDispatch(evt->xcommand.pStrID);
 	}
 		
 	int OnAttachEvent()
 	{
-		AttachEvent(L"WM_XCOMMAND",OnXCommand);
-		AttachEvent(L"WM_SETFOCUS",OnSetFocus);
+		AttachEvent(L"WM_XCOMMAND",(FEvent)& TemplatePrintViewEx::OnXCommand);
+		AttachEvent(L"WM_SETFOCUS", (FEvent)&TemplatePrintViewEx::OnSetFocus);
 		//AttachEvent(L"WM_CLOSE",OnCloseOwnerWindow);
 		
 		return 0;
@@ -1171,11 +1142,11 @@
 	{
 		if(!updated) return 1;
 		
-		int MB_YESNOCANCEL = 3;
-		int IDYES = 6;
-		int IDNO = 7;
-		int IDCANCEL  = 2;
-		int re = win32::MessageBox(this.GetHWND(), L"单据已制作,是否保存?",L"提示:",MB_YESNOCANCEL);
+		//int MB_YESNOCANCEL = 3;
+		//int IDYES = 6;
+		//int IDNO = 7;
+		//int IDCANCEL  = 2;
+		int re = MessageBox(GetHWND(), L"单据已制作,是否保存?",L"提示:",MB_YESNOCANCEL);
 		if(re==IDCANCEL) return -1;
 		if(re==IDNO) return 1;
 		OnCmdDispatch(L"print:AddToDocumentList");
@@ -1206,10 +1177,10 @@
 	int onloaded()
 	{
 		updated = false;
-		if(GetParam())
+		SetArg();
+		if(GetWinParam())
 		{
-			xaserverarg arg = new xaserverarg;
-			arg.setNativePointer(GetParam());
+			xaserverarg arg= GetArg();
 			xstring templateName = arg.GetArgString(L"template-name");
 			if(templateName ==L"")
 			{
@@ -1218,7 +1189,7 @@
 				
 			else
 			{
-				win32::SetWindowText(GetHWND(),templateName);
+				SetWindowText(GetHWND(),templateName);
 				OnHtml(arg);
 				billName = templateName;
 				billPre = arg.GetArgString(L"template-pre");
@@ -1226,11 +1197,13 @@
 				m_EntityID  = arg.GetArgString(L"EntityID");
 				m_EntityNo = arg.GetArgString(L"EntityNo");
 				m_EntityName  = arg.GetArgString(L"EntityName");
+				m_SupplierName = arg.GetArgString(L"SupplierName");
 				m_DocumentID = L"";
 			}
 		}else
 			OnPrintDialog();
 		return 1;
 	}
+};
 
-};
\ No newline at end of file
+#define _XWIN
\ No newline at end of file

--
Gitblit v1.9.3