problem with AfxMessageBox in a thread in a dll

Hi,
I have a problem with AfxMessageBox,
I have a dll and in the dll I have a thread. when I give a message using 
AfxMessageBox in that thread, there is an "Debug assertion failed" ,
any idea about it ?

thanks,
   Behzad 


0
Behzad
2/15/2007 7:19:39 AM
vc.mfc 33608 articles. 0 followers. Follow

11 Replies
1103 Views

Similar Articles

[PageSpeed] 43

>I have a problem with AfxMessageBox,
>I have a dll and in the dll I have a thread. when I give a message using 
>AfxMessageBox in that thread, there is an "Debug assertion failed" ,
>any idea about it ?

And if you debug it in the debugger, what does the line of source code
that's throwing the assertion tell you?

You really should avoid calling UI operations on what I presume is a
worker thread.

Dave
0
davidl7375 (2060)
2/15/2007 8:14:14 AM
There persists an illusion that it makes sense to issue AfxMessageBox calls from a thread.
It does not.  If your thread is designed to require this, change the design.  A thread
should not be popping up GUI objects.
					joe
On Thu, 15 Feb 2007 10:49:39 +0330, "Behzad" <b@y.c> wrote:

>Hi,
>I have a problem with AfxMessageBox,
>I have a dll and in the dll I have a thread. when I give a message using 
>AfxMessageBox in that thread, there is an "Debug assertion failed" ,
>any idea about it ?
>
>thanks,
>   Behzad 
>
Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
newcomer (15974)
2/15/2007 3:34:39 PM
"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message
news:qav8t25378rht5c9ncpkncaq8jgvi718b3@4ax.com...
> There persists an illusion that it makes sense to issue AfxMessageBox
calls from a thread.
> It does not.  If your thread is designed to require this, change the
design.  A thread
> should not be popping up GUI objects.

.... except in the case that you're wanting to report some sort of assert,
and you're wanting to do it without a message pump running on the main
thread, because that message pump would continue to pump incoming stuff from
the network, which your application would try to process recusively, thus
falling apart horribly before you can start debugging it.

-- 
Tim Ward
Brett Ward Limited - www.brettward.co.uk


0
tw2 (223)
2/16/2007 11:54:41 AM
Try using ::MessageBox

"Behzad" <b@y.c> wrote in message 
news:u8zw1GNUHHA.4928@TK2MSFTNGP03.phx.gbl...
> Hi,
> I have a problem with AfxMessageBox,
> I have a dll and in the dll I have a thread. when I give a message using 
> AfxMessageBox in that thread, there is an "Debug assertion failed" ,
> any idea about it ?
>
> thanks,
>   Behzad
> 
0
anyone3666 (139)
2/16/2007 6:48:37 PM
I repeat: a thread should not be popping up message boxes.  ASSERTs during debugging are a
special case.  But a design that builds in the concept that a message box makes sense
under normal operating conditions (not during the debug cycle) is a bad design.  Note also
that ASSERTs are handled by a low-level ::MessageBox call, which although risky is not as
risky as AfxMessageBox, and usually indicates a failure that is unrecoverable anyway.

Not sure what the discussion of stuff coming in from the network relates to, because if
the main app doesn't have a message pump, then you are not using CAsyncSocket, and for
low-level socket work a message pump isn't relevant to the discussion.  If you are using
CAsyncSocket in your thread, then the MessageBox pump will happily dispatch the network
messages anyway.  MessageBox doesn't stop other messages from happening (although it will
discard thread messages).
					joe

On Fri, 16 Feb 2007 11:54:41 -0000, "Tim Ward" <tw2@ipaccess.com> wrote:

>"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message
>news:qav8t25378rht5c9ncpkncaq8jgvi718b3@4ax.com...
>> There persists an illusion that it makes sense to issue AfxMessageBox
>calls from a thread.
>> It does not.  If your thread is designed to require this, change the
>design.  A thread
>> should not be popping up GUI objects.
>
>... except in the case that you're wanting to report some sort of assert,
>and you're wanting to do it without a message pump running on the main
>thread, because that message pump would continue to pump incoming stuff from
>the network, which your application would try to process recusively, thus
>falling apart horribly before you can start debugging it.
Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
newcomer (15974)
2/16/2007 6:59:16 PM
I also missed the fact that this is in a DLL.  I'm a firm believer that a DLL should not
be popping up messageboxes.  A DLL should do whatever it is supposed to do, and if it
can't do it, it should return an error code and let someone else report it.

