Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.09.19;
Скачать: [xml.tar.bz2];

Вниз

принимать ярлыки URL из IE   Найти похожие ветки 

 
Eugene_Jek_Efimochkin   (2002-07-17 23:37) [0]

Здравствуйте ещё раз, мастера! Поиск сабжа вернул немного не то... Нужно организовать прием ярлыков из строки адреса Internet Explorer на форму моей проги. Фишка с приемом файлов, лоселе прекрасно работавшая во всех проектах, теперь не помогла. Подскажите , пжлста, решение.


 
Almaz   (2002-07-18 04:06) [1]


>
> Eugene_Jek_Efimochkin (17.07.02 23:37)
> Нужно организовать прием ярлыков из строки адреса
> Internet Explorer на форму моей проги. Фишка с приемом файлов,
> лоселе прекрасно работавшая во всех проектах, теперь не
> помогла. Подскажите , пжлста, решение.

Например так:

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ActiveX;

type
TDropTarget = class (TInterfacedObject, IDropTarget)
function DragEnter(const dataObj: IDataObject; grfKeyState: Longint;
pt: TPoint; var dwEffect: Longint): HResult; stdcall;
function DragOver(grfKeyState: Longint; pt: TPoint;
var dwEffect: Longint): HResult; stdcall;
function DragLeave: HResult; stdcall;
function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint;
var dwEffect: Longint): HResult; stdcall;
end;

TForm1 = class(TForm)
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
DropTarget: TDropTarget;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

function TDropTarget.DragEnter(const dataObj: IDataObject; grfKeyState: Longint;
pt: TPoint; var dwEffect: Longint): HResult;
begin
Result := S_OK;
end;

function TDropTarget.DragOver(grfKeyState: Longint; pt: TPoint;
var dwEffect: Longint): HResult;
begin
Result := S_OK;
end;

function TDropTarget.DragLeave: HResult;
begin
Result := S_OK;
end;

function TDropTarget.Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint;
var dwEffect: Longint): HResult;
var
Format: TFORMATETC;
Data: TSTGMEDIUM;
Buffer: PChar;
begin
with Format do
begin
cfFormat := CF_TEXT;
dwAspect := DVASPECT_CONTENT;
ptd := nil;
lindex := -1;
tymed := -1;
end;
Result := dataObj.GetData(Format, Data);
if (Result = S_OK) and (Data.tymed = TYMED_HGLOBAL) then
begin
Buffer := GlobalLock(Data.hGlobal);
Form1.Edit1.Text := Buffer;
GlobalFree(Data.hGlobal);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
if OleInitialize(nil) = S_OK then
begin
DropTarget := TDropTarget.Create;
RegisterDragDrop(Handle, DropTarget);
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
OleUninitialize;
end;

end.


На форме должен находиться TEdit, в который и будут помещаться URL.

Удачи.


 
Eugene_Jek_Efimochkin   (2002-07-29 00:00) [2]

WOW



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.09.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.719 c
1-61054
maxim2
2002-09-09 13:08
2002.09.19
Как сделать чтобы нельзя было добавлять потомка к потомку


1-61075
SergeyDN
2002-09-09 11:39
2002.09.19
Как можно из делфей выбрать определённый лист в Excel!


3-60961
juster
2002-08-28 17:57
2002.09.19
Навигация по набору данных


14-61265
asafr
2002-08-23 11:59
2002.09.19
Новые правила дорожного движения ГИБДД.


14-61272
Кузнецов
2002-08-23 11:10
2002.09.19
халява





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский