| | |
| | | using kcontrol = Hxsoft::XFrame::IXFControl; |
| | | using knode = Hxsoft::XFrame::IXNode; |
| | | |
| | | #define DeclWinObject_(ty,pty) class __declspec(dllexport) ty : public pty |
| | | #define CreateWinObject_(ty,pty) \ |
| | | public:\ |
| | | ty(void* impl,HWND hWnd):pty(impl,hWnd){}\ |
| | | public:\ |
| | | static ty * CreateInstance(void* impl,void* hWnd)\ |
| | | {\ |
| | | return new ty(impl,(HWND)hWnd);\ |
| | | } |
| | | |
| | | class xwin: public xview |
| | | { |
| | | public: |
| | |
| | | |
| | | xwin* OpenWindow(string url) |
| | | { |
| | | int WS_OVERLAPPEDWINDOW = 0x00cf0000 ; |
| | | kwin* w = kwin::OpenWindow(GetServerUrl(),url,getKWin(),0/*param*/,0/*CmdWind*/,0,WS_OVERLAPPEDWINDOW,0); |
| | | int WS_OVERLAPPEDWINDOW_ = 0x00cf0000 ; |
| | | kwin* w = kwin::OpenWindow(GetServerUrl(),url,getKWin(),0/*param*/,0/*CmdWind*/,0,WS_OVERLAPPEDWINDOW_,0); |
| | | if(!w) return 0; //response |
| | | return (xwin*)GetPropW(w->GetHWND(),L"AttachObject"); |
| | | } |
| | | |
| | | xwin* OpenWindow(string url,LPARAM p) |
| | | { |
| | | int WS_OVERLAPPEDWINDOW = 0x00cf0000; |
| | | kwin* w= kwin::OpenWindow(GetServerUrl(),url,getKWin(),p,0/*CmdWind*/,0/*dwStyleEx*/,WS_OVERLAPPEDWINDOW,0); |
| | | int WS_OVERLAPPEDWINDOW_ = 0x00cf0000; |
| | | kwin* w= kwin::OpenWindow(GetServerUrl(),url,getKWin(),p,0/*CmdWind*/,0/*dwStyleEx*/,WS_OVERLAPPEDWINDOW_,0); |
| | | if(!w) return 0; //response |
| | | return (xwin*)GetPropW(w->GetHWND(),L"AttachObject"); |
| | | } |
| | |
| | | { |
| | | return getKWin()->SetParam((void*)pParam); |
| | | } |
| | | xstring GetParamString() |
| | | { |
| | | if (!GetWinParam())return xstring(); |
| | | return xstring(GetWinParam(), true); |
| | | } |
| | | |
| | | LPARAM GetFrameParam() |
| | | { |
| | | return (LPARAM)getKWin()->GetFrameParam(); |
| | |
| | | return -1; |
| | | } |
| | | |
| | | int openUrl(xstring aurl, LPARAM para) |
| | | { |
| | | KXMLDOMDocument x; |
| | | |
| | | xurl::get(GetServerUrl(), aurl, L"", x); |
| | | KXMLDOMNode n = x.selectSingleNode(L"//resource/@src"); |
| | | if (n) |
| | | { |
| | | string xq = n.text(); |
| | | OpenWindow(xq, (LPARAM)para); |
| | | return 1; |
| | | } |
| | | else |
| | | { |
| | | n = x.selectSingleNode(L"//resource[@vface!='' and @view!='']"); |
| | | if (n) |
| | | { |
| | | xstring vface = n.selectSingleNode(L"@vface").text(); |
| | | xstring view = n.selectSingleNode(L"@view").text(); |
| | | xstring config = n.selectSingleNode(L"@config").text(); |
| | | |
| | | if (vface == L"." || vface == L"") |
| | | { |
| | | string v = n.selectSingleNode(L"@url").text(); |
| | | xstring burl = xstring(aurl).mid(0, xstring(aurl).find(v, 0)); |
| | | return openUrl(burl + view, para); |
| | | } |
| | | else |
| | | return openUrl(vface + L"/" + view, para); |
| | | } |
| | | } |
| | | return -1; |
| | | } |
| | | |
| | | |
| | | int CloseWindow() |
| | | { |
| | | return getKWin()->CloseWindow(); |