140 lines
3.6 KiB
ObjectPascal

(* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower Abbrevia
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1997-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** *)
{*********************************************************}
{* ABBREVIA: ZIPREG1.PAS *}
{* Copyright (c) TurboPower Software Co 1997 *}
{* All rights reserved. *}
{*********************************************************}
{* ABBREVIA Example program file *}
{*********************************************************}
unit ZipReg1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TExZipAssociation = class(TForm)
CheckZipReg: TButton;
RegZipExt: TButton;
Replace: TCheckBox;
ExitBtn: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Icon1: TImage;
ID1: TEdit;
FileType1: TEdit;
App1: TEdit;
Browse1: TSpeedButton;
OpenDialog1: TOpenDialog;
procedure CheckZipRegClick(Sender: TObject);
procedure RegZipExtClick(Sender: TObject);
procedure ExitBtnClick(Sender: TObject);
procedure Browse1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ExZipAssociation: TExZipAssociation;
implementation
{$R *.DFM}
uses
AbZipExt, ShellApi;
var
App, ID, FileType : string;
FN : array[0..255] of char;
IconIndex : Word;
procedure TExZipAssociation.CheckZipRegClick(Sender: TObject);
begin
App := '';
ID := '';
FileType := '';
if AbGetZipAssociation(App, ID, FileType) then begin
GroupBox1.Caption := ' ''zip'' is currently registered ';
StrPCopy(FN, App);
{$IFNDEF Win32}
Icon1.Picture.Icon.Handle := ExtractIcon(HInstance, FN, 0);
{$ELSE}
Icon1.Picture.Icon.Handle := ExtractAssociatedIcon(HInstance, FN, IconIndex);
{$ENDIF}
end else begin
GroupBox1.Caption := ' ''zip'' is not registered ';
Icon1.Picture.Icon.Handle := 0;
end;
ID1.Text := ID;
FileType1.Text := FileType;
App1.Text := App;
end;
procedure TExZipAssociation.RegZipExtClick(Sender: TObject);
begin
if (AbExistingZipAssociation and not Replace.Checked) then
CheckZipRegClick(nil)
else begin
App := App1.Text;
FileType := FileType1.Text;
ID := ID1.Text;
if AbRegisterZipExtension(App, ID, FileType, Replace.Checked) then
CheckZipRegClick(nil)
else begin
GroupBox1.Caption := ' Error occurred during registration ';
Icon1.Picture.Icon.Handle := 0;
end;
end;
end;
procedure TExZipAssociation.ExitBtnClick(Sender: TObject);
begin
Close;
end;
procedure TExZipAssociation.Browse1Click(Sender: TObject);
begin
OpenDialog1.Title := 'Select application to associate with ''zip'' files';
OpenDialog1.Filename := '*.exe';
if OpenDialog1.Execute then begin
App := OpenDialog1.Filename;
App1.Text := App;
end;
end;
end.