|
I have a variety of codecs on my machine as well as a variety of encoded avi files. I've written a fairly simple media player using MS's MCIWnd class. While it works with some files, I've had problems with xvid and divx encoded files. In particular, I've gotten dropped frames with no sound in some cases and sound with no video in others. When using Windows Media Player, all of these files play back correctly. My understanding was the codec support is transparent, i.e. I can tell MCIWnd to play a file and as long as the container and codec are recognized, it should work. Am I missing something?
The other approach I'm trying is using an ActiveX media player control. It seems to work a bit better, but the documentation is non-existent. VC dropped in a class called CWMPMedia. While I can see the functions in the IDE, I'm not quite sure what all of them do. Take GetImageSourceHeight() or GetMarkerCount() for example. Also as I'm trying to make my media player an ActiveX control, I had to create a dialog and insert the Windows Media Player control on that dialog. My control puts the WMP control right onto the container -- I don't use the dialog. Is there a way to add a graphical control to a VC project without dropping it onto a dialog? Since I'm not using the dialog, it seems extraneous.
I'm curious about both approaches, so any info on either or both would be great!
Thanks all,
David
|
|
|
|
|
This should be an easy question. I have a CListCtrl
in report view. I put together alittle function to
swap two rows in the CListCtrl. Works great.
My problem is, how can I programmatically make the
active row retain that blue, highlighted color? When
I swap rows, the selected row in blue goes away. The
user has to click on the CListCtrl to make that blue-
ness reappear.
I tried:
int sel = m_list1.GetSelectionMark();
m_list1.SetSelectionMark(sel);
m_list1.SetHotItem(sel);
but neither makes the blue reappear. I tried a few other
commands as well. Whats the magic command? Please,
any response any one can give me will be greatly
appreciated.
Sincerely,
Danielle Brina (an overworked graduate student)
|
|
|
|
|
m_list1.SetFocus();
Took me forever. I tried every command there was.
|
|
|
|
|
Hi,
I'm trying to debug an ATL Server project and when I try attach to the dllhost process an "Access Denied" error appears. I'm using Visual Studio 2003 and Windows 2000 SP4. I've been looking in the internet for two days and I've tried all that I found about this topic (I checked the impesonation and the debug programs policies, the "Machine Debugger Manager" service, I verified that I was in the local "Administrators" group, the security of the directories where my DLLs are). I can't find anything else to verify. I would really appreciate if somebody can help me in any way, at least telling me what else could I check.
Thanks,
Federico
|
|
|
|
|
ShellExecute/CreateProcess problem
--------------------------------------------------------------------------------
Hi,
I am using the GNU diff.exe application.
when i use command line and type thise line:
>diff.exe 1.txt 2.txt > 1.out
it works wonderfully!
now, trying to do so via code (i.e usnig Shellexecute or createprocess) doesn't work for me
here is a code snip:
szOperation = _T("diff.exe");
szParams = _T("1.txt 2.txt > 1.out");
HINSTANCE h = ShellExecute(NULL,
_T("open"),
szOp,
szPar,
NULL,
SW_HIDE);
int i = (int)h;
using the createprocess also doesn't work:
STARTUPINFO siStartupInfo;
PROCESS_INFORMATION piProcessInfo;
::ZeroMemory(&siStartupInfo, sizeof(siStartupInfo));
::ZeroMemory(&piProcessInfo, sizeof(piProcessInfo));
siStartupInfo.cb = sizeof(siStartupInfo);
siStartupInfo.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
siStartupInfo.wShowWindow = SW_HIDE;
bSucc = CreateProcess(szOp,
szPar,
0,
0,
FALSE,
CREATE_DEFAULT_ERROR_MODE,
0,
0,
&siStartupInfo,
&piProcessInfo);
while (TRUE)
{
GetExitCodeProcess(piProcessInfo.hProcess, &dwExitCode);
if (dwExitCode != STILL_ACTIVE)
break;
else
Sleep(50);
}
CloseHandle(piProcessInfo.hProcess);
HERE THE TROUBLE IS THAT THE PROCESS SUCCEEDS BUT THE dwExitCode returns value of 2 which according to diff.exe is a failure
what can I do to fix this?
thanks in advaned
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
You'll need to do one of two things:
1) Put diff.exe 1.txt 2.txt > 1.out in a .BAT file and call ShellExecute() or CreateProcess() using the name of the .BAT file.
2) Redirect the output of the child process using a pipe. See here and here for details.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
1. try to do it, but then got GetLastError of 126 which means:
"126 The specified module could not be found. ERROR_MOD_NOT_FOUND "
2. i'm sure there is a simplier way without using a pipe no?
|
|
|
|
|
What you are likely experiencing is that the exit code has not really been set yet because diff.exe has not finished.
So after CreateProcess
add the code WaitForSingleObject(piProcessInfo.hProcess, INFINITE);
The process handle will get signalled when the process exits and the exit code will then be valid.
Also, don't pass CREATE_DEFAULT_ERROR_MODE, but rather pass 0.
|
|
|
|
|
Not true!
look at the loop above
while (TRUE)
{
GetExitCodeProcess(piProcessInfo.hProcess, &dwExitCode);
if (dwExitCode != STILL_ACTIVE)
break;
else
Sleep(50);
}
I will try not to use CREATE_DEFAULT_ERROR_MODE, and pass 0.
|
|
|
|
|
Output redirection with > is part of the command interpreter, not the OS. You need to set the STARTUPINFO::hStdOutput accordingly to redirect output.
--Mike--
LINKS~! Ericahist updated! | 1ClickPicGrabber | CP SearchBar v2.0.2 | C++ Forum FAQ
Strange things are afoot at the U+004B U+20DD
|
|
|
|
|
I agree with you, but if i simply use
op = "diff.exe"
par = "1.txt 2.txt"
and not use the > for output (it is simply using the stdout)
i still get ExitCode 2 from the diff.exe proccess which means an error
any suggestions?
|
|
|
|
|
YaronNir wrote:
i still get ExitCode 2...
Which tells you exactly what the problem is - the program cannot be found. Prepend a path to diff.exe and the problem will go away.
|
|
|
|
|
I would like to place the OpenFileDialog in a specific spot on my dialog, but I can not do that because it's not a drop in control. I look for 3rd party freebies to no avail......any ideas
|
|
|
|
|
If you're saying that you just want to open the OpenFileDialog, you could drop in a button and handle opening it from there. Just an idea.
|
|
|
|
|
You have to customize the OpenFile Dialog template, not a trivial task. Look it up in MSDN.
Cheers
Steen
|
|
|
|
|
I've never overloaded the equality operator and am having difficulty finding example code in MSDN for doing so. I'm guessing it looks a little something like this:
<br />
bool CLASS_NAME::operator==( const CLASS_NAME & rhs ) const<br />
{<br />
}<br />
Is this correct or am I missing something?
________________________________________________________________________
The question "Do computers think?" is the same as "Can submarines swim?"
Signature Red Studios
Jeryth
|
|
|
|
|
Here is a way to do it
Class YourClass
{
public:
void operator=(const &YourClass c);
private:
int iNum;
CString szStr;
}
void YourClass::operator=(const &YourClass c)
{
iNum = c.iNum;
szStr = c.szStr;
}
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
Excellent example of an assignment operator overload. Unfortunately this was not what the OP wanted, he asked for a equality operator overload!
|
|
|
|
|
opps
about equality,your code looks ok...so there shouldn't be any problem
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
|
Your operator is correct !
|
|
|
|
|
Wow, got it right on the first guess. Thanks for the confirmation.
________________________________________________________________________
The question "Do computers think?" is the same as "Can submarines swim?"
Signature Red Studios
Jeryth
|
|
|
|
|
hi,
I have some tbbuttons with text only on my toolbar.
The code looks like
<br />
for(int s = 0 ; s < groups.size() ; s++){<br />
if (groups.at(s).IsVisible()){<br />
tbb[m].iBitmap = I_IMAGENONE;<br />
tbb[m].iString = m_wndToolBar1.GetToolBarCtrl().AddStrings(groups.at(s).GetGroupName());<br />
tbb[m].fsState = (m==0)?TBSTATE_CHECKED:0 |TBSTATE_ENABLED;<br />
tbb[m].fsStyle = BTNS_BUTTON|BTNS_CHECKGROUP|BTNS_SHOWTEXT;<br />
tbb[m].idCommand = IDM_FIRST_OPENGROUP + groups.at(s).GetGroupId();<br />
m++;<br />
}<br />
}<br />
m_wndToolBar1.GetToolBarCtrl().AddButtons(m, tbb);
<br />
m_wndToolBar1.GetToolBarCtrl().SetButtonSize(CSize(95,35));<br />
THIS last line i have to add so the text will be on my buttons. If i don't change the button size then the text is completely of the button (except for 1 pixel).
SO after changing, my button is 35 pixels high, but the text is completely on the bottom half of the button.
I just want to have small buttons (let's say standard size (22pixels)) but then my text isn't readable. How can i solve this?
greets,
tim635
|
|
|
|
|
I'm getting a C1001 error (internal compiler error) with the following console app:
#include <windows.h>
class blah {
public:
blah();
~blah();
} ;
blah::blah()
{
}
blah::~blah
{
}
int main( void )
{
return 0;
}
I know exactly where the error is (I somehow managed to forget the "()" after "blah::~blah"), but is anyone else seeing this compiler error on VC6 w/SP6? It took me long enough to find the true error...
Speaking of which, does MS still intend to release service packs or hotfixes for VC6 at this point in time?
|
|
|
|
|
Daniel Desormeaux wrote:
Speaking of which, does MS still intend to release service packs or hotfixes for VC6 at this point in time?
Like most things, unless data integrity is involved, it'll likely not get fixed. For a product that is roughly six years old, it does not make sense to make changes to it simply for the sake of making changes.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|