|
Hi WhiteSky
Tanks for your help, I read from msdn that CAnimateCtrl can only play non-compressed avi file.
I got the avi file from the internet and I donnot know if it is compressed. I am now trying mci and vfw hopefully can get some result.
Do you have any suggestions of how to use mci or vfw?
Thanks
|
|
|
|
|
|
Hi WhiteSky
I am trying to use mciSendString to display the video , how do I postion the vido display in relative to my dialogBased application? , or If I can you other mci commoand which allows me to position the video display.
Thanks
|
|
|
|
|
for position you need to a HWND and its not problem for you
<br />
MCI_DGV_STATUS_PARMS mciStatus;<br />
...<br />
...<br />
<br />
mciStatus.dwItem = MCI_DGV_STATUS_HWND;<br />
mciSendCommand(DeviceID,MCI_STATUS, <br />
MCI_STATUS_ITEM,(DWORD)&mciStatus);<br />
<br />
m_hWndMovie = (HWND)mciStatus.dwReturn;
|
|
|
|
|
Hi WhiteSky
Thanks for your advice, but I donot quite understand what you said, can you pls elaborate a little bit more?
|
|
|
|
|
Hi WhiteSky
I donont mean the position of the frame, I am asking how to place the video display at the location I wanted.
Thanks
|
|
|
|
|
Hi alex,
How are you,i think its morning in your country,right?
You want to set location from your video window,right?
MoveWindow(...) ,SetWindowPos(...) are for position and size(dimensions) from a window
well you want to change position from your window so you need to get a HWND of your window
for example ::MoveWindow(m_hWnd,0,0,200,200,1); .
Now when you run previous code you get a handle(HWND) and you can set new location.You can get GetClientRect(hWnd,LPRECT); ScreenToClient(LPRECT); for retrieves coordinates from window.
well whats your problem?Do you have any problem yet?
|
|
|
|
|
Hi WhiteSky
I am very thankful of your kind patient and help, very much appreciated.
Yes, I have a problem.
What I am trying to do is to crate a dialogbased application using vc++.net.
On the application dialog box, I have a "play video" button, when I press the button, I like to have a video file playing on the right hand side of the dialog box ( within the application dialogbox).
I am using mci command, my problem is how to display the video at the location I wanted.
many Thanks
|
|
|
|
|
Hi all,
I'm trying to develop a communication between my computer (which runs on windows XP) and an external device which is connected through USB. I've built a driver using libusb-w32 which seems to be running fine. Then, following some tutorials I've found, after enumerating all the USB devices I'm using CreateFile function to establish a link. The problem is, the function returns a bad pointer (0x00000fb8) but GetLastError() returns 0, so I can't figure out what's happening...
Does anyone know why this happens? Isn't there an easier way to communicate w/ a USB device or is CreateFile the easiest?
Thanks everyone...
|
|
|
|
|
Sagito wrote: The problem is, the function returns a bad pointer (0x00000fb8)
The function doesn't return a pointer but a handle. And 0x00000fb8 looks like a valid handle for a USB driver (as far as I remember). Did you try to use this handle ?
|
|
|
|
|
Yep, tried using that pointer, but ReadFile returns a error. Error 9, I think... So, after that I checked the handle and it is invalid (hUsbDev = INVALID_HANDLE_VALUE). It also seemed valid too me, but it seems it isn't... =S
However, CreateFile returns 0, so it succeeds. Now what?
Thanks...
|
|
|
|
|
Did you create:
HANDLE hdlToDevice = INVALID_HANDLE_VALUE;
HDEVINFO deviceInfo;
deviceInfo = SetupDiGetClassDevs(...);
.
.
.
hdlToDevice = CreateFile(...);
Kitty5
|
|
|
|
|
Well, my code looks like this now:
<br />
int _tmain(int argc, _TCHAR* argv[])<br />
{<br />
int erro = 0;<br />
<br />
Localizar_ZP3();<br />
<br />
cout << "A procurar abrir comunicacao com central no endereco: " << endl;<br />
cout << Devices[1] << endl;<br />
<br />
hUsbDevice = CreateFile(Devices[0].c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);<br />
<br />
erro = GetLastError();<br />
cout << endl << "Verificacao de erros no CreateFile: " << erro << endl << endl;<br />
<br />
<br />
<br />
if (!Comunicar())<br />
cout << "Erro ao estabelecer comunicacao..." << endl;<br />
else<br />
cout << "Comunicacao foi estabelecida com sucesso!" << endl;<br />
<br />
cout << "A terminar ligacao..." << endl;<br />
CloseHandle(hUsbDevice);<br />
<br />
if (0 == GetLastError())<br />
cout << "Ligacao terminada com sucesso!" << endl;<br />
else<br />
{<br />
cout << "Ocorreu um erro ao terminar ligacao..." << endl;<br />
cout << "Codigo de erro: " << GetLastError() << endl;<br />
}<br />
<br />
cout << endl;<br />
system("pause");<br />
<br />
return 0;<br />
}<br />
<br />
int Localizar_ZP3()<br />
{<br />
cout << "A entrar no loop de pesquisa de equipamentos USB..." << endl << endl;<br />
<br />
HDEVINFO hInfo = SetupDiGetClassDevs(&ZP3COMM_GUID, NULL, NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE);<br />
<br />
int i;<br />
<br />
for (DWORD i=0; ; ++i)<br />
{<br />
SP_INTERFACE_DEVICE_DATA Interface_Info;<br />
Interface_Info.cbSize = sizeof(Interface_Info);<br />
<br />
int erro = 0;<br />
<br />
if (!SetupDiEnumDeviceInterfaces(hInfo, NULL, (LPGUID) &ZP3COMM_GUID,i, &Interface_Info))<br />
{<br />
erro = GetLastError();<br />
<br />
if (erro == 259)<br />
cout << "Fim dos itens a listar!" << endl;<br />
<br />
cout << "Numero de iteracoes: " << i << endl << endl;<br />
<br />
SetupDiDestroyDeviceInfoList(hInfo);<br />
return(i);<br />
}<br />
<br />
DWORD needed;<br />
<br />
SetupDiGetInterfaceDeviceDetail(hInfo, &Interface_Info, NULL, 0, &needed, NULL);<br />
PSP_INTERFACE_DEVICE_DETAIL_DATA detail = (PSP_INTERFACE_DEVICE_DETAIL_DATA) malloc(needed);<br />
<br />
if (!detail)<br />
{<br />
SetupDiDestroyDeviceInfoList(hInfo);<br />
return(i);<br />
}<br />
<br />
detail->cbSize = sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA);<br />
<br />
if (!SetupDiGetInterfaceDeviceDetail(hInfo, &Interface_Info,detail, needed,NULL, NULL))<br />
{<br />
free((PVOID) detail);<br />
SetupDiDestroyDeviceInfoList(hInfo);<br />
return(i);<br />
}<br />
<br />
char name[MAX_PATH];<br />
strncpy(name, detail->DevicePath, sizeof(name));<br />
free((PVOID) detail);<br />
<br />
cout << "Endereco " << i << ": " << endl;<br />
cout << name << endl << endl;<br />
Devices[i] = name;<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
bool Comunicar()<br />
{<br />
ULONG nBytes;<br />
DWORD numLidos;<br />
PVENDORPACKET pPacket = NULL;<br />
char* BufferLeitura = NULL;<br />
<br />
bool sucesso = true;<br />
<br />
sucesso = ReadFile(hUsbDevice, BufferLeitura, 80, &numLidos, NULL);
<br />
if (sucesso)<br />
{<br />
cout << "A operacao de comunicacao foi bem sucedida." << endl;<br />
cout << BufferLeitura << endl;<br />
cout << numLidos << endl;<br />
cout << endl;<br />
}<br />
else<br />
{<br />
cout << "Ocorreu um erro ao executar ReadFile()" << endl;<br />
cout << "Codigo de erro: " << GetLastError() << endl;<br />
}<br />
<br />
return sucesso;<br />
}
Think I've got something wrong in this code?
Thanks again, I'm getting really desperate w/ this...
|
|
|
|
|
What does "client of a class" mean?
Thanks.
Fortitudine Vincimus!
|
|
|
|
|
In what context?
Perhaps it's a system that lawyers use to grade their clients - working class clients, upper class clients, royal clients?
Cheers
Steen.
"Are you gonna check your makeup when you're done whining?" John Simmons, 05/31/2006
|
|
|
|
|
The code that uses the class is often referred to as the client.
Steve
|
|
|
|
|
Hi , I'm writing a design tool , wherein i am to show few mathmatical equations. Right now i'm showing them as Plain text equations which looks unprofessional and clumsy . Does MFC have support for MathML ? or any other kinda framework for rendering Mathematical Equations. Finally i wish to have as good equations rendering as in mathmematica. .NET supports MathML and i found few links for doing it in .NET , but not sure abt MFC. Any kinda help wil be appreciated.Thanks.
Regards,
Nits
|
|
|
|
|
I don't think you'll be able to display mathematical expression with just the MFC's (never heard of a thing in MFC that was able to do that, but I might be wrong). However, this control[^] seems to do what you are looking for.
|
|
|
|
|
Hi,
I needed a very light-weight XML parser in MFC. The reason for this is, my application (this is an MFC based application using Visual Studio 6.0 ) needs to work fine on Win 98, ME, 2k, and XP. And I donot want to use the DOM Parser that would require any additional dlls to be install.
Please help get the source code for the simple parser in MFC, or plain C++ that would on all the said OS's without any additional dlls.
Any help or comments or tips would be highly appreciated.
Thanks and regards,
Anwar.
|
|
|
|
|
TinyXML[^] will probably do the trick. It's a set of plain C++ files and is platform independant.
EDIT: look here[^] first to check if that does what you need.
|
|
|
|
|
|
I cannot use this parser. This uses DOM.
|
|
|
|
|
That's partly true. But MSXML also supports SAX. SAX is a light-weight (event-driven) XML parser. I think you should evalute SAX.
|
|
|
|
|
|
MSXML comes with Internet Explorer (which is required to be installed with Windows in every OS since Win98). It has both a DOM and SAX parser.
TinyXML implements as little of the DOM standard as possible to make a decent parser. You might call it DOM-lite, but it is still, technically, a DOM parser. The nice thing about it is that you can compile it into your application.
Xerces is another opensource parser that supports the full DOM and SAX standards, but since you don't want to install a DLL, this probably isn't the route you want to go.
Since your OS restriction is limited to the Windows family, your best bet is to use either TinyXML or MSXML. MSXML offers all the features you would ever need and then some, and is guaranteed to be installed on all the given OS's (just make sure you bind to an older version).
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|