Some of the worst third-party products that I've had the misfortune of using (or being
victim of) exhibited a tendency to pop up meaningless messagebox calls that the user could
not understand, but which represented situations I could have dealt with had an error code
been returned.  But the only error code returned was "FALSE" and ::GetLastError always
returned 0.  Some of the worst design I've ever seen.
					joe
On Thu, 15 Feb 2007 10:49:39 +0330, "Behzad" <b@y.c> wrote:

>Hi,
>I have a problem with AfxMessageBox,
>I have a dll and in the dll I have a thread. when I give a message using 
>AfxMessageBox in that thread, there is an "Debug assertion failed" ,
>any idea about it ?
>
>thanks,
>   Behzad 
>
Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
newcomer (15974)
2/16/2007 7:14:18 PM
Then you would not be happy about a DLL that popped a MsgBox in 
_DllMain_/PROCESS_ATTACH, and then returned FALSE. That was a DLL for 
Caliber UK I2C board. Its driver also listed KeBugCheck in its import table. 
Not a good sign, either!

"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message 
news:7f0ct25nm6v36ck19tbaj6p2kjfd1m3fmd@4ax.com...
>I also missed the fact that this is in a DLL.  I'm a firm believer that a 
>DLL should not
> be popping up messageboxes.  A DLL should do whatever it is supposed to 
> do, and if it
> can't do it, it should return an error code and let someone else report 
> it.
>
> Some of the worst third-party products that I've had the misfortune of 
> using (or being
> victim of) exhibited a tendency to pop up meaningless messagebox calls 
> that the user could
> not understand, but which represented situations I could have dealt with 
> had an error code
> been returned.  But the only error code returned was "FALSE" and 
> ::GetLastError always
> returned 0.  Some of the worst design I've ever seen.
> joe
> On Thu, 15 Feb 2007 10:49:39 +0330, "Behzad" <b@y.c> wrote:
>
>>Hi,
>>I have a problem with AfxMessageBox,
>>I have a dll and in the dll I have a thread. when I give a message using
>>AfxMessageBox in that thread, there is an "Debug assertion failed" ,
>>any idea about it ?
>>
>>thanks,
>>   Behzad
>>
> Joseph M. Newcomer [MVP]
> email: newcomer@flounder.com
> Web: http://www.flounder.com
> MVP Tips: http://www.flounder.com/mvp_tips.htm 


0
alegr (1130)
2/16/2007 8:37:07 PM
Actually, Microsoft points out that you must do nothing in DLL_PROCESS_ATTACH that would
require a message pump, including popping up a message box.  I am also a firm believer
that NO DLL should EVER return FALSE from DLL_PROCESS_ATTACH; I consider that slovenly
programming.  It means you can never find out what went wrong!  Instead, the correct
approach is to always return TRUE, without exception.  For a DLL that can potentially fail
at this point, the correct approach is to require that the user call an startup function
(e.g., Initialize()) which returns a BOOL indicating success, and ::GetLastError will have
meaning if there is a problem.  For example

static DWORD FailureReason = ERROR_SUCCESS;

case DLL_PROCESS_ATTACH:
        if(!SomeAPI(...))
             { /* DLL failed to initialize */
              FailureReason = ::GetLastError();
              return TRUE;
             } /* DLL failed to initialize */
      ... other stuff here if successful
      return TRUE;

__declspec(dllexport) BOOL Initialize()
    {
     if(FailureReason != ERROR_SUCCESS)
        { /* init failed */
         ::SetLastError(FailureReason);
         return FALSE;
       } /* init failed */
     return TRUE;
    }

Note that for more thorough error reporting, the error code might from an
application-specific MESSAGETABLE, or there might be other ways of querying the reason or
getting an explanation.

But what Tech Support does *not* want to get is "Your application won't start, we keep
getting this error message about some DLL not loading".  If they can say "Your application
won't start, it keeps popping up this dialog box saying "Initialization failed, internal
error code 7, system errror xxxxx, <FormatMessage text of system error code here>, please
call tech support" then there is some hope of figuring it out.

