|
Hello gurus,
I'd like to know if it is possible to register CDOEXM.DLL and CDO.DLL from Exchange Server 2003 on Windows XP in order to compile a project that uses these libraries with Visual Studio 2005?
I wish to avoid programming in C# on a Windows Server with Exchange.
How can register these libraries on XP?
Thanks.
Fred.
There is no spoon.
|
|
|
|
|
I have a program that I want to write on a textarea before it goes thru the the loop, and for some reason it just hands there and write to the text area after it finished going thru the loop.
I tried putting a Thread.Sleep timeout of 5 seconds and it still doesn't display the text. How can I get it to display the text before it enters to the loop.
<br />
messageRTB.Text= "Running \r\n";<br />
messageRTB.Text += " Please Wait, this will take a while...";<br />
Thread.Sleep(5000);<br />
for (int i=1; i<=Num; i++)<br />
{<br />
}<br />
|
|
|
|
|
Eddymvp wrote: I have a program that I want to write on a textarea before it goes thru the the loop, and for some reason it just hands there and write to the text area after it finished going thru the loop.
You are not allowing the user interface a chance to update the display. It only does this once it has finished processing your request. The request doesn't finish until it goes through the loop.
There is a way to get it to refresh the display, but I can't remember how off the top of my head.
|
|
|
|
|
Thanks alot, I didn't know there was a refresh method.
I solved the problem by using this.Refresh();
|
|
|
|
|
Calling the Refresh method does update the display, but the window remains unresponsive. If you want it to handle events (like moving the window, or redrawing it in case the user switched to another window while waiting), you should call the DoEvents method instead.
---
single minded; short sighted; long gone;
|
|
|
|
|
Thanks for the reply Guffa, I didn't think that was possible to do.
I tried going to this.DoEvent and it wasn't on the list, can you give me an example on how I would call that method?
|
|
|
|
|
|
Thanks for the reply, I'm making more progress, now that I can move the windows and the proccess is going too long. The Application doesn't allow me to click any buttons until it executes that loop, Which other methods do I have to call to be able to perform that request.
|
|
|
|
|
The best bet would be to create a thread to process the loop in the background, if you're using .NET 2 then there's a BackgroundWorker class which takes away most of the headaches of creating and managing your own threads. Basically you have an event which when called you do your work (this occurs in a different thread) and there are methods of returning progress data in a thread safe manner to the form to update. This should result in now hangs and the user can continue using the program as normal.
|
|
|
|
|
|
I know, I wouldn't use it but couldn't find the method so I pointed him in the right direction.
|
|
|
|
|
You need to assign the loop code to a thread...
|
|
|
|
|
Calling the Refresh method should resolve your problem:
messageRTB.Text += " Please Wait, this will take a while...";
messageRTB.Refresh();
Thread.Sleep(5000);
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook www.troschuetz.de
|
|
|
|
|
Hey, I'm new to C# and I have a question regarding enumerators I was hoping someone can answer for me. My question is what is the purpose of giving an enumerator a base type if you still have to explicitly convert it?
Thanks, a bunch.
Terrance C.
|
|
|
|
|
Terrance Copling wrote: My question is what is the purpose of giving an enumerator a base type if you still have to explicitly convert it?
I'm not quite sure I understand your question. Are you asking what is the purpose of IEnumerable and IEnumerator ?
They exist to tell the framework that the class in question can be enumerated in a foreach loop.
IEnumerable contains the method GetEnumerator() which retrieves an instance of a class that implements the IEnumerator interface. The IEnumerator interface includes all the information needed to loop over an object of the associated IEnumerable class.
Does this help?
|
|
|
|
|
I'm sorry. For example, if I have the following;
enum Cars : int
{
Mercedes = 1
Chrysler
Honda
Nissan
}
(Main)
To get the value to print out I would have to type:
Console.WriteLine("Value of Honda is {0}", (int)Cars.Honda);
Why can't I just write: Console.WriteLine("Value of Honda is {0}", Cars.Honda);
Is this a silly question?
Terrance C.
|
|
|
|
|
Terrance Copling wrote: Why can't I just write: Console.WriteLine("Value of Honda is {0}", Cars.Honda);
Because that would print out "Value of Honda is Honda". I presume the ToString on an enum is set to print out the name of the value rather than the value itself. Hence the need to cast it to an int .
Terrance Copling wrote: Is this a silly question?
People tell me there are no silly questions.
I don't know if this really helps. It is a bit of a circular answer: It does it this way because it does.
I've never found this design to be a problem or limiting factor in all the time I've used C# (i.e. since it was in beta in 2001)
|
|
|
|
|
Colin Angus Mackay wrote: I presume the ToString on an enum is set to print out the name of the value rather than the value itself. Hence the need to cast it to an int.
Yep that's what's happening, if the method doesn't understand what type it is it defaults to object and uses the ToString value for the representation.
|
|
|
|
|
In general we don't care that much what the underlying value of an enum is.(We are more interested in readability for instance).
When you start out in c# you will often have these moments when you don't see why you have to do things, especially when those things involve casting. The aim here is to remove ambiguity. I would say that most times when i use an enum i would want to pass Cars.Honda and not the value 3.
How about the method GetInCar()
we might declare it as
public void GetInCar(Cars carToGetIn)<br />
{<br />
this.CurrentCar = carToGetIn;<br />
}
If you want to get in the Honda we would call the method
GetInCar(Cars.Honda);
If we want to find which car we're in
public Cars WhichCarAmIIn() <br />
{<br />
return this.CurrentCar;<br />
}
If we've done everything right this should return Cars.Honda
We never really need to know what the value is for most stuff that we do. There are times that we will need to know, but often it's enough to know that the values are unique for each item
HTH
Russ
|
|
|
|
|
Thanks everyone for your explanations. Russ thanks for your explanation. You brought back some memories that I had from my old C++ classes.
It's funny but I don't think VB.NET prints enums out the same as C# does. I started out in VB and I occassionally used enums but I always used them is SELECT CASE statement getting the value rather than the actual string value. Interesting, I know the two languages are different but didn't think the enums would differ that much. Thanks again.
Terrance C.
|
|
|
|
|
You should be able to do the same thing in both c# and VB. I guess that VB does some sort of auto casting when you try to compare an enum with an int. c# won't do the cast for you but you could do it yourself.
switch(CarType)<br />
{<br />
case Cars.Honda:<br />
DoHondaThing();<br />
case Cars.Jaguar:<br />
DoJaguarThing();<br />
}<br />
<br />
switch((int)CarType)<br />
{<br />
case 1:<br />
DoHondaThing();<br />
case 2:<br />
DoJaguarThing();<br />
}
Both are syntactically valid but i know which i'd rather be reading 6 months after I coded it. Also if i add an item at position 2 making Jaguar = 3 without changing the second switch statement we could be in trouble.
Russ
|
|
|
|
|
I'm trying to write some code that pops up a little borderless form next to the notification area when a notification icon is double clicked. The code is going to be used in the office and most people here have 2 monitors and several people have left / right / top taskbars.
How do i find the current location of the SysTray?
Thanks
Russell
-- modified at 10:26 Wednesday 14th February, 2007
|
|
|
|
|
Try the static Cursor.Position property. I think it would be the easiest way to open the form where the user performed the double-click.
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook www.troschuetz.de
|
|
|
|
|
Hi,
I want to create an entry of my software on the left-click menu of microsoft office documents. (i.e when you press left-click on a word document you see "Print", "Open" etc. in the menu.
Please let me know if my question is not clear enough, or if you have a solution for it.
Thank you!
Nauman
|
|
|
|
|
I want to install a specific font with a Windows application. I have added the font to the deployment project, but do not know how to target the font to the C:\Windows\Font folder. Thanks.
|
|
|
|