1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/camark-SendManager

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
AddToSendUnit.pas 1.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
camark Отправлено 30.08.2013 11:00 417bff1
unit AddToSendUnit;
interface
uses
IExeInf,ShellAPI,ShlObj,Windows,ActiveX,SysUtils,ComObj,Forms,Controls;
type
AddToSend=class(TInterfacedObject,IExeInterface)
public
function GetDescription:string;
function GetParam:string;
procedure Execute(folder:string);
private
procedure CreateLink(strPath:string;strDescription:string);
function GetSendToPath:string;
end;
implementation
uses PromptName;
var
ATS:AddToSend;
{ AddToSend }
procedure AddToSend.CreateLink(strPath, strDescription: string);
var
aObj:IUnknown;
ShellLink:IShellLink;
PersistFile:IPersistFile;
szBuffer:array[0..MAX_PATH] of char;
szWChar:array[0..MAX_PATH] of WideChar;
begin
aObj:=CreateComObject(CLSID_ShellLink);
ShellLink:=aObj as IShellLink;
PersistFile:=ShellLink as IPersistFile;
StrPCopy(szBuffer,strPath);
OleCheck(ShellLink.SetPath(szBuffer));
StrPCopy(szBuffer,GetSendToPath+'\'+strDescription+'.lnk');
MultiByteToWideChar(CP_ACP,0,szBuffer,-1,szWChar,1024);
OleCheck(PersistFile.Save(szWChar,true));
end;
procedure AddToSend.Execute(folder: string);
var
input:TInputFrm;
begin
input:=TInputFrm.Create(nil);
input.Edit1.Text:=folder;
input.ShowModal;
if (input.ModalResult=mrOK) and (input.Edit1.Text<>'') then
CreateLink(folder,input.Edit1.text);
input.Free;
end;
function AddToSend.GetDescription: string;
begin
result:='ӵ"͵"˵';
end;
function AddToSend.GetParam: string;
begin
result:='SendTo';
end;
function AddToSend.GetSendToPath: string;
var
LPID:PItemIDList;
path:array[0..MAX_PATH] of char;
begin
SHGetSpecialFolderLocation(Application.Handle,
CSIDL_SENDTO,
LPID);
ShGetPathFromIDList(lpid,path);
result:=string(path);
end;
initialization
ATS:=AddToSend.Create;
RegisterExeInf(ATS as IExeInterface);
end.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/camark-SendManager.git
git@api.gitlife.ru:oschina-mirror/camark-SendManager.git
oschina-mirror
camark-SendManager
camark-SendManager
master