Codejock Forums Homepage
Forum Home Forum Home > Codejock Products > Visual C++ MFC > Toolkit Pro
  New Posts New Posts RSS Feed - Create XML layot for RC
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Create XML layot for RC

 Post Reply Post Reply
Author
Message
Tanya View Drop Down
Newbie
Newbie


Joined: 09 February 2006
Location: Israel
Status: Offline
Points: 13
Post Options Post Options   Thanks (0) Thanks(0)   Quote Tanya Quote  Post ReplyReply Direct Link To This Post Topic: Create XML layot for RC
    Posted: 09 February 2006 at 4:55am

Hello,

 

I want to load few pane layots from RC.

 

I used SaveToFile() to create xml files.

 

Then I added files to resources and trying to load it within LoadFromNode().

But it failed.

 

Am I doing something wrong?

 

Thank you!

Tanya

Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 09 February 2006 at 1:18pm

Hello,

please show code you tring. 

Check Pane sample - OnLoadFromResource show how to load it from resource.

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
Tanya View Drop Down
Newbie
Newbie


Joined: 09 February 2006
Location: Israel
Status: Offline
Points: 13
Post Options Post Options   Thanks (0) Thanks(0)   Quote Tanya Quote  Post ReplyReply Direct Link To This Post Posted: 10 February 2006 at 12:26am

Hi Oleg,

 

I am not at work right now,but it was exactly the sample I used.

I just did a copy of this function and it fails on LoadFromNode().

I think the question is - how to create XML in a correct format.

I used SaveToFile() function ( as in Pane sample ) for creation.

It works great with LoadFromFile(), but not with LoadFromNode().

When I opened XML file from the sample RC and another XML

from SaveToFile() (even from the same sample), I saw different formats.

(I work on WinXP vs2003 )

 

 

Thank you,

Tanya

Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 10 February 2006 at 1:15am

Hello,

Format not a problem - XMLPropExchange supports both formats.

guesss you forgot something - may be you copied code from sample and not changed main node name -

if (pLayout->LoadFromNode(xmlRootPtr, _T("Common")))
{
   GetDockingPaneManager()->SetLayout(pLay out);
}

 

check that instead of "Common" you have main root of your XML.

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 10 February 2006 at 1:29am

Just tried to reproduce and think the problem was in

xmlDocPtr->get_documentElement(&xmlRootPtr);

that returns incorrect node.

try this code instead:

 LPCTSTR lpszResourceName = MAKEINTRESOURCE(IDR_SPIRAL);

 HINSTANCE hInst = AfxGetInstanceHandle();
 HRSRC hRsrc = ::FindResource(hInst, lpszResourceName, RT_HTML);
 if (hRsrc == NULL)
  return ;

 HGLOBAL hGlobal = LoadResource(hInst, hRsrc);
 if (hGlobal == NULL)
  return ;

 LPCSTR pData = (LPCSTR)LockResource(hGlobal);
 if (pData == NULL)
  return ;

 CXTPPropExchangeXMLNode px(TRUE, NULL, _T("DockingPaneLayouts"));
 if (px.LoadFromString((BSTR)_bstr_t(pData)))
 {
  CXTPDockingPaneLayout* pLayout = m_bEditor? m_pEditorLayout: m_pRunLayout;
  CXTPPropExchangeSection pxCommon(px.GetSection(_T("Common")));

  if (pLayout->DoPropExchange(&pxCommon))
  {
   GetDockingPaneManager()->SetLayout(pLay out);
  }

 }

 UnlockResource(hGlobal);
 FreeResource(hGlobal);

 

 

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
Tanya View Drop Down
Newbie
Newbie


Joined: 09 February 2006
Location: Israel
Status: Offline
Points: 13
Post Options Post Options   Thanks (0) Thanks(0)   Quote Tanya Quote  Post ReplyReply Direct Link To This Post Posted: 10 February 2006 at 3:00pm