I recently had an argment with one of my driver course students who wanted to call
KeBugCheck if the hardware had an error.  I started out saying 'KeBugCheck from a driver
is always a mistake, without exception' and spent 20 minutes explaining why a device
driver is a guest in the kernel, and guests do not burn down the house because the battery
in their electric razor is dead.  That is, if your hardware has a problem, you report it,
but never, ever, under any circumstances imaginable, would you EVER BugCheck the system.
"The industry has a term to describe people whose products crash systems" I explained.
"What's that?" he answered.  "The exact phrase starts out as 'the company that used to be
known as...'" and ends up with phrases like 'bankrupt' or 'stock value went to...'"
					joe

       
On Fri, 16 Feb 2007 12:37:07 -0800, "Alexander Grigoriev" <alegr@earthlink.net> wrote:

>Then you would not be happy about a DLL that popped a MsgBox in 
>_DllMain_/PROCESS_ATTACH, and then returned FALSE. That was a DLL for 
>Caliber UK I2C board. Its driver also listed KeBugCheck in its import table. 
>Not a good sign, either!
>
>"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message 
>news:7f0ct25nm6v36ck19tbaj6p2kjfd1m3fmd@4ax.com...
>>I also missed the fact that this is in a DLL.  I'm a firm believer that a 
>>DLL should not
>> be popping up messageboxes.  A DLL should do whatever it is supposed to 
>> do, and if it
>> can't do it, it should return an error code and let someone else report 
>> it.
>>
>> Some of the worst third-party products that I've had the misfortune of 
>> using (or being
>> victim of) exhibited a tendency to pop up meaningless messagebox calls 
>> that the user could
>> not understand, but which represented situations I could have dealt with 
>> had an error code
>> been returned.  But the only error code returned was "FALSE" and 
>> ::GetLastError always
>> returned 0.  Some of the worst design I've ever seen.
>> joe
>> On Thu, 15 Feb 2007 10:49:39 +0330, "Behzad" <b@y.c> wrote:
>>
>>>Hi,
>>>I have a problem with AfxMessageBox,
>>>I have a dll and in the dll I have a thread. when I give a message using
>>>AfxMessageBox in that thread, there is an "Debug assertion failed" ,
>>>any idea about it ?
>>>
>>>thanks,
>>>   Behzad
>>>
>> Joseph M. Newcomer [MVP]
>> email: newcomer@flounder.com
>> Web: http://www.flounder.com
>> MVP Tips: http://www.flounder.com/mvp_tips.htm 
>
Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
newcomer (15974)
2/18/2007 5:05:13 AM
"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message
news:qmubt2dks40pq91j1oq2u28u323e4tibvp@4ax.com...
>
> Not sure what the discussion of stuff coming in from the network relates
to, because if
> the main app doesn't have a message pump, then you are not using
CAsyncSocket, and for
> low-level socket work a message pump isn't relevant to the discussion.  If
you are using
> CAsyncSocket in your thread, then the MessageBox pump will happily
dispatch the network
> messages anyway.  MessageBox doesn't stop other messages from happening
(although it will
> discard thread messages).

Never tried using CAsyncSocket. The pattern, which I've seen many times over
the years, is:

(1) There's a bunch of network code written in portable fashion, so the
application protocol stack is shared with the Linux or embedded or whatever
widget at the other end of the connection.

(2) This uses the basic socket API in its own threads. CAsyncSocket is not
relevant to portable code.

(3) When it has decoded a high-level incoming message it wraps it up in a
custom Windows message and posts it to the main GUI thread for further
processing, including updating the GUI, which is easier to do if it's all
kept in the one main thread.

(4) If the GUI thread puts up a conventional ASSERT dialog these messages
continue to be pumped, and destroy the environment you were trying to debug,
eg popping up hundreds of further ASSERT dialogs faster than you can close
them down.

(5) So you have a custom assert which pops up the message box in a separate
thread, and does WFSO for that thread to finish, thus preserving the
environment for you to poke around in with the debugger.

I agree that this is primarily a debug scenario - you don't expect this to
be part of the day-to-day operation of the released version of the product
in the field.

-- 
Tim Ward
Brett Ward Limited - www.brettward.co.uk


