|
Zibar wrote:
Is there a way to write a program that would connect to Hotmail, so that it could get/send messages without using the web browser - I mean a stand alone mail client
yes of course!
It's a simple POP3 server, so you just send POP3 commands to the server.
I don't know how to download the attatchments (or how to spell it )...
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|
|
do you mean if I use pop3.hotmail.com and smtp.hotmail.com i could use any mail client to read/send messages with hotmail.com? what about yahoo.com lycos.com etc?
...and I even could write my email program that would send/read email msgs?
|
|
|
|
|
Zibar wrote:
do you mean if I use pop3.hotmail.com and smtp.hotmail.com i could use any mail client to read/send messages with hotmail.com
Short answer: Yes!
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|
|
|
Hello, It's possile to implement shared memory in C# without resorting to P/Invoke or IJW (Win32 api) ?
Cheers,Joao Vaz
And if your dream is to care for your family, to put food on the table, to provide them with an education and a good home, then maybe suffering through an endless, pointless, boring job will seem to have purpose. And you will realize how even a rock can change the world, simply by remaining obstinately stationary.-Shog9
|
|
|
|
|
I don't think that there's a high level .NET API for this. If not using P/Invoke is a requirement, you can acomplish this by using a ServicedComponent that's called by the two applications needing to share the memory, but this is ugly. But even then, there would be IPC, not exactly memory sharing.
My latest articles:
Desktop Bob - Instant CP notifications
XOR tricks for RAID data protection
|
|
|
|
|
Daniel Turini wrote:
ServicedComponent that's called by the two applications needing to share the memory, but this is ugly. But even then, there would be IPC, not exactly memory sharing.
My thought was implementing a volatile cache system in memory ...
Thanks.
Cheers,Joao Vaz
And if your dream is to care for your family, to put food on the table, to provide them with an education and a good home, then maybe suffering through an endless, pointless, boring job will seem to have purpose. And you will realize how even a rock can change the world, simply by remaining obstinately stationary.-Shog9
|
|
|
|
|
This should be a nice easy question...
What's the C# replacement for the MFC SetRedraw?
I'm trying to kludge a fix on a databound TrackBar. I need to set the minimum and maximum values to +/- 32000, set the value of the bar, then set the true minimum and maximum values. Otherwise, it just doesn't work.
Unfortunately, this makes the bar's tick marks fluctuate wildly.
I thought it would be SuspendLayout and ResumeLayout, but that is still redrawing it.
Thanks for your time!!
|
|
|
|
|
Try BeginUpdate()/EndUpdate()
--
Russell Morris
"Have you gone mad Frink? Put down that science pole!"
|
|
|
|
|
TrackBars don't have BeginUpdate/EndUpdate, but thanks for replying!
ListBox, ListView, TreeView, and ColumnBoxes do
|
|
|
|
|
I had a similar type of problem with a RichTextBox where I had to "pause" the drawing, so I could do some formatting. It goes as follows, just drop into class and define SendMessage and the WM_SETDRAW constant:
[Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public bool FreezePainting
{
get {return mFreezePainting > 0;}
set
{
if (value & base.IsHandleCreated & base.Visible)
{
if (mFreezePainting == 0)
{
User32.SendMessage(base.Handle, Constants.WM_SETREDRAW, 0, 0);
}
mFreezePainting++;
}
if (!value)
{
if (mFreezePainting > 0)
{
if (mFreezePainting == 1)
{
FreezePaintingEnd();
}
else
{
mFreezePainting--;
}
}
}
}
}
int mFreezePainting;
private void FreezePaintingEnd()
{
if (mFreezePainting > 0)
{
mFreezePainting = 0;
User32.SendMessage(base.Handle, Constants.WM_SETREDRAW, 1, 0);
}
this.Invalidate(true);
}
[edit] &^%&^$&^% VS.NET's crap formatting [/edit]
Hope it works
Before you criticize a man, walk a mile in his shoes. That way, when you do criticize him, you'll be a mile away and have his shoes.
|
|
|
|
|
Thanks Leppie! It's perfect now.
|
|
|
|
|
It was some good VB.NET code I converted, has been handy
Before you criticize a man, walk a mile in his shoes. That way, when you do criticize him, you'll be a mile away and have his shoes.
|
|
|
|
|
Hello,
I created a COM object in ATL, that copy the screen and
retrurn it, by: HBITMAP struct.
When I add a reference, the: .NET, convert this type to:
IntPtr.
OK, I call to the function, get the: IntPtr. And use:
Bitmap bmp= Image.FromHbitmap(myIntPtrObj);
But than I get this exception:
System.Runtime.InteropServices.ExternalException
with this describe:
A generic error occurred in GDI+.
Please help me, how to solve this exception...
Thank's alot,
Itay.
|
|
|
|
|
I have tried the sample post on this site. It works well, but I can't find a way to auto disconnect connexion after idle time.
I tried the rasgetentryproperties but I 've an got invalid parameter error.
Does anyone got an idea?
|
|
|
|
|
How annoying. The RichTextBox control doesn't appear to provide HTML, and the MailFormat enum doesn't include RTF. However am I supposed to provide an editor for formatted e-mails?
Seriously, though, any ideas/advice would be much appreciated.
|
|
|
|
|
I haven't looked up the .NET framework for candidate classes, but I would suggest you look up for classes able to support "multi-part mime types" as does the the web ocx (mhtml renderer). Indeed, rich emails (ie not only plain text) are made of that.
She's so dirty, she threw a boomerang and it wouldn't even come back.
|
|
|
|
|
Hello,
I am currently porting a webbrowser application from C++
to C#/.NET.
I already struggled with the beforenavigate2 bug everybody
was talking about and I can't wait for the .NET SP3.
My current problem is when trying to traverse the DOM tree
after a documentcomplete event. It works properly for non
framed document but not for framed pages.
Everytime a documentcomplete event is fired I always get
the same document (the top level one). It should mean that
I am always getting the same document, but I must be
missing something because I don't know how to get a
specific frame document.
Here is the C# piece of code:
<br />
private void documentComplete(object sender, <br />
AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e){<br />
<br />
AxSHDocVw.AxWebBrowser Frame;<br />
IHTMLDocument3 Doc;<br />
IHTMLDOMChildrenCollection Tags;<br />
IHTMLElement Tag;<br />
int NumTags;<br />
<br />
Console.WriteLine("URL: "+e.uRL);
try{<br />
Frame=(AxSHDocVw.AxWebBrowser)sender;
frame ?<br />
if(Frame!=null){<br />
Doc=(IHTMLDocument3)Frame.Document;
document ???<br />
if(Doc!=null){<br />
Tags=(IHTMLDOMChildrenCollection)Doc.childNodes;<br />
if(Tags!=null){ <br />
NumTags=Tags.length;<br />
for(int i=0;i<NumTags;i++){ <br />
Tag=(IHTMLElement)Tags.item(i);<br />
if(Tag!=null) traverseDOM(Tag);<br />
}<br />
}<br />
}<br />
}<br />
}<br />
catch(Exception ex){<br />
Console.WriteLine("Error: "+ex.ToString());<br />
}<br />
}<br />
Another question is: what is e.pDisp ? How to cast it ? It
tried to cast it into an AxSHDocVw.AxWebBrowser and I got
an error.
Regards,
R. L.
|
|
|
|
|
This article [^]might help you.
I have included frame events.
GriffonRL wrote:
what is e.pDisp ? How to cast it ? It
tried to cast it into an AxSHDocVw.AxWebBrowser and I got
an error.
This one should not really appear in public interfaces, but anyway, that's the instance of the underlying web browser control. You can't do much with C# about it, and in fact you don't need since the public IE interfaces are all available to you.
She's so dirty, she threw a boomerang and it wouldn't even come back.
|
|
|
|
|
Hello Stephane,
Thanks for your answer . I am looking at the article. But this pDisp is not clear for me.
You wrote:
This one should not really appear in public interfaces, but anyway, that's the instance of the underlying web browser control. You can't do much with C# about it, and in fact you don't need since the public IE interfaces are all available to you.
Since I used to write webbrowser applications with VC++, I was actually getting the frame browser control instance in pDisp. What I can't understand, is why e.pDisp exists if we can't cast it ?
Regards,
R. L.
|
|
|
|
|
GriffonRL wrote:
What I can't understand, is why e.pDisp exists if we can't cast it ?
the IE namespace you use once you have imported the IE web control ocx (drag&drop, add reference, ...) is actually the result of an automated type-library import which simply creates a thin wrapper around the idl interfaces. Because the IDispatch *pDisp appears in some members of some of the interfaces, it thus appears in the resulting wrapper.
But as I have said already, this is a case where it's not useful : IDispatch* is seen as a raw untyped object . Furthermore, the namespace already provides interfaces from which you can invoke the methods you would with a C++ ptr on the web control. So, you don't lose power by using C# or other .NET languages.
The thing you lose is that the marshaller (at the heart of all the interop stuff) is not able to comply with all kind of variant subtypes (limitation known by MS people). As long as MS doesn't fix it, whevener we import a type-library, we may or may not for any reason be able to call certain methods depending on the parameter types. That's it. We'll have to live with it. And by the way, the article I have suggested bypasses the standard tlbimp.
She's so dirty, she threw a boomerang and it wouldn't even come back.
|
|
|
|
|
Yep !
Here is the solution working with frames :
<br />
private void documentComplete(object sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e){<br />
SHDocVw.IWebBrowser2 Frame;<br />
IHTMLDocument3 Doc;<br />
IHTMLDOMChildrenCollection Tags;<br />
IHTMLElement Tag;<br />
int NumTags;<br />
<br />
Console.WriteLine("URL: "+e.uRL);<br />
try{<br />
Frame=(SHDocVw.IWebBrowser2)e.pDisp;<br />
if(Frame!=null){<br />
Doc=(IHTMLDocument3)Frame.Document;<br />
Console.WriteLine("Document URL: " (IHTMLDocument2)Doc).location.href);<br />
if(Doc!=null){<br />
Tags=(IHTMLDOMChildrenCollection)Doc.childNodes;<br />
if(Tags!=null){<br />
NumTags=Tags.length;<br />
for(int i=0;i<NumTags;i++){<br />
Tag=(IHTMLElement)Tags.item(i);<br />
if(Tag!=null) traverseDOM(Tag);<br />
}<br />
}<br />
}<br />
}<br />
}<br />
catch(Exception ex){<br />
Console.WriteLine("F***: "+ex.ToString());<br />
}<br />
}<br />
Enjoy,
R. L.
|
|
|
|
|
I haven't run it, but I don't buy it. Why ? Not only MS clearly says in MSDN that frame events are signaled within their own frame space, but I know that there are 3 frame related events which actually get signaled on individual frames : that's FrameBeforeNavigate(dispid=200), FrameNavigateComplete(dispid=201) and FrameNewWindow(dispid=204).
That said, whatever the code you have, if it does what you are looking for, then it's probably because it's fine.
She's so dirty, she threw a boomerang and it wouldn't even come back.
|
|
|
|
|
GriffonRL-
Have you had success in trapping the navigation events in the browser?
-AC
|
|
|
|
|
Hi,
At least for DocumentComplete() it works. I also applied the "patch" to get BeforeNavigate2 events (until we get .NET SP3 . Everything else seems to work like in VC++/COM so far. But who knows ?
I am starting with .NET and it took me 1 day to learn C# and the .NET basics. But the marshalling system was not clear and I spent 2 days on problems.
Regards,
R. L.
|
|
|
|
|