Live Chat Icon For mobile
Live Chat Icon

How to get the hyperlink and the hyperlink text dragged from IE in my Control’s drag-drop event?

Platform: WinForms| Category: Patterns

Compiled from the newsgroup posts by Andy Fish and Brian:

You can do this in the DragDrop event handler of your control:


[C#]
try
{
	//Use e.Data.GetData('UniformResourceLocator') to get the URL
    	System.IO.Stream ioStream=
                 	(System.IO.Stream)e.Data.GetData('FileGroupDescriptor');
    	byte[] contents = new Byte[512];
    	ioStream.Read(contents,0,512);
    	ioStream.Close();
    	StringBuilder sb = new StringBuilder();
	//The magic number 76 is the size of that part of the
	//FILEGROUPDESCRIPTOR structure before the filename starts - cribbed
	//from another usenet post.
    	for (int i=76; contents[i] != 0; i++) 
    	{
        		sb.Append((char)contents[i]);
    	}
    	if (!sb.ToString(sb.Length-4,4).Equals('.url'))
    	{
        		throw new Exception('filename does not end in ’.url’');
    	}
    	filename = sb.ToString(0,sb.Length-4);

}
catch(Exception ex)
{
    	MessageBox.Show(ex.ToString());
}

[VB.Net]
Try
	’Use e.Data.GetData('UniformResourceLocator') to get the URL
    	System.IO.Stream ioStream=
                 	CType(e.Data.GetData('FileGroupDescriptor'), System.IO.Stream)
    	Dim contents() As Byte =  New Byte(512) {} 
    	ioStream.Read(contents,0,512)
    	ioStream.Close()
    	Dim sb As StringBuilder =  New StringBuilder() 
 	
	’The magic number 76 is the size of that part of the
	’FILEGROUPDESCRIPTOR structure before the filename starts - cribbed
	’from another usenet post.
    	Dim i As Integer
    	For  i = 76 To contents(i)  0 Step  i + 1
        		sb.Append(CType(contents(i), Char))
    	Next
    	If Not sb.ToString(sb.Length-4,4).Equals('.url') Then
        		Throw New Exception('filename does not end in ’.url’')
    	End If
    	filename = sb.ToString(0,sb.Length-4)
Catch ex As Exception
    	MessageBox.Show(ex.ToString())
End Try

Share with

Share on twitter
Share on facebook
Share on linkedin

Related FAQs

Couldn't find the FAQs you're looking for?

Please submit your question and answer.