0
tw2 (223)
2/19/2007 9:35:07 AM
Yes, the evil of a standard ASSERT dialog is that it allows recursion. The 
worst case is when it happens in WM_PAINT handler.

"Tim Ward" <tw2@ipaccess.com> wrote in message 
news:53t9adF1t1t4bU1@mid.individual.net...
> "Joseph M. Newcomer" <newcomer@flounder.com> wrote in message
> news:qmubt2dks40pq91j1oq2u28u323e4tibvp@4ax.com...
>>
>> Not sure what the discussion of stuff coming in from the network relates
> to, because if
>> the main app doesn't have a message pump, then you are not using
> CAsyncSocket, and for
>> low-level socket work a message pump isn't relevant to the discussion. 
>> If
> you are using
>> CAsyncSocket in your thread, then the MessageBox pump will happily
> dispatch the network
>> messages anyway.  MessageBox doesn't stop other messages from happening
> (although it will
>> discard thread messages).
>
> Never tried using CAsyncSocket. The pattern, which I've seen many times 
> over
> the years, is:
>
> (1) There's a bunch of network code written in portable fashion, so the
> application protocol stack is shared with the Linux or embedded or 
> whatever
> widget at the other end of the connection.
>
> (2) This uses the basic socket API in its own threads. CAsyncSocket is not
> relevant to portable code.
>
> (3) When it has decoded a high-level incoming message it wraps it up in a
> custom Windows message and posts it to the main GUI thread for further
> processing, including updating the GUI, which is easier to do if it's all
> kept in the one main thread.
>
> (4) If the GUI thread puts up a conventional ASSERT dialog these messages
> continue to be pumped, and destroy the environment you were trying to 
> debug,
> eg popping up hundreds of further ASSERT dialogs faster than you can close
> them down.
>
> (5) So you have a custom assert which pops up the message box in a 
> separate
> thread, and does WFSO for that thread to finish, thus preserving the
> environment for you to poke around in with the debugger.
>
> I agree that this is primarily a debug scenario - you don't expect this to
> be part of the day-to-day operation of the released version of the product
> in the field.
>
> -- 
> Tim Ward
> Brett Ward Limited - www.brettward.co.uk
>
> 


0
alegr (1130)
2/19/2007 3:54:21 PM
See below...
On Mon, 19 Feb 2007 09:35:07 -0000, "Tim Ward" <tw2@ipaccess.com> wrote:

>"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message
>news:qmubt2dks40pq91j1oq2u28u323e4tibvp@4ax.com...
>>
>> Not sure what the discussion of stuff coming in from the network relates
>to, because if
>> the main app doesn't have a message pump, then you are not using
>CAsyncSocket, and for
>> low-level socket work a message pump isn't relevant to the discussion.  If
>you are using
>> CAsyncSocket in your thread, then the MessageBox pump will happily
>dispatch the network
>> messages anyway.  MessageBox doesn't stop other messages from happening
>(although it will
>> discard thread messages).
>
>Never tried using CAsyncSocket. The pattern, which I've seen many times over
>the years, is:
>
>(1) There's a bunch of network code written in portable fashion, so the
>application protocol stack is shared with the Linux or embedded or whatever
>widget at the other end of the connection.
>
>(2) This uses the basic socket API in its own threads. CAsyncSocket is not
>relevant to portable code.
>
>(3) When it has decoded a high-level incoming message it wraps it up in a
>custom Windows message and posts it to the main GUI thread for further
>processing, including updating the GUI, which is easier to do if it's all
>kept in the one main thread.
****
I agree.  I tell my students if they need portability in sockets, go for a third-party
portable socket library.  Let it provide the notifications in a platform-neutral fashion,
which in Windows usually means a PostMessage to the main GUI thread
****
>
>(4) If the GUI thread puts up a conventional ASSERT dialog these messages
>continue to be pumped, and destroy the environment you were trying to debug,
>eg popping up hundreds of further ASSERT dialogs faster than you can close
>them down.
*****
This sounds like a bad design.  The issue is not one of popping up message boxes, but of a
badly-architected system.
****
>
>(5) So you have a custom assert which pops up the message box in a separate
>thread, and does WFSO for that thread to finish, thus preserving the
>environment for you to poke around in with the debugger.
*****
Yes, which is fine if you are debugging.  But it is not a methodology to be used for
notification in deliverable products
****
>
>I agree that this is primarily a debug scenario - you don't expect this to
>be part of the day-to-day operation of the released version of the product
>in the field.
Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
newcomer (15974)
3/1/2007 7:05:14 PM
Reply:

