|
It's definately not a shell extension, but an extension to NTFS. It sets up and maintains an interface to translate between NTFS and a foreign file system.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I think you are wrong . Look at Gmail drive : http://www.softpedia.com/get/Internet/E-mail/Mail-Utilities/GMail-Drive-shell-extension.shtml . It is a shell extension, isn't it ?
|
|
|
|
|
Well, how about this... here[^] is the Windows Shell guide. You tell me.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Actually that's not true. The shell displays objects based on PIDLs (pointer to an ID list). Explorer displays the file system with a shell namespace for the file system itself. Remove file systems are browsed using shell namespaces, too. This whole system is extensible and described at http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_adv/namespaceextension/namespace.asp[^].
Doing this in C# is not a simple task and I highly recommend using native code. You'll probably spend more time trying to define and use interop interfaces and other types than actually doing the necessary work for a shell extension. All the native headers already have all these types defined.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Customer Product-lifecycle Experience
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
|
Thanks Heath! I couldn't find it in there at all. I just assumed that since it "wasn't" in the Shell Guide, it had to be in NTFS.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
|
Hi,I have a application by C#.I want encapsulate it in order to can use it on computer not install VS.NET.
Who know about this problem,please help me.
Thanks.
|
|
|
|
|
Just compile it. In the bin folder you get an exe file.
---
b { font-weight: normal; }
|
|
|
|
|
VS.NET is used to compile the applications, and .NET is used to run the applications. A computer cannot run a managed application without having the .NET Framework installed. It's a runtime, just like Java, Perl, Visual Basic, etc.
.NET only needs to be installed once and many computers (and more in the future where .NET is installed by default, which started with XP Media Center and Tablet PC editions, and Windows Server 2003) and there are intelligent ways of not requiring a specific version if you've done compatibility testing. That is, .NET applications will typically run on newer Framework versions. There are, on occasion, a few breaking changes but these are documented at http://msdn.microsoft.com/netframework[^] and you typically won't run into them. Your install could check that at least the minimum runtime version is installed. If a newer runtime is installed you could avoid requiring a newer runtime versin.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Customer Product-lifecycle Experience
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Hello guys,
I have just started studying C# and I have a little proble here :
I am trying to create a Library , from MSDN tutorial , where is written :
To build the library, make Functions the current directory and type the following at the command prompt:
csc /target:library /out:Functions.dll Factorial.cs DigitCounter.cs
Where should I type above written
Can anyone help
"Success is the ability to go from one failure to another with no loss of enthusiasm." - W.Churchill
-- modified at 4:41 Sunday 16th October, 2005
|
|
|
|
|
In the command prompt (cmd.exe) of course.
If you have Visual Studio .NET installed, go to Start->Program Files->Microsoft Visual Studio .NET 2003->Visual Studio .NET Tools -> Visual Studio .NET 2003 Command Prompt.
Otherwise, cd to the directory where you installed the .NET Framework SDK and type it there. To save the trouble of doing this every time, add the directory to the PATH environment variable.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
Yep , thanks
I was typing it in Start -> Run -> cmd and of course got errors.
But now I get errors that Factorial.cs could not be found ,though I created Factorials.cs file , could you provide me some example , I really don't get it
thanks
"Success is the ability to go from one failure to another with no loss of enthusiasm." - W.Churchill
-- modified at 5:32 Sunday 16th October, 2005
|
|
|
|
|
I guess you just gave csc Factorial.cs . You need to give the full path to Factorial.cs if you're not running csc from the directory in which Factorial.cs is in.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
the tab width of 4 in the vs.net editor really irritates me. for highly indented code, it becomes almost unreadable. i would really like to bring it down to 2 or so. could someone please help.
thanking you in advance
Krishanu Nandy
"If absolute power corrupts absolutely, where does that leave God" -George Deacon
|
|
|
|
|
Try to look into the options...
Extras->Options->Text-Editor->C#
-- modified at 4:07 Sunday 16th October, 2005
And btw: we have a separate forum vor VS IDE issues here...
|
|
|
|
|
how can i specify a directx video source as binary stream? instead of having a directory. is that even possible threw any intermediate classe or any other way.
thx
|
|
|
|
|
Do you mean like through an ASP.NET web site? Sure. Even files are streamed from the file system to the web client through the web server using an IHttpHandler implementation. See http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemwebihttphandlerclasstopic.asp[^] for more information. You should also read How To Create an ASP.NET HTTP Module Using Visual C# .NET[^] in the Microsoft KB for a good example.
Consider if this is really necessary, though. Windows Server 2003 comes with Windows Media Services that does all this already plus more that would be difficult - and dare I say pointless - already implemented for you, such as security, on-demand streaming, real-time streaming of live content, and more. It's not difficult to set up and has a pretty cool and simple interface.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Customer Product-lifecycle Experience
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
thx for your response but i need to do that because i need to test a new transport layer. and let me rephrae my question. i have a binary stream object that i can invoke the read method on, is there any way i can use that stream as an imput to the directx class
thx
|
|
|
|
|
A stream is just a stream of bytes, so you can use it however necessary. DirectX has a number of ways of streaming data and DMO objects can be chained to read, decode, and play a stream of bytes. Please be specific in what you're trying to do. DirectX, for instance, is a framework for drawing and networking. There isn't such a thing as a "DirectX video source" so I'm afraid I'm not sure what you mean.
Do you have a stream of bytes for a Windows Media Video (WMV) file and want to display it? You could actually just host the Windows Media control as an ActiveX component in the AxHost control. Use aximp.exe or Visual Studio.NET's "Add References" dialog and the COM tab to add it to your project (or customize the toolbox to add it for later use).
For information about chaining DMO objects, there's some great resources on the Internet. Check out http://search.msn.com/results.aspx?q=site%3Amsdn.microsoft.com+DMO+video+C%23[^] for a few articles on MSDN.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Customer Product-lifecycle Experience
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Hi,
To remove Event Handlers from my all controls in the form, I want to use a generic code as follows.
1) Run through all controls in the Form
2) Run through all Events of a control using Reflection .GetEvents()
3) For each Event, I want to get the Delegate, so that I can remove all using GetInvocationList(). but .NET doesn't provide any property to get delegate for the Event Handler.
Please help. How can I get the Delegate for the Event Handler.
|
|
|
|
|
The EventInfo contains information about an event, which describes add and remove accessors. It also has a method to remove an event handler, EventInfo.RemoveEventHandler . In order to call this you must get the delegate for the event handler (the target method).
To do this you need to get the field corresponding to the event that is the delegate. By default in C# at least, that field has the same name as the event. So, you can use EventInfo.Name then call Type.GetField with the name and the right BindingFlags . Cast the field value to Delegate and then you can get the invocation list, i.e. each target added to the delegate (a multicast delegate).
Below is a quick sample I threw together.
using System;
using System.Reflection;
class Test
{
public event EventHandler TestEvent;
public static void Main(string[] args)
{
Test t = new Test();
Console.WriteLine("Adding event handlers");
for (int i = 0; i < 5; i++)
{
t.TestEvent += new EventHandler(new Test(i).OnTestEvent);
Console.WriteLine("Added event handler to test " + i);
}
Console.WriteLine("Calling event");
if (t.TestEvent != null)
{
t.TestEvent(t, EventArgs.Empty);
}
Console.WriteLine("Removing event handlers");
RemoveAllHandlers(t);
Console.WriteLine("Calling event again");
if (t.TestEvent != null)
{
t.TestEvent(t, EventArgs.Empty);
}
}
Test()
{
}
int index = 0;
Test(int index)
{
this.index = index;
}
void OnTestEvent(object sender, EventArgs e)
{
Console.WriteLine("Handled from test " + index);
}
static void RemoveAllHandlers(Test test)
{
Type t = test.GetType();
foreach (EventInfo ei in t.GetEvents())
{
FieldInfo fi = t.GetField(ei.Name, BindingFlags.Public |
BindingFlags.NonPublic | BindingFlags.Instance);
if (fi != null)
{
Delegate d = (Delegate)fi.GetValue(test);
foreach (Delegate handler in d.GetInvocationList())
{
Test target = handler.Target as Test;
if (target != null)
{
Console.WriteLine("Removing event handler from test " + target.index);
}
ei.RemoveEventHandler(test, handler);
}
}
}
}
}
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Customer Product-lifecycle Experience
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Thanks Heath for your help. I got it what you explained but when I try that with this sample code, it didn't work. Please help me. Yoour help is appreciated.
I have a TextBox "textBox1" in my windows form. I have a handler for TextChanged event. I am trying to remove this using this code. but it doesn't work. Please help.
<br />
foreach(EventInfo ev in textBox1.GetType().GetEvents())<br />
{<br />
FieldInfo fi = textBox1.GetType().GetField(ev.Name,<br />
BindingFlags.Public |<br />
BindingFlags.NonPublic |<br />
BindingFlags.Instance);<br />
<br />
if (fi != null)<br />
{<br />
Delegate d = (Delegate)fi.GetValue(textBox1);<br />
foreach(Delegate handler in d.GetInvocationList())<br />
{<br />
ev.RemoveEventHandler(this, handler);<br />
}<br />
}<br />
}<br />
|
|
|
|
|
Most - if not all - of the Windows Forms controls provided by the .NET Framework do not use the event name as the field name. Please use ildasm.exe installed with the .NET Framework SDK to see what the fields are.
Take the add_TextChanged method (the add accessor method for the Control.TextChanged event):
.method public hidebysig specialname instance void
add_TextChanged(class [mscorlib]System.EventHandler 'value') cil managed
{
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance class [System]System.ComponentModel.EventHandlerList [System]System.ComponentModel.Component::get_Events()
IL_0006: ldsfld object System.Windows.Forms.Control::EventText
IL_000b: ldarg.1
IL_000c: callvirt instance void [System]System.ComponentModel.EventHandlerList::AddHandler(object,
class [mscorlib]System.Delegate)
IL_0011: ret
} You can use ildasm.exe (or an application like .NET Reflector that can also decompile source code) to view the System.ComponentModel.EventHandlerList, System type.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Customer Product-lifecycle Experience
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Thanks a lot for your help.
But when I checked it in ILDASM, I found that each control uses different standards. For e.g. for SelectedIndexChanged has a filed called EVENT_SELECTEDCHANGED. So the generic code that I am thinking of may not work properly. Pls advise.
|
|
|
|