• Create Account

DxViewer as child window

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

4 replies to this topic

#1NestyIvan  Members

111
Like
0Likes
Like

Posted 09 October 2012 - 11:19 AM

Hello everyone!

I've met some trouble with DxViewer programm that is contained at the DX SDK(I'm using 2007). What do I want is to run DxViewer as a child inside my own WinAPI window. I've googled so much but yet I didn't found anything helpful.

1. I compiled DxViewer from SDK as DLL.
2. Created my own project and included that DLL to it. I've declared main function of DxViewer as extern with additional parameter - HWND hwnd (handle to my own window)
3. FIrstable, my project failed on CreateMainDialog function. So I've commented code that creating dialog handle and send to STATE_SET handle to my window:
bool App::CreateMainDialog( HWND hparent)
{
STATE_SET(Dialog, hparent);
return true;
}

Actually, I think that here is the root of my problems, but DxViewer has runned inside my window.
4. Error occures when I try to open a model ".x". Function FindResource that is calling in SASCreateEffectFromResource return NULL and after that pfogramm is falling.
RESULT WINAPI
SASCreateEffectFromResource(
LPDIRECT3DDEVICE9			   pDevice,
HMODULE	   module,
LPCWSTR	   resName,
LPCWSTR	   resType,
CONST D3DXMACRO*				pDefines,
LPD3DXINCLUDE				   pInclude,
DWORD						   Flags,
LPD3DXEFFECTPOOL				pPool,
LPD3DXEFFECT*				   ppEffect,
LPD3DXBUFFER*				   ppCompilationErrors)
{
HRESULT hr = S_OK;
HRSRC hSrc= FindResource(module, resName, resType);
if(hSrc == NULL)
return E_FAIL;
...
}


When I debugging original DxViewer, FindResource return normal pointer so the model is loading correctly. And I just can't get it - why the same function with the same parameters is return different values.

#2Anddos  Members

584
Like
0Likes
Like

Posted 11 October 2012 - 01:16 AM

I've met some trouble with DxViewer programm that is contained at the DX SDK(I'm using 2007). What do I want is to run DxViewer as a child inside my own WinAPI window. I've googled so much but yet I didn't found anything helpful.

i dont understand what you're trying todo, DxViewer is a program exe, what do you mean you want to run that as a child?

#3NestyIvan  Members

111
Like
0Likes
Like

Posted 11 October 2012 - 08:21 AM

DxViewer is a program exe, what do you mean you want to run that as a child?

Yes, it is. And I need that nice "viewer" features within my program. I need to load, view, zoom and twist a model. Exactly what DxViewer can do!
Actually, I've already run DxViewer inside my application. I've added extern function into DxViewer project, changed settings from '.exe' application to dynamic lybrary and then just called that extern function from the library.
As I said before it's worked, but probably I should create DxViewer's main dialog in a different way. Becouse it's the only part of the original code that I changed.

Edited by NestyIvan, 11 October 2012 - 08:22 AM.

#4Anddos  Members

584
Like
0Likes
Like

Posted 12 October 2012 - 07:52 AM

DxViewer is a program exe, what do you mean you want to run that as a child?

Yes, it is. And I need that nice "viewer" features within my program. I need to load, view, zoom and twist a model. Exactly what DxViewer can do!
Actually, I've already run DxViewer inside my application. I've added extern function into DxViewer project, changed settings from '.exe' application to dynamic lybrary and then just called that extern function from the library.
As I said before it's worked, but probably I should create DxViewer's main dialog in a different way. Becouse it's the only part of the original code that I changed.

so why dont you use the .x utilty function with some windows api that opens a file from a directory you select?

#5NestyIvan  Members

111
Like
0Likes
Like

Posted 07 November 2012 - 10:25 AM

Well, finally we've done it!
The general problem was that DxViewer functions that load resources are use NULL handler for environment. When we set it to DxVewer.dll it works!

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.