Similar Artilces:

encoding problem in Outlook 2007 importing Outlook 2000 personal folders
I use Outlook 2007 to import the pst file of Outlook 2000. The Chinese characters in the subject became unreadable but it's ok to display in message body. In Outlook 2000, there's no problem to display the Chinese characters in the subject. What's wrong with Outlook 2007? What setttings should I change to fix the problem? Thanks. cyl <u8526505@gmail.com> wrote: > I use Outlook 2007 to import the pst file of Outlook 2000. The Chinese > characters in the subject became unreadable but it's ok to display in > message body. In Outlook 2000, there's no problem t...

Problem shortcuts in Word
Hello, I work with Word 2008. In the beginning there is no problem, but suddenly i have problem with shortcuts. When i want to do "cmd c" it make an other shortcuts same thing for "cmd s", "cmd v" and surly some other. But when i write there is no problem "c" is "c"... If somebody have an idea please help me. Thank you. Unless you indicate your specific update level of Office as well as OS X & describe what the keystrokes *are* doing contrary to what you expect there isn't much we can offer. -- Regards |:>)...

Outlook 2003 PST problems
I just installed Office 2003 professional on a new computer & am having problems with outlook. I copied my Outlook.pst file into the appropriate directory & although it is recognized the calendar is not working properly. I cannot attach any of the colored labels to my appointments - so everything is pretty much in black & white. I totally uninstalled & reinstalled office... first removing my pst file... but there appears to be an ini file... or something that is retaining some information... does anyone know of a fix for the labels... or how to TOTALLY uninstall office (so I...

Problem with Authentication
The CRM application was running smooth. But now I can't logging. It ask my credentials and than return a 401.1 error. I had already reinstalled the CRM server but it won't work. I'm accessing it in the same local network. I'm running CRM 3.0 in SBS. Best regards, Erico Hi When you open a Internet explorer and type the name of the CRM server, it prompts for user and password ? Are you logged in with domain credentials ( AD user ) ? If you are, so add url of the crm server in Local intranet. Enable "Automatic logon only in intranet", this is under security,c...

Vista blue screen problem...please help!
I've seen some other threads, here are the dump files: 'RapidShare: 1-CLICK Web hosting - Easy Filehosting' (http://rapidshare.com/files/347103149/Minidump.rar.html) Please, help me out here. -- ceVil It might be better to know at what point the bsod occurs and what the actual err.msg given is "ceVil" <guest@unknown-email.com> wrote in message news:0b9a0c60b90bf6c0be88bda30f2820ab@nntp-gateway.com... > > I've seen some other threads, here are the dump files: > 'RapidShare: 1-CLICK Web hosting - Easy Filehosting' > (...

calendar problem
Dear all, I am using both mail and calendar function in outlook 2002. Everything is ok until recently, when I try to make a new appointment or checking any old appointments, an error message "out of memory or resource, try to close some windows..." pop up. The mail function is still ok. Can anyone tell me how can I solve this? I have already installed sp2. The version of office is the professional one with frontpage. Thanks. tp ...

problem #4
Hi, I am facing this new problem... i.e a user has installed Office 2003 on win2k prof platform.. whenever she is working on a outlook.. she gets a Microsoft error message... saying to send the report or don't send the report... Usually I have seen this problem in IE... But for outlook it is new to me... after clicking on send or don't send report.. the outlook closes. And there are no IE open..... and if atall it is open.. the IE does not close... Need your help regards, KAH What is logged to the Event Viewer regarding this? Try one of the following already; http://www.howt...

95 and 97 problem
For some unknown reason there is Excel 95 and 97 on this pc.When i double click on an Excel file, the pc defaults to the 95 program (Which incidently doesn't work properly). So my question is how do i get the pc to default to 97. Cheers Craig Craig, Have a look at Windows Help. From Windows 2000 Help (Index under Programs Associating with File Types) To change which program starts when you open a file In My Computer or Windows Explorer, on the View menu, click Folder Options. Click the File Types tab. In the list of file types, click the one you want to change. Click Edit. In Act...

sync problems
I have all of my info on an HP Ipac. I had to reformat the hard drive and I did not make a back-up file. I am trying to move everything back to the computer but it says there is an error with syncing it. How can I move everything from the PDA back to Outlook again? Please help- thanks ...

Date problem
I can't believe there's no post on this, but I can't find it. I've tried the solutions I could find (see below) and still get the error: "The expression is typed incorrectly or it is too complex to be evaluated. For example....Try simplifying...." I have a date field, formatted as Date/Time, General Date, default Value = Now(). I like having the date and the time - in case we need it. I want to run a report on calls taken just for one day. I have CallDate: CallDateAndTime in my query, with "criteria" as Between ([Forms]![frmReports]![txtStartDate]) A...

Installation Problem!!
I am having a problem installing MSCRM 1.2. My configuration consists of a Domain Controller running Win 2000 Server SP4 . I am trying to install MSCRM on a member of the domain running Windows 2000 Server SP4. There is a DNS Server on the DC which is integrated with AD, and a SQL Server 2000 running on the Win 2K machine. The install errors out when CRM creates the root business with the message: Setup was unable to install Microsoft CRM Server. Setup was unable to provision your organization. Setup was unable to create the root business. The configuration of ASP.NET seems to be ok, the pr...

Office 2007 - HELP
I have used Word for many years and love it - not too thrilled with the changes in Office 2007, but my bigger issue is with Publisher 2007. I have an image that I have used in Word just fine - meaning, the on screen colors are correct and when printed the colors are correct. Someone sent me a Publisher file and asked me to add the image - I did this - now the image is messed up - the colors are correct on screen, but when printed FROM MY computer the image colors are all wrong - but if I transport the file to a different computer it prints fine I have reinstalled Office - no good Any id...

Resource editor problems
Hello all, Under VC++ 7.1... Please consider these two lines: IDC_ARROW_ADD_CANCEL DISCARDABLE "res\\cur00004.cur" IDC_ARROW_ADD_CANCEL CURSOR DISCARDABLE "res\\cur00004.cur" The second is a hand-edited change to the first. Both will compile just fine in the resource compiler. However, after I use a text editor to make this change, I cannot open the .rc file in the resource editor. The resource editor issues the following error open attempting to open the .rc file: error RC2135 : file not found: CURSOR Can anyone shed light on what's going on here? Thanks, Dave ...

Directory Replication Problem #2
Hi, recently my Exchange Server directory database receives changes from other servers but does not send out its own changes. Check from the knowledge base, to correct the USN discrepancy need to use Authrest.exe (need to amke changes for about 100+ users). Does anybody know where to get this file 'Authrest.exe' for exchange server 5.5? Exchange server 5.5 CD only provide this file for ver.4.0. Have anyone use it before? Regards, "Sharon Tan" <sharon_tansk@yahoo.com.sg> wrote: >Hi, recently my Exchange Server directory database >receives changes from ot...

Problems Creating a disclaimer in Exchange 2003
I am trying to create a server based disclaimer that will stamp all of my smtp emails going to the internet. I have been following KB article 317680 with no luck. I get an error like the one below. Binding Display Name Specified: smtpscriptinghost ** Registration Failed ** Err.Number (HRESULT) = 0x1AD Err.Description = ActiveX component can't create object ProgID = cdo.ss_smtponarrival COM Category = {FF3CAA23-00B9-11d2-9DFB-00C04FA322BA} Corresponding Event = onarrival ** Have you registered your sink COM class on this machine? I am puttin...

User Defined Variables in MS query cause a problem to import data
If I use user defined variables in MS query to import data into excel sheet, the query executes but no data gets imported into the excel sheet. If I get rid of the variable the results can be imported into the Excel sheet. ...

Cell Format
I have a spreadsheet with cells that I'm trying to type the date into. I type in the date exactly like this: 09/26/03. When I hit "enter" MS Excel displays "37890" in the cell. No matter what I do I can't the cell to show: 09/26/03. I think that somehow I need to "strip" the cell of what it's original format is, but I can't figure out how. I try to use the Date option in the format cell screen but it doesn't work. Curtis I tried this and it didn't work. I also tried the "Text to columns" feature. No success. >...

outlook web access redirect problem
hi, I have been trying to redirect outlook web access (OWA) from the IIS root folder to the /exchange folder. I have followed the instructions on going into the web site and redirecting to a folder but I just get the following URL when I browse to the root of my webserver : http://webmail/exchange/exchange - it's like it's doubling up somehow. I have it set to : A redirection to a URL redirect to: /exchange client will be sent to: A directory below URL entered I just can't work it out... any ideas... cheers Baronne Which instructions did you follow? I wrote the below articl...

Problem after sorting
In my Excel 2007 workbook I have two sheets The "Master Names" sheet has columns: (A) First|(B) Last (C) First (B) Last (concatenated) The "Selected Names" sheet contains (A) cells which link to selected (C) First Last (concatenated) cells in the Master Names sheet. Everything links and displays fine except when I add names to the bottom of the Master Names sheet and then sort using (B) Last name column. When I do this I get a 0 (zero) in the (A) First Second cells in the Selected names sheet and other cells in this sheet have the wrong name. Obviously I am doin...

IF AND problem
Need to isolate problems on 1600 rows Worksheet Row Dept Hrs. Dollars A5 120500 600 9000 A6 120600 400 8000 A7 130600 240 A8 130400 160 A9 140600 320 6400 A10 140200 100 2000 A11 140600 240 (Found out the dept has 2 leading blanks) Isolate problems on 0600 criteria pointing out when b has value and c = 0. OK if both are 0. A7 and A11 should stand out.. =IF((MID(A1,5,4)="0600")=AND(b1>=0=AND(c1>=0)),"NO","ok") Does this work for you: =IF(RIGHT(A...

Problem SHAppBarMessage
Hi, I am creating an application bar which shall be displayed always at the top of the screen to show the user certain alerts. I am using the commands SHAppBarMessage(ABM_NEW, &abd); SHAppBarMessage(ABM_QUERYPOS, &abd); SHAppBarMessage(ABM_SETPOS, &abd); SetWindowPos(NULL, abd.rc.left, abd.rc.top, abd.rc.right - abd.rc.left, iClientHeight, SWP_NOACTIVATE); Works fine. The problem begins, when I start moving the taskbar. I am catching the event OnSettingChange and my application bar is resizing/moving correctly. BUT: If the taskbar moves to the top and my application bar ...

Lookup() problem
I set up two lists, 200 employees names and 200 employee numbers. A couple of the numbers match the correct names but the rest of the numbers all pull the same employee name. =LOOKUP(C4,List!C4:C204,List!B4:B204) The first time I tried it seemed to pull the correct matching names and numbers then kabui it gets stuck. I tried deleting the entire lists cells and all and starting over but same thing. Anyone ever run into this before? Wayman Don't forget! When using Lookup(), the vector (second argument) must be sorted in ascending order. If it's not, you'll get what you ca...

Problem creating credit card account
When creating a Chase or Amazon.com credit cards I am having this happen to me when it creates the card and I can't figure out how to fix it so there is just one card showing. I attached a jpeg of what I am seeing. It's like it created multiple instances of the card and also show balances of my other cards. I am not sure if it is because these cards are associated with Chase or what. When I had it setup the online service for the card then that is when it creates the other instances. I hope someone can makes sence of this. Thanks! ...

Problems with CRichEditCtrl problems
Hi, I'd like to have some help regarding something I'm having an hard time figuring out. I'm develloping a chat programm where the Output window is a rich edit ctrl (I used CRichEditCtrl in one cases and CreateWindowEx(.."RichEdit"..) in the other one. I use StreamIn to stream in the chat information (since I want to use the rft format). I user \Par to perfrom line skipping, however, for some reason, on the computer of one of my user who's using Windows98, it doesn't not work and instand of seeing the text the way it should be (with the line skipping) the...

OL 2003 registry or installn problem
Outlook 2003 (part of office 2003 suite) opens and forgets password for email accounts. Tried to open tools-email account and I got operation failed due to a registry or installation problem. also can' view Outlook store location, can't open property of folder w/o getting error message tried restart in control panel-mail, can't see any account for any of the profiles. tried restoring form office settings and failed tried repair and no better result what else can I do other than total uninstall / re-install and still keep the app't, tasks, reminders for the m...