Oleg,

Thank you very-very much for your help!

It works perfect with your changes!

 

Tanya

 

Back to Top
Tanya View Drop Down
Newbie
Newbie


Joined: 09 February 2006
Location: Israel
Status: Offline
Points: 13
Post Options Post Options   Thanks (0) Thanks(0)   Quote Tanya Quote  Post ReplyReply Direct Link To This Post Posted: 28 February 2006 at 6:57am

Hi Oleg,

I have a bug from our QA :(

This function doesn't work on Win2000 sp4.

Load and Save to xml-file works OK.

Load and Save to registry also.

Only the resource problem.

Please see if you can help.

 

Thanks,

Tanya

Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 28 February 2006 at 11:54am

Hello,

I just tried modify our pane sample

2006-02-28_115238_PaneSample.zip

 

and don't see problem with win 2000,

can you please ask your QA to test our attached sample if it has problem with Windows 2000

 

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
Tanya View Drop Down
Newbie
Newbie


Joined: 09 February 2006
Location: Israel
Status: Offline
Points: 13
Post Options Post Options   Thanks (0) Thanks(0)   Quote Tanya Quote  Post ReplyReply Direct Link To This Post Posted: 01 March 2006 at 5:34am

Hi Oleg,

I tried to run this sample on the same computer.
It doesn't work.

But on another 2000 it was OK.
So I tried to find a difference.
On a good one I saw installed -

Microsoft .NET Framework SDK v1.1

So I installed it on a bad. And problem was fixed.

But our product doesn't request SDK.
Please see if you can help.

Thanks,
Tanya

Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 01 March 2006 at 7:39am

Do you use Visual Studio 2003 to compile it?

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
Tanya View Drop Down
Newbie
Newbie


Joined: 09 February 2006
Location: Israel
Status: Offline
Points: 13
Post Options Post Options   Thanks (0) Thanks(0)   Quote Tanya Quote  Post ReplyReply Direct Link To This Post Posted: 01 March 2006 at 7:40am
Yes
Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 03 March 2006 at 8:58am

I can't reproduce it with even "clear" Windows 2000 :(

May be something with msxml... not sure, Can you ask them to try to debug into px.LoadFromString and check what line failed.

:(

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
Tanya View Drop Down
Newbie
Newbie


Joined: 09 February 2006
Location: Israel
Status: Offline
Points: 13
Post Options Post Options   Thanks (0) Thanks(0)   Quote Tanya Quote  Post ReplyReply Direct Link To This Post Posted: 07 March 2006 at 6:47am

Hi Oleg,

 

It was very agent bug. And I didn’t have a time to debug,

Because all these computers are always busy.

So I decided to remove all the “load from resource” issue.

 

All I need is to have 4 layouts (not in XML file that user can see and change).

And let user to switch between them.

So I created the layouts inside my program.

Like Run and Editor Mode in the Pane Sample.

 

And now I have a crash.

 

Scenario –

 

  • Run Pane Sample.
  • Make some pane float.
  • Change the Mode

 

Please try to help me as fast as possible.

 

Thanks,

Tanya

Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 07 March 2006 at 10:44am

I can't reproduce it also.

What version of Toolkit do you have?

Better open issue in issuetrack for faster response.

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
Tanya View Drop Down
Newbie
Newbie


Joined: 09 February 2006
Location: Israel
Status: Offline
Points: 13
Post Options Post Options   Thanks (0) Thanks(0)   Quote Tanya Quote  Post ReplyReply Direct Link To This Post Posted: 08 March 2006 at 4:52am

I have the last version - 9.81

Very strange that you can't reproduce.

1. Run Pane sample

2. DoubleClick on Pane 2 to make it Float

3. Go to Layout->Run Mode

Crash in the function -
void CXTPDockingPaneMiniWnd::OnSetFocus(CWnd* pOldWnd)

Line-
m_pTopContainer->FindPane(xtpPaneTypeTabbedContainer, &lst);

Here is a stack dump:

> ToolkitPro981vc71D.dll!CXTPDockingPaneMiniWnd::OnS etFocus(CWnd * pOldWnd=0x016ed9b0)  Line 381 + 0x1c C++
  mfc71d.dll!CWnd::OnWndMsg(unsigned int message=7, unsigned int wParam=2361370, long lParam=0, long * pResult=0x0012e2c8)  Line 2074 C++
  ToolkitPro981vc71D.dll!CXTPDockingPaneMiniWnd::O nWndMsg(unsigned int message=7, unsigned int wParam=2361370, long lParam=0, long * pResult=0x0012e2c8)  Line 850 C++
  mfc71d.dll!CWnd::WindowProc(unsigned int message=7, unsigned int wParam=2361370, long lParam=0)  Line 1745 + 0x1e C++
  mfc71d.dll!AfxCallWndProc(CWnd * pWnd=0x016c6890, HWND__ * hWnd=0x0009085e, unsigned int nMsg=7, unsigned int wParam=2361370, long lParam=0)  Line 241 + 0x1a C++
  mfc71d.dll!AfxWndProc(HWND__ * hWnd=0x0009085e, unsigned int nMsg=7, unsigned int wParam=2361370, long lParam=0)  Line 389 C++
  mfc71d.dll!AfxWndProcBase(HWND__ * hWnd=0x0009085e, unsigned int nMsg=7, unsigned int wParam=2361370, long lParam=0)  Line 209 + 0x15 C++
  user32.dll!77d48654()  
  user32.dll!77d48723()  
  user32.dll!77d49153()  
  user32.dll!77d49196()  
  ntdll.dll!77f75da3()  
  user32.dll!77d4d191()  
  mfc71d.dll!CWnd::DestroyWindow()  Line 988 + 0xd C++
  ToolkitPro981vc71D.dll!CXTPDockingPaneTabbedCont ainer::~CXTPDockingPaneTabbedContainer()  Line 177 C++
  ToolkitPro981vc71D.dll!CXTPDockingPaneTabbedCont ainer::`vector deleting destructor'()  + 0x6c C++
  ToolkitPro981vc71D.dll!CXTPDockingPaneLayout::Fr ee()  Line 83 + 0x32 C++
  ToolkitPro981vc71D.dll!CXTPDockingPaneLayout::Co py(const CXTPDockingPaneLayout * pLayout=0x016c8860)  Line 598 C++
  ToolkitPro981vc71D.dll!CXTPDockingPaneManager::S etLayout(const CXTPDockingPaneLayout * pLayout=0x016c8860)  Line 894 C++
  PaneD.exe!CMainFrame::SwitchLayout()  Line 476 + 0x1c C++
  PaneD.exe!CMainFrame::OnLayoutRun()  Line 494 C++
  mfc71d.dll!_AfxDispatchCmdMsg(CCmdTarget * pTarget=0x00332870, unsigned int nID=2788, int nCode=0, void (void)* pfn=0x0041164a, void * pExtra=0x00000000, unsigned int nSig=53, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000)  Line 89 C++
  mfc71d.dll!CCmdTarget::OnCmdMsg(unsigned int nID=2788, int nCode=0, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000)  Line 396 + 0x27 C++
  mfc71d.dll!CFrameWnd::OnCmdMsg(unsigned int nID=2788, int nCode=0, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000)  Line 897 + 0x18 C++
  mfc71d.dll!CMDIFrameWnd::OnCmdMsg(unsigned int nID=2788, int nCode=0, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000)  Line 85 C++
  ToolkitPro981vc71D.dll!CXTPMDIFrameWnd::OnCmdMsg (unsigned int nID=2788, int nCode=0, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000)  Line 306 C++
  mfc71d.dll!CWnd::OnCommand(unsigned int wParam=2788, long lParam=0)  Line 2550 C++
  mfc71d.dll!CFrameWnd::OnCommand(unsigned int wParam=2788, long lParam=0)  Line 320 C++
  mfc71d.dll!CMDIFrameWnd::OnCommand(unsigned int wParam=2788, long lParam=0)  Line 54 + 0x10 C++
  mfc71d.dll!CWnd::OnWndMsg(unsigned int message=273, unsigned int wParam=2788, long lParam=0, long * pResult=0x0012f0f0)  Line 1759 + 0x1c C++
  ToolkitPro981vc71D.dll!CXTPCommandBarsSiteBase&l t;CMDIFrameWnd>::OnWndMsg(unsigned int message=273, unsigned int wParam=2788, long lParam=0, long * pResult=0x0012f0f0)  Line 214 C++
  mfc71d.dll!CWnd::WindowProc(unsigned int message=273, unsigned int wParam=2788, long lParam=0)  Line 1745 + 0x1e C++
  mfc71d.dll!AfxCallWndProc(CWnd * pWnd=0x00332870, HWND__ * hWnd=0x000607de, unsigned int nMsg=273, unsigned int wParam=2788, long lParam=0)  Line 241 + 0x1a C++
  mfc71d.dll!AfxWndProc(HWND__ * hWnd=0x000607de, unsigned int nMsg=273, unsigned int wParam=2788, long lParam=0)  Line 389 C++
  mfc71d.dll!AfxWndProcBase(HWND__ * hWnd=0x000607de, unsigned int nMsg=273, unsigned int wParam=2788, long lParam=0)  Line 209 + 0x15 C++
  user32.dll!77d48654()  
  user32.dll!77d48723()  
  user32.dll!77d4a7eb()  
  user32.dll!77d4aa95()  
  ToolkitPro981vc71D.dll!CXTPHookManager::HookWndP roc(HWND__ * hWnd=0x000607de, unsigned int message=273, unsigned int wParam=2788, long lParam=0)  Line 169 + 0x1c C++
  user32.dll!77d48654()  
  user32.dll!77d48723()  
  user32.dll!77d4a0ec()  
  user32.dll!77d4aa77()  
  mfc71d.dll!CWnd::SendMessageA(unsigned int message=273, unsigned int wParam=2788, long lParam=0)  Line 44 + 0x42 C++
  ToolkitPro981vc71D.dll!CXTPControl::OnExecute()& nbsp; Line 339 C++
  ToolkitPro981vc71D.dll!CXTPControlButton::OnLBut tonUp(CPoint __formal={...})  Line 52 + 0x10 C++
  ToolkitPro981vc71D.dll!CXTPCommandBar::OnLButton Up(unsigned int nFlags=0, CPoint point={...})  Line 352 + 0x18 C++
  mfc71d.dll!CWnd::OnWndMsg(unsigned int message=514, unsigned int wParam=0, long lParam=2162750, long * pResult=0x0012fa54)  Line 2164 C++
  ToolkitPro981vc71D.dll!CXTPCommandBar::OnWndMsg( unsigned int message=514, unsigned int wParam=0, long lParam=2162750, long * pResult=0x0012fa54)  Line 1898 C++
  mfc71d.dll!CWnd::WindowProc(unsigned int message=514, unsigned int wParam=0, long lParam=2162750)  Line 1745 + 0x1e C++
  mfc71d.dll!AfxCallWndProc(CWnd * pWnd=0x016dc348, HWND__ * hWnd=0x00050996, unsigned int nMsg=514, unsigned int wParam=0, long lParam=2162750)  Line 241 + 0x1a C++
  mfc71d.dll!AfxWndProc(HWND__ * hWnd=0x00050996, unsigned int nMsg=514, unsigned int wParam=0, long lParam=2162750)  Line 389 C++
  mfc71d.dll!AfxWndProcBase(HWND__ * hWnd=0x00050996, unsigned int nMsg=514, unsigned int wParam=0, long lParam=2162750)  Line 209 + 0x15 C++
  user32.dll!77d48654()  
  user32.dll!77d48723()  
  user32.dll!77d4a7eb()  
  user32.dll!77d4aa95()  
  ToolkitPro981vc71D.dll!CXTPHookManager::HookWndP roc(HWND__ * hWnd=0x00050996, unsigned int message=514, unsigned int wParam=0, long lParam=2162750)  Line 169 + 0x1c C++
  user32.dll!77d48654()  
  user32.dll!77d48723()  
  user32.dll!77d48637()  
  user32.dll!77d48999()  
  mfc71d.dll!AfxInternalPreTranslateMessage(tagMSG * pMsg=0x00153c10)  Line 246 + 0x8 C++
  user32.dll!77d48fd2()  
  mfc71d.dll!AfxInternalPumpMessage()  Line 188 C++
  mfc71d.dll!CWinThread::PumpMessage()  Line 916 C++
  mfc71d.dll!CWinThread::Run()  Line 637 + 0xb C++
  mfc71d.dll!CWinApp::Run()  Line 701 C++
  mfc71d.dll!AfxWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00151f34, int nCmdShow=1)  Line 49 + 0xb C++
  PaneD.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00151f34, int nCmdShow=1)  Line 25 C++
  PaneD.exe!WinMainCRTStartup()  Line 390 + 0x39 C
  kernel32.dll!77e8141a()  

 

Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 08 March 2006 at 11:42am

yes, see it now :( 

Please replace two methods:

void CXTPDockingPaneLayout::Free()
{
 m_pTopContainer = 0;
 m_pClient = 0;

 while (!m_lstStack.IsEmpty())
 {
  CXTPDockingPaneBase* pPane = m_lstStack.RemoveTail();
  if (pPane->GetType() == xtpPaneTypeDockingPane)
  {
   ((CXTPDockingPane*)pPane)->InternalRele ase();
  }
  else
  {
   delete pPane;
  }
 }

 m_lstPanes.RemoveAll();

 memset(m_wndPanels, 0, sizeof(m_wndPanels));
}

and

void CXTPDockingPaneMiniWnd::OnSetFocus(CWnd* pOldWnd)
{
 CMiniFrameWnd::OnSetFocus(pOldWnd);

 if (m_pTopContainer == 0)
  return;

 if (!m_pLayout || !m_pLayout->IsValid())
  return;

 CXTPDockingPaneBaseList lst;
 m_pTopContainer->FindPane(xtpPaneTypeTabbedContaine r, &lst);

 if (lst.GetCount() == 1)
 {
  CXTPDockingPane* pPane =
   ((CXTPDockingPaneTabbedContainer*)lst.GetH ead())->GetSelected();
  if (pPane)
  {
   pPane->SetFocus();
  }
 }
}

 

Thank you.

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
guywmustang View Drop Down
Newbie
Newbie


Joined: 17 April 2006
Status: Offline
Points: 20
Post Options Post Options   Thanks (0) Thanks(0)   Quote guywmustang Quote  Post ReplyReply Direct Link To This Post Posted: 09 May 2006 at 2:08pm
Has this error been fixed since version 9.81 because I have had the same crash.  I need to know if upgrading codejock will solve this problem, as it is a large bug for my software when trying to restore the layout.
Back to Top
guywmustang View Drop Down
Newbie
Newbie


Joined: 17 April 2006
Status: Offline
Points: 20
Post Options Post Options   Thanks (0) Thanks(0)   Quote guywmustang Quote  Post ReplyReply Direct Link To This Post Posted: 09 May 2006 at 3:56pm

<bump>

Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 09 May 2006 at 4:37pm

Hi,

Yes, in 10.1.1 it was fixed.

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 12.04
Copyright ©2001-2021 Web Wiz Ltd.

This page was generated in 0.156 seconds.