|
Is there a way to add a new bar to the Outlook Navigation Pane. I have tried but have found out that only the shortcut bar is programmable. I know the Outlook object model doesn't allow us to do it but is there is any other way please let me know. Also i would like to show differet context menus when clicking on different calenda folders. Can anyone please help.I am working in C#.
Bikash Rai
|
|
|
|
|
(design pattern terminology newbie warning!)
I'm porting a sprite engine and multimedia toolbox, Endogine, which I've written in Director (see www.endogine.com) to C#, and I have to change the structure a bit because of the language differences.
In Lingo (Director's scripting language), it's possible to switch base classes in runtime, which is something I use a lot in Endogine.
Here's how:
The sprites can be rendered either by blitting bitmaps to the screen, or by using textured 3D planes. In the C# version, I support GDI+, DirectDraw and Direct3D.
Naturally, for each rendering method, different code is needed, and to solve this I've written a separate Sprite class (derived from the virtual SpriteBase) for each rendering method.
Now I want to derive other classes from these 3, say a BouncingSprite which moves around the screen. Depending on the rendering mode, a different base class must be used. In Lingo, I could define the base class in runtime (3D mode? OK, use Sprite3D as base class), but obviously this isn't allowed in C#.
Which is the most common way to go about this? (I don't just want it to work, I want it to use well-known design patterns
Interfaces could help, but I don't know much about them.
Should I avoid inheritance for the 3 types of rendering and write 3 separate "SpriteRenderMethodSpecific" helper classes (and a base class for them) so the Sprite class can choose which to instantiate in runtime? (Or is that pattern called Adapters..?)
TIA
|
|
|
|
|
I'm not a patterns expert, so there may be a better solution. But I'd probably use the "strategy" pattern.
Each of the three possible base classes must have the same interface, otherwise how are the derived classes going to cope with their bases being hot swapped from beneath them. So, create an interface for those calls. then create three classes that implement that interface (you could use an astract base class [ABC] in place of an interface if you prefer).
Then in what was your derived class create a member variable which is of the same type as the interface (or ABC). You can then create a method for instantiating the required concrete class so that you can call it at run time to swap the render methods around as needed. The constructor should call this instantiating method so that at least the class always has a valid render helper class. Each time you need to render something it calls through the interface (or ABC) to get at the correct functionality.
So...
interface IRenderHelper {}
class RenderTypeA : IRenderHelper{}
class RenderTypeB : IRenderHelper{}
class RenderTypeC : IRenderHelper{}
class BouncingSprite
{
IRenderHelper renderHelper;
void UseRenderTypeA()
{
renderHelper = new RenderTypeA();
}
void UseRenderTypeB()
{
renderHelper = new RenderTypeB();
}
void UseRenderTypeC()
{
renderHelper = new RenderTypeC();
}
}
Does that help?
My: Blog | Photos
WDevs.com - Open Source Code Hosting, Blogs, FTP, Mail and More
|
|
|
|
|
It feels like that is esentially my vague ghost of an idea put into form and substance - so it sounds very reasonable! I'll read up on interfaces and the strategy pattern. Thanks a lot!
BTW, does anyone have recommendations for good C#+Managed DirectX forums/mailing lists?
|
|
|
|
|
Hi ,
This is code has been written in Vb.net
In Winform there are two button. First button checks for LAN connection nad Second button checks for Modem connection.
When i connects thr dial up and press modem connection then it works fine
but for LAN connection it does not work it traps the dial up connection and retruns the value FALSE
Note: I have connected thr LAN and dial up thr modem (Basically it connects two computer using modem)
This program perfectly works for Modem but it does not work for LAN
can somebody modifies this program
----------------------------------
Imports System.IO, Microsoft.Win32
Public Class Form1
Inherits System.Windows.Forms.Form
Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" Alias "InternetGetConnectedStateExA" _
(ByRef lpdwFlags As Long, _
ByVal lpszConnectionName As String, _
ByVal dwNameLen As Long, ByVal dwReserved As Long) As Boolean
Public Const ModemConnection As Integer = &H1S
Dim Status, Status1, DissNotWritten As Boolean
Public CntType As Long, CntName As String, CntNameLen As Long = 50
Public CntType1 As Long, CntName1 As String = Space(50), CntNameLen1 As Long = 50
Public Const LanConnection As Integer = &H2S
Public Function IsModemConnection() As Boolean
Dim dwflags As Integer
'return True if modem connection.
' MessageBox.Show(ModemConnection)
' MessageBox.Show(Status)
' MessageBox.Show(IsModemConnection)
Status = InternetGetConnectedStateEx(CntType, CntName, CntNameLen, 0)
IsModemConnection = CntType And ModemConnection And Status
'MessageBox.Show(IsModemConnection)
End Function
Public Function IsLanConnection() As Boolean
Dim dwflags As Integer
'return True if LAN connection
Status1 = InternetGetConnectedStateEx(CntType1, CntName1, CntNameLen1, 0)
IsLanConnection = CntType1 And LanConnection And Status1
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Not IsModemConnection() Then
DissNotWritten = False
MessageBox.Show("Not Connected To Internet !!!")
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Else
MessageBox.Show("Connected To Internet !!!")
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If Not IsLanConnection() Then
DissNotWritten = False
MessageBox.Show("Not Connected on LAN !!!")
Else
MessageBox.Show("Connected on LAN !!!")
End If
End Sub
This modemcheck program has been written in Vb.net which only checks for modem It does not check the separate LAN connection i need to checks for LAN also bec in my computer I have only Local area connection and one modem connection
This program i converted into C sharp
----------------------------------
In This C sharp program it does not check for MOdem connection i have used same thing what i used in VB.net above modem connectivity program
Can anyone modify it
I tested in vb.net its working for modem ocnnection but when i connect also LAN connection
modemcheckcsharp.cs
----------------------
using System;
using System.Collections;
using System.Data;
using System.Drawing;
using System.Diagnostics;
using System.Windows.Forms;
using System.IO;
using Microsoft.Win32;
[System.Runtime.InteropServices.DllImport("wininet.dll", EntryPoint="InternetGetConnectedStateExA", ExactSpelling=false, CharSet=System.Runtime.InteropServices.CharSet.Ansi, SetLastError=true)]
private static extern bool InternetGetConnectedStateEx(ref long lpdwFlags, string lpszConnectionName, long dwNameLen, long dwReserved);
public const int ModemConnection = 0X1;
private bool Status;
private bool Status1;
private bool DissNotWritten;
public long CntType;
public string CntName;
public long CntNameLen = 50;
public long CntType1;
public string CntName1 = string.Empty.PadLeft(50);
public long CntNameLen1 = 50;
public const int LanConnection = 0X2;
public bool IsModemConnection()
{
int dwflags = 0;
//return True if modem connection.
// MessageBox.Show(ModemConnection)
// MessageBox.Show(Status)
// MessageBox.Show(IsModemConnection)
Status = InternetGetConnectedStateEx(ref CntType, CntName, CntNameLen, 0);
return Convert.ToBoolean(CntType) & Convert.ToBoolean(ModemConnection) & Status;
//MessageBox.Show(IsModemConnection)
}
public bool IsLanConnection()
{
int dwflags = 0;
//return True if LAN connection
Status1 = InternetGetConnectedStateEx(ref CntType1, CntName1, CntNameLen1, 0);
return Convert.ToBoolean(CntType1) & Convert.ToBoolean(LanConnection) & Status1;
}
private void Button1_Click(object sender, System.EventArgs e)
{
if (! (IsModemConnection()))
{
MessageBox.Show("Not Connected To Internet via Modem!!!");
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
}
else
{
MessageBox.Show("Connected To Internet Via modem !!!");
}
}
private void Button2_Click(object sender, System.EventArgs e)
{
if (! (IsLanConnection()))
{
DissNotWritten = false;
MessageBox.Show("Not Connected on LAN !!!");
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
}
else
{
MessageBox.Show("Connected on LAN !!!");
}
}
Pls modify this csharp program as written in vb.net Out put is dieeerent in c sharp.
Please check out the above program
Thanks in Advance
regards,
sanjeev
|
|
|
|
|
Hello
I have something of a silly question =)
I have buttons I want the user to be able to access with quickcommands. I have already set the apropriate keys, but how do I underline for an example the s in save in a button.text?
|
|
|
|
|
Hi!
Just prefix the letter you want to be underlined with an ampersand.
So the Text for your Save button would be "&Save".
mav
|
|
|
|
|
<br />
private System.Windows.Forms.Button cmdTest;<br />
this.cmdTest = new System.Windows.Forms.Button();<br />
<br />
this.cmdTest.Text = "&Save";<br />
When the form is loaded and the button shows, you might not see the S underlined until you press the "Alt" button. I just tested this - I brought up the form and typed ALT-S and it fired the event (simple message box).
|
|
|
|
|
i would like to use TAPI with C#,can u help me from where to start,thnx
|
|
|
|
|
That depends entirely on what TAPI is
|
|
|
|
|
There are various C# wrappers that will let you use TAPI (Telephony API) in C#. The problem is, none of them completely wrap the API. Also, there are serious issues with using TAPI 3.0 from managed code. You might want to search www.GotDotNet.com User Samples section for "TAPI".
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
You'll have to consult the MSDN documentation on the OS version your using to see what it supports as far as TAPI. The embedded/mobile operating systems don't support the full TAPI API's.
You can start here[^]. I can't go any further becuase I've never done any kind of TAPI-based development and I rarely do embedded development.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I have the following URL:
http://citeseer.ist.psu.edu/rd/55811103,653,1,0.25,Download/http://citeseer.ist.psu.edu/cache/papers/cs/7145/http:zSzzSzwww.stanford.eduzSzclasszSzcs343zSzpszSzpathprof.pdf/ball96efficient.pdf
Creating System.Uri with the above URL:
Uri uri = new Uri(aboveURL)
removes the extra slash after "Download/http://". The debugger shows it as
Download/http:/citeseer.ist....
The Uri in HttpWebRequest (which is created with the above URL) also removes
the extra slash. As a result, I get NameResolution exception.
The Uri is shown as
http://citeseer.ist.psu.edu/rd/55811103,653,1,0.25,Download/http:/citeseer.ist.psu.edu/cache/papers/cs/7145/http:zSzzSzwww.stanford.eduzSzclasszSzcs343zSzpszSzpathprof.pdf/ball96efficient.pdf
|
|
|
|
|
|
Using HttpUtility.Encode results in System.Uri throwing an exception, since it can't process the encoded info.
Uri uri = new Uri(HttpUtility.UrlEncode(url));
|
|
|
|
|
I have a co-worker that created an form in Access 2000. In order to use it every where I need to install MS Access 2000. How can I show this form in MFC and allow the end user to use it without having to install MS Access 2000 on all PC's?
Thanks
This is also posted on the VC++ forum.
Tom Wright
tawright915@yahoo.com
|
|
|
|
|
You should probably remove the reference to MFC in the C# forum.
Whatever language you use, you can write a program that reproduces the form, and does the same work to the data in the database. I doubt you can just host the existing form in an outside program.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
You can't use the form he created in Access 2000 without installing Access 2000.
You'll have to recode the form using whatever language you like and duplicate the functionality that you need.
Tom Wright wrote:
This is also posted on the VC++ forum.
:SMACK!: Cross-posting is considered very rude! Especially when you post the question in a forum that has nothing to do with the language your using...
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I have a problem using InvokeMember.
When calling the method I have:
t.InvokeMember(widget.InitMethod, BindingFlags.DeclaredOnly |BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod, null, newWidget, widget.Parameters);
Info on vars:
newWidget is a object of the class WSlider. WSlider has a method called InitSlider(int,int,int).
widget.Parameters is a object array which holds 3 int values. widget.InitMethod holds "InitSlider".
Now, this just throws me a MissingMethodException. It works fine with one parameter, but as soon as I add more it crashes. Anyone got a clue on this?
|
|
|
|
|
case-block was followed by a ;
too many hours up.
|
|
|
|
|
the ; was not the problem. still open for comments!
|
|
|
|
|
What's widget.InitMethod? Are you sure the method name's right? Also, make sure you have the correct assembly loaded.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
Found the problem. I had a mismatch in my data type passing methods when parsing the XML files that holds states for the new objects.
|
|
|
|
|
I am trying to crawl using the following code snippet.
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Win32)";
...
By default, the req.AllowAutoRedirect is true and MaximumAutomaticRedirections is 50.
When I try to crawl the following URL.
http://citeseer.ist.psu.edu/rd/55811103,653,1,0.25,Download/http://citeseer.ist.psu.edu/cache/papers/cs/7145/http:zSzzSzwww.stanford.eduzSzclasszSzcs343zSzpszSzpathprof.pdf/ball96efficient.pdf
I get NameResolutionFailure exception. However, I am able to open this URL from the browser and it gets redirected to:
http://citeseer.ist.psu.edu/cache/papers/cs/7145/http:zSzzSzwww.stanford.eduzSzclasszSzcs343zSzpszSzpathprof.pdf/ball96efficient.pdf
How do I force my C# code to go to the redirected url?
|
|
|
|
|
I am trying to check a database to see if a record exists(ComputerName) in a database. If it does NOT exist, then I want to run an Insert. If it DOES exists, then I want it to update the database. It seems like I would use an IF statement, but I am unsure of how to do it.
Eric
|
|
|
|
|