|
How to find the threadIdentifier of an HWND ?
Thanks & Regards
|
|
|
|
|
The following is from MSDN :
DWORD GetWindowThreadProcessId
(
HWND hWnd,
LPDWORD lpdwProcessId
);
The GetWindowThreadProcessId function retrieves the identifier of the thread that created the specified window and, optionally, the identifier of the process that created the window.
Best Regards,
Bio.
|
|
|
|
|
There is an autoreset event object ,and it's initial state is signaled.
Suppose there are two threads in a process, called A and B, are wating for this event object infinitely. Either thread will change the event's state to nonsignaled if it's waiting function call succeeds, and the other thread will still wait on that object. Am I right? If thread A's waiting funcion call succeeds, then before it call ResetEvent, A terminated. How about B, Will B still wait for this event object? The event object's is signaled, or nonsignaled?
Thank you all
|
|
|
|
|
ResetEvent is only used for manual events. You are talking about auto-reset events. Auto reset means that the event automatically returns to the non-signalled state after a thread which was waiting for the event to be signalled is released. If thread A, which was released, terminates before it calls SetEvent to signal the event, thread B will be stuck waiting since there is nothing to change the state of the event to signalled.
Judy
|
|
|
|
|
Thank you JudyL_FL!
I have try it, and found that thread B will be waiting for ever, hence it will have no chance to execute.
So I think it would be dangerous to use autoreset event to synchronous threads.
|
|
|
|
|
zengkun100 wrote: So I think it would be dangerous to use autoreset event to synchronous threads
It all depends on how the threads are synchronized. Each has its place. Refer to the MSDN for an example that uses both. Using Event Objects[^]. Manual reset events can also cause deadlocks if a thread terminates before it signals the event. Synchronization and the avoidance of deadlocks are one of the big issues when doing multi-threading.
Judy
|
|
|
|
|
Thank you Judy
Each coin has two sides, I will think more about thread synchronization.
|
|
|
|
|
can anbody say how to convert a bitmap to a gif file on disk. urgently required
|
|
|
|
|
can any say how to convert a bitmap file on disk to gif. urgently required
|
|
|
|
|
Will this[^] helpful ?
Regards,
Paresh.
|
|
|
|
|
You can use of CImage class.
|
|
|
|
|
May be this is not the right forum to ask as this question relates to Borland C++ v 3.1. I could not find that topic in this. Suggest me the right forum. I am not able to debug my borland C++ project. When i press F8 it says 'no debug info at program start.Run Anyway' I checked the compiler options. Debug info is enabled. Is there anything i am missing?
Thanks for your help
|
|
|
|
|
Did you set debug options for it?
|
|
|
|
|
yes..I enabled degug option in the compiler settings. But still is of no use
|
|
|
|
|
I'm building a filtergraph and I'm sort of new at this. I want to build a filter graph that takes input from a Windows Media Player to capture the audio, whether I'm playing music or a video. I read about a filter with the class id of CLSID_WMPCD and I tried to access it from Direct Show on my PC, but wasn't able to. I Googled it and it wasn't anywhere to be found. Does anyone know anything about it, and is there possibly a CLSID_WMPDVD?
Thanks for any help anyone can provide.
GrizMan
|
|
|
|
|
The class is used for recording informations which may be massive.In the initialization:
<code><pre>m_qwFileSize = 0x4000000;
m_qwFileOffset = 0;
m_T = 600 * m_siInfo.dwAllocationGranularity;
m_hMappingFile = ::CreateFileMapping(m_hFile,NULL,PAGE_READWRITE,0,m_qwFileSize + sizeof(TCHAR),NULL);
m_lpStartLoc = ::MapViewOfFil(m_hMappingFile,FILE_MAP_ALL_ACCESS,static_cast<dword>(m_qwFileOffset >> 32),static_cast<dword>(m_qwFileOffset & 0xFFFFFFFF),m_dwBytesInBlock);</dword></dword></pre></code>
When the view's size is larger than 60%,I re-mapping the file:
<pre><code>if (m_qwFileOffset >= m_T){
m_T = m_qwFileOffset + 600 * m_siInfo.dwAllocationGranularity;
::UnmapViewOfFile(m_lpStartLoc);
__int64 qwOldFileOffset = m_qwFileOffset;
RndToSysAllocGranularity(m_qwFileOffset);
__int64 qwOffVar = qwOldFileOffset - m_qwFileOffset;
m_lpStartLoc = ::MapViewOfFile
(m_hMappingFile,FILE_MAP_ALL_ACCESS,static_cast<dword>(m_qwFileOffset >>
32),static_cast<dword>(m_qwFileOffset & 0xFFFFFFFF),m_dwBytesInBlock);
PBYTE pByte = reinterpret_cast<pbyte>(m_lpStartLoc);
pByte += qwOffVar;
m_lpStartLoc = pByte;}</pbyte></dword></dword></code></pre>
in the RndToSysAllocGranularity(), I allocate the File offset:
<code><pre__int64 dwremains="dwValue" %="" m_siinfo.dwallocationgranularity;<br="" mode="hold" /> if (dwRemains){
__int64 dwDevided = dwValue / m_siInfo.dwAllocationGranularity;
dwValue = (dwDevided + 1) * m_siInfo.dwAllocationGranularity;}</code>
When it works, I get the errors and its error code is 0x5,it means access denied.Why?
Later buggers harm more.
modified on Tuesday, December 18, 2007 7:57:40 PM
<div class="ForumMod">modified on Tuesday, December 18, 2007 8:08:17 PM</div>
|
|
|
|
|
Please use the <pre></pre> tags to surround code.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
Is it ok?
Later buggers harm more.
|
|
|
|
|
Can't you see what a mess is it?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
You can always use "Preview" to check if format is ok or not before posting.
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
“The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.” - Michael A. Jackson
|
|
|
|
|
hi all, i am also looking for same error's solution.
first iteration it worked for me. second iteration not worked at all.
any help appriciated.
Nice talking to you. If you judge people, you have no time to love them. -- Mother Teresa
|
|
|
|
|
We have a native Visual C++/MFC app, and have a dialog which contains a web browser control.
The web browser control is a CWnd-derived class which uses InvokeHelper to communicate with the browser control. We call Navigate2() to send it to a URL and display the HTML in a child window within our dialog. This works great.
The question is how do we go about handling HTML events in the containing C++ dialog? For example, suppose we have a button in the displayed HTML which has an onclick event handler. We'd like the user to be able to click on the button in the HTML and have the containing MFC dialog get the event.
How do we communicate events out to the containing dialog?
The specifics of the control we're using are below. This is whats in the registry under the CLSID referenced in the wrapper class.
<br />
Windows Registry Editor Version 5.00<br />
<br />
[HKEY_CLASSES_ROOT\CLSID\{8856F961-340A-11D0-A96B-00C04FD705A2}]<br />
@="Microsoft Web Browser"<br />
<br />
[HKEY_CLASSES_ROOT\CLSID\{8856F961-340A-11D0-A96B-00C04FD705A2}\Control]<br />
@=""<br />
<br />
[HKEY_CLASSES_ROOT\CLSID\{8856F961-340A-11D0-A96B-00C04FD705A2}\InProcServer32]<br />
@="C:\\WINDOWS\\system32\\ieframe.dll"<br />
"ThreadingModel"="Apartment"<br />
<br />
[HKEY_CLASSES_ROOT\CLSID\{8856F961-340A-11D0-A96B-00C04FD705A2}\MiscStatus]<br />
@="0"<br />
<br />
[HKEY_CLASSES_ROOT\CLSID\{8856F961-340A-11D0-A96B-00C04FD705A2}\MiscStatus\1]<br />
@="131473"<br />
<br />
[HKEY_CLASSES_ROOT\CLSID\{8856F961-340A-11D0-A96B-00C04FD705A2}\ProgID]<br />
@="Shell.Explorer.2"<br />
<br />
[HKEY_CLASSES_ROOT\CLSID\{8856F961-340A-11D0-A96B-00C04FD705A2}\ToolboxBitmap32]<br />
@="C:\\WINDOWS\\system32\\ieframe.dll, 257"<br />
<br />
[HKEY_CLASSES_ROOT\CLSID\{8856F961-340A-11D0-A96B-00C04FD705A2}\TypeLib]<br />
@="{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}"<br />
<br />
[HKEY_CLASSES_ROOT\CLSID\{8856F961-340A-11D0-A96B-00C04FD705A2}\Version]<br />
@="1.1"<br />
<br />
[HKEY_CLASSES_ROOT\CLSID\{8856F961-340A-11D0-A96B-00C04FD705A2}\VersionIndependentProgID]<br />
@="Shell.Explorer"<br />
|
|
|
|
|
Dave Calkins wrote: We have a native Visual C++/MFC app, and have a dialog which contains a web browser control.
So you did not use the CDHtmlDialog MFC class[^]? Why not?
|
|
|
|
|
I'm adding this to an existing dialog. I don't want the entire dialog to be HTML. I want to have regular controls on the dialog and then have one area of the dialog display HTML content.
|
|
|
|
|