|
You should also make sure that the where this lib file is located (which directory. Fill up the library direcctory
|
|
|
|
|
Main window is a dialog, and two modeless dialog with popup property are created.
now, I want to get the top one when one overlaps another.
|
|
|
|
|
eat_union wrote: I want to get the top one when one overlaps another.
overide the PreTranslateMessage function of the main dialog and handle the WM_WINDOWPOSCHANGED messages of the child windows.
nave
|
|
|
|
|
thanks!
I'll try it out.
best regards!
|
|
|
|
|
what is "defeat image processing"? Do you know code of it?
|
|
|
|
|
What is google ?
Never heard of it, BTW ?
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
Hello.
Im trying to open a file to read some data using VC6 MFC. The problem is that I dont know how to go about after getting the pathname.
<br />
void CMyExtractDataDlg::OnFileOpen() <br />
{<br />
<br />
<br />
CFileDialog m_ldFile(TRUE); <br />
<br />
if (m_ldFile.DoModal() == IDOK)<br />
{<br />
m_filePath = m_ldFile.GetPathName();<br />
<br />
UpdateData(FALSE);<br />
}<br />
<br />
}<br />
Should I get the filename as well or is pathname alone sufficient? How do i go from here?
Thanks in advance.
|
|
|
|
|
It's good programming practice to always use fully qualified filespecs, i.e. use GetPathName() .
/ravi
|
|
|
|
|
Use can use CStdioFile for file operations
Known is a drop, unknown is an ocean
|
|
|
|
|
ReturnRain wrote: The problem is that I dont know how to go about after getting the pathname.
Once you have a file name then call yout Application class's
OpenDocumentFile(m_filePath);
i.e. theApp.OpenDocumentFile(m_filePath);
I think this will serve the purpose.
Sameer Thakur
|
|
|
|
|
Hello,
I'm having a problem when I try to save a file in a different directory (let's say that I simply want to duplicate the file). I have a "default.wav" in my directory and I use a dialog to save it (duplicate it) in another directory with a different name. This is my code:
============
CString strFile;
(...)
strFile = dlg.GetPathName();
(...)
CFile file_orig,file_dest;
char *pBuffer;
(...) <- part that creates "default.wav" in the same directory
file_orig.Open("default.wav", CFile::modeRead);
int length = file_orig.GetLength(); // <<<<< here is the problem !!
pBuffer = (char*)malloc(length);
file_orig.Read(pBuffer, length);
file_orig.Close();
file_dest.Open( strFile, CFile::modeCreate|CFile:: modeReadWrite);
file_dest.Write(pBuffer, file_orig.GetLength());
file_dest.Close();
free(pBuffer);
==============
Any solution that works can be valid (without including aditional libraries if possible). I just want to keep it as simple as possible.
Thanks in advance!
|
|
|
|
|
|
Without knowing the problem you are having, I do believe you should have an access mode AND a
sharing mode when using CFile::Open()
file_orig.Open("default.wav", CFile::modeRead | CFile::shareDenyWrite);
int length = file_orig.GetLength();pBuffer = (char*)malloc(length);
file_orig.Read(pBuffer, length);
file_orig.Close();
file_dest.Open( strFile, CFile::modeCreate|CFile:: modeReadWrite | CFile::shareExclusive);
file_dest.Write(pBuffer, file_orig.GetLength());
file_dest.Close();
If that doesn't help, maybe try checking the return code
|
|
|
|
|
The error consists on an error box saying that it didn't find a file without a name (not exactly in those words because my OS is in spanish language, but that's basically what it says).
I've also tried the CopyFile option without success. I have to include "Windows.h" with the headers, include Kernel32.lib in my project settings, and then i would have to put something like this: CopyFile('default.wav',PChar(strFile),TRUE); (am i right?)
but it gives "error C2015: too many characters in constant" and error "C2065: 'PChar' : undeclared identifier"
Well, i think it it is a little bit too late for me . Tomorrow I will keep trying to find a solution.
|
|
|
|
|
I'd say check your pathnames - the source pathname may require the full path with the name unless
you set the current directory or it's in the system path.
Also, when using CFile::Open, use the 3rd param and you can examine the exception if it fails
(returns 0).
And you need to do all this before you sleep
|
|
|
|
|
I've always used the shell for this:
SHFILEOPSTRUCT sf;
sf.hwnd = m_pMainWnd->m_hWnd;
sf.wFunc = FO_COPY;
sf.pFrom = pSrc;
sf.pTo = pDest;
sf.fFlags = FOF_NOERRORUI | FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOCOPYSECURITYATTRIBS;
BOOL bSuccess = (SHFileOperation(&sf) == 0);
|
|
|
|
|
Use can use CopyFile for this purpose
Known is a drop, unknown is an ocean
|
|
|
|
|
Ravi Bhavnani said
|
|
|
|
|
Hi,
I have a problem and I could not find the answer on the internet. In my code I create a filter graph for rendering video files with audio components. I create the filters automatically using the RenderFile() function. I want to insert another filter just vefore the video renderer filter in order to process the video component of the file. Since i use the code for different kinds of video files I cannot find the renderer filter using its name.
For the files without audio, I enumerate the filters and I check for the output pins of the filters one by one. For the filter with no output pin I understand that its the video renderer filter, so i disconnect it and insert my OpenCV ProxyTrans filter. However, for the video files with audio I don't know how to find the video renderer file. In the method I mentioned above it is possible to find the audio renderer filter as well. Could you please help me on this? I would appreciate if you explain your solution with one or two lines of codes. Since I am a beginner in DirectShow it sometimes gets difficult for me to implement the suggestions of the expert people.
Thank you in advance.
Regards.
|
|
|
|
|
Before disconnecting the pin, can you call ConnectionMediaType() on it and check the majortype
member of the AM_MEDIA_TYPE struct? MEDIATYPE_Video would be the one to look for.
Mark
|
|
|
|
|
This is pretty cryptic. Anyone with ideas would be appreciated. This line of code in a header file generated by the Typelib Wizard
#import "C:\\Program Files\\Microsoft Office\\OFFICE11\\MSOUTL.OLB" no_namespace
causes the compiler to issue the following warning
d:\projects\reds\filemail\cfolders.h(3) : warning C4278: 'CopyFile': identifier in type library 'C:\\Program Files\\Microsoft Office\\OFFICE11\\MSOUTL.OLB' is already a macro; use the 'rename' qualifier
Does this mean that the typelib is unusable since CopyFile exists within the typelib and I can't change it?
Chris Meech
I am Canadian. [heard in a local bar]
I agree with you that my argument is useless. [Red Stateler]
Hey, I am part of a special bread, we are called smart people [Captain See Sharp]
The zen of the soapbox is hard to attain...[Jörgen Sigvardsson]
I wish I could remember what it was like to only have a short term memory.[David Kentley]
|
|
|
|
|
You may have seen this, but if not maybe it will help...
From the error msg docs:
'identifier': identifier in type library 'tlb' is already a macro; use the 'rename' qualifier
When using #import, an identifier in the typelib you are importing is attempting to declare an
identifier identifier. However, this is already a valid symbol.
Use the #import rename attribute to assign an alias to the symbol in the type library.
|
|
|
|
|
Thanks Mark. I understand using the rename to eliminate the warning, but won't that cause other problems. If the writer of the typelib used 'identifier', isn't it reasonable to assume that elsewhere in the code there will be references to this 'identifier' type and these will now compile to the incorrect 'identifer' type as I've aliased away the intended one with the rename?
Also I'm probably missing something, but why doesn't the producer of the type library recognize that a macro and an identifier share a common name and change one to avoid the warning.
Chris Meech
I am Canadian. [heard in a local bar]
I agree with you that my argument is useless. [Red Stateler]
Hey, I am part of a special bread, we are called smart people [Captain See Sharp]
The zen of the soapbox is hard to attain...[Jörgen Sigvardsson]
I wish I could remember what it was like to only have a short term memory.[David Kentley]
|
|
|
|
|
What Mr Hewitt said
Depending on the office version, there's others like PlaySound and RGB
|
|
|
|
|
From <winbase.h> which is included by <windows.h> :
#ifdef UNICODE
#define CopyFile CopyFileW
#else
#define CopyFile CopyFileA
#endif // !UNICODE
This is the macro the warning is referring to. This is all part of the evils of macros: because macros don't obey C++ scoping rules namespaces and such can't be used to have multiple but non-conflicting duplicate names. I don't think this warning will cause you any problems however. To rename the method (although you don't really need to) you do something like this:
#import "C:\\Program Files\\Microsoft Office\\OFFICE11\\MSOUTL.OLB" no_namespace rename("CopyFile", "OfficeCopyFile")
Steve
|
|
|
|