First commit 19/07/1998
This commit is contained in:
BIN
CDopping/ActBtn/ActBtn.dcr
Normal file
BIN
CDopping/ActBtn/ActBtn.dcr
Normal file
Binary file not shown.
BIN
CDopping/ActBtn/ActImg.dcr
Normal file
BIN
CDopping/ActBtn/ActImg.dcr
Normal file
Binary file not shown.
64
CDopping/ActBtn/actbtn.cpp
Normal file
64
CDopping/ActBtn/actbtn.cpp
Normal file
@ -0,0 +1,64 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#include <vcl\vcl.h>
|
||||
#pragma hdrstop
|
||||
|
||||
#include "actbtn.h"
|
||||
//---------------------------------------------------------------------------
|
||||
static inline TActiveButton *ValidCtrCheck()
|
||||
{
|
||||
return new TActiveButton(NULL);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
__fastcall TActiveButton::TActiveButton(TComponent* Owner)
|
||||
: TBitBtn(Owner)
|
||||
{
|
||||
captured = false;
|
||||
Glyph1 = new Graphics::TBitmap;
|
||||
FGlyph2 = new Graphics::TBitmap;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
__fastcall TActiveButton::~TActiveButton()
|
||||
{
|
||||
delete Glyph1;
|
||||
delete FGlyph2;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TActiveButton::MouseMove( Classes::TShiftState Shift, int X, int Y)
|
||||
{
|
||||
if( !captured){
|
||||
SetCapture( Handle);
|
||||
captured = true;
|
||||
Glyph1->Assign( Glyph); // save old glyph
|
||||
Glyph = Glyph2; // show new glyph
|
||||
}
|
||||
if( (X<0) || (Y<0) || (X>Width) || (Y>Height)){
|
||||
ReleaseCapture();
|
||||
captured = false;
|
||||
Glyph = Glyph1; // restore old glyph
|
||||
}else{
|
||||
TBitBtn::MouseMove( Shift, X, Y);
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TActiveButton::Click( void)
|
||||
{
|
||||
TBitBtn::Click();
|
||||
ReleaseCapture();
|
||||
captured = false;
|
||||
Glyph = Glyph1;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TActiveButton::SetGlyph2( Graphics::TBitmap *val)
|
||||
{
|
||||
Glyph2->Assign( val);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Actbtn
|
||||
{
|
||||
void __fastcall Register()
|
||||
{
|
||||
TComponentClass classes[1] = {__classid(TActiveButton)};
|
||||
RegisterComponents("Extras", classes, 0);
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
31
CDopping/ActBtn/actbtn.h
Normal file
31
CDopping/ActBtn/actbtn.h
Normal file
@ -0,0 +1,31 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef ActBtnH
|
||||
#define ActBtnH
|
||||
//---------------------------------------------------------------------------
|
||||
#include <vcl\SysUtils.hpp>
|
||||
#include <vcl\Controls.hpp>
|
||||
#include <vcl\Classes.hpp>
|
||||
#include <vcl\Forms.hpp>
|
||||
#include <vcl\Buttons.hpp>
|
||||
#include <vcl\StdCtrls.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
class TActiveButton : public TBitBtn
|
||||
{
|
||||
private:
|
||||
bool captured;
|
||||
void __fastcall MouseMove( Classes::TShiftState Shift, int X, int Y);
|
||||
|
||||
protected:
|
||||
Graphics::TBitmap *Glyph1,*FGlyph2;
|
||||
void __fastcall SetGlyph2( Graphics::TBitmap* val);
|
||||
void __fastcall Click( void);
|
||||
|
||||
public:
|
||||
__fastcall TActiveButton(TComponent* Owner);
|
||||
__fastcall ~TActiveButton();
|
||||
|
||||
__published:
|
||||
__property Graphics::TBitmap *Glyph2={read=FGlyph2, write=SetGlyph2};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
63
CDopping/ActBtn/actimg.cpp
Normal file
63
CDopping/ActBtn/actimg.cpp
Normal file
@ -0,0 +1,63 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#include <vcl\vcl.h>
|
||||
#pragma hdrstop
|
||||
|
||||
#include "actimg.h"
|
||||
//---------------------------------------------------------------------------
|
||||
static inline TActiveImage *ValidCtrCheck()
|
||||
{
|
||||
return new TActiveImage(NULL);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
__fastcall TActiveImage::TActiveImage(TComponent* Owner)
|
||||
: TImage(Owner)
|
||||
{
|
||||
captured = false;
|
||||
GlyphNormal = new Graphics::TPicture;
|
||||
GlyphOver = new Graphics::TPicture;
|
||||
GlyphPress = new Graphics::TPicture;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
__fastcall TActiveImage::~TActiveImage()
|
||||
{
|
||||
delete GlyphNormal;
|
||||
delete GlyphOver;
|
||||
delete GlyphPress;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TActiveImage::MouseMove( Classes::TShiftState Shift, int X, int Y )
|
||||
{
|
||||
if( !captured )
|
||||
{
|
||||
SetCapture( Parent );
|
||||
captured = true;
|
||||
GlyphNormal = Picture; // save old glyph
|
||||
Picture = GlyphOver; // show new glyph
|
||||
}
|
||||
if( (X<0) || (Y<0) || (X>Width) || (Y>Height))
|
||||
{
|
||||
ReleaseCapture();
|
||||
captured = false;
|
||||
Picture = GlyphNormal; // restore old glyph
|
||||
}else{
|
||||
TImage::MouseMove( Shift, X, Y );
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TActiveImage::Click( void )
|
||||
{
|
||||
TImage::Click();
|
||||
ReleaseCapture();
|
||||
captured = false;
|
||||
Picture = GlyphNormal;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Actimg
|
||||
{
|
||||
void __fastcall Register()
|
||||
{
|
||||
TComponentClass classes[1] = {__classid(TActiveImage)};
|
||||
RegisterComponents("JD Soft.", classes, 0);
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
32
CDopping/ActBtn/actimg.h
Normal file
32
CDopping/ActBtn/actimg.h
Normal file
@ -0,0 +1,32 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef ActBtnH
|
||||
#define ActBtnH
|
||||
//---------------------------------------------------------------------------
|
||||
#include <vcl\SysUtils.hpp>
|
||||
#include <vcl\Controls.hpp>
|
||||
#include <vcl\Classes.hpp>
|
||||
#include <vcl\Forms.hpp>
|
||||
#include <vcl\ExtCtrls.hpp>
|
||||
#include <vcl\StdCtrls.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
class TActiveImage : public TImage
|
||||
{
|
||||
private:
|
||||
bool captured;
|
||||
void __fastcall MouseMove( Classes::TShiftState Shift, int X, int Y);
|
||||
|
||||
protected:
|
||||
Graphics::TPicture *GlyphOver,*GlyphNormal, *GlyphPress;
|
||||
|
||||
void __fastcall Click( void);
|
||||
|
||||
public:
|
||||
__fastcall TActiveImage(TComponent* Owner);
|
||||
__fastcall ~TActiveImage();
|
||||
|
||||
__published:
|
||||
__property Graphics::TPicture *Picture_Over={read=GlyphOver, write=GlyphOver};
|
||||
__property Graphics::TPicture *Picture_Press={read=GlyphPress, write=GlyphPress};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
BIN
CDopping/ActvApp/ActivApp.OBJ
Normal file
BIN
CDopping/ActvApp/ActivApp.OBJ
Normal file
Binary file not shown.
18
CDopping/ActvApp/ActivApp.Txt
Normal file
18
CDopping/ActvApp/ActivApp.Txt
Normal file
@ -0,0 +1,18 @@
|
||||
Allows switching between open delphi applications and/or lauching (any) application
|
||||
Note: App to Switch too must have TActivateApp component
|
||||
two Methods: 1) ActivateApp - Switch to open App, if App Closed Then Launch It
|
||||
2) ExecuteApp - Launch App
|
||||
one Event: 1) BeforeLaunchApp - Allows one to discontinue Lauching of app when
|
||||
ActivateApp senses app to switch to is not open, does not stop
|
||||
launching of app when execute method used.
|
||||
Properties: 1) MainFormTitle - Title On Main form of Application to Activate when
|
||||
using AppActivate Method only. IF An MDI Application then included the
|
||||
FULL title displayed on the titlebar of the main form
|
||||
2) ExePath - Full path to executable including Exe name and any parameters
|
||||
Used by both ActivateApp & Execute App
|
||||
Freeware Use & Abuse
|
||||
Author: Edward de la Rey
|
||||
edwardr@mailbox.ru.ac.za
|
||||
USE AT OWN RISK
|
||||
For Delphi 1,2,3 Will Automatically pickup the correct DCR File,
|
||||
D16 is for Delphi1, D32 for Delphi 2&3, Don't rename them.
|
BIN
CDopping/ActvApp/ActivApp.d32
Normal file
BIN
CDopping/ActvApp/ActivApp.d32
Normal file
Binary file not shown.
BIN
CDopping/ActvApp/ActivApp.dcr
Normal file
BIN
CDopping/ActvApp/ActivApp.dcr
Normal file
Binary file not shown.
BIN
CDopping/ActvApp/ActivApp.dcu
Normal file
BIN
CDopping/ActvApp/ActivApp.dcu
Normal file
Binary file not shown.
62
CDopping/ActvApp/ActivApp.hpp
Normal file
62
CDopping/ActvApp/ActivApp.hpp
Normal file
@ -0,0 +1,62 @@
|
||||
// Borland C++ Builder
|
||||
// Copyright (c) 1995, 1998 by Borland International
|
||||
// All rights reserved
|
||||
|
||||
// (DO NOT EDIT: machine generated header) 'ActivApp.pas' rev: 3.00
|
||||
|
||||
#ifndef ActivAppHPP
|
||||
#define ActivAppHPP
|
||||
#include <Forms.hpp>
|
||||
#include <Classes.hpp>
|
||||
#include <SysUtils.hpp>
|
||||
#include <Messages.hpp>
|
||||
#include <Windows.hpp>
|
||||
#include <SysInit.hpp>
|
||||
#include <System.hpp>
|
||||
|
||||
//-- user supplied -----------------------------------------------------------
|
||||
|
||||
namespace Activapp
|
||||
{
|
||||
//-- type declarations -------------------------------------------------------
|
||||
typedef void __fastcall (__closure *TMYParamEvent)(System::TObject* Sender, bool &Continue);
|
||||
|
||||
typedef void __fastcall (__closure *TSuccess)(System::TObject* Sender, bool Result);
|
||||
|
||||
class DELPHICLASS TActivApp;
|
||||
class PASCALIMPLEMENTATION TActivApp : public Classes::TComponent
|
||||
{
|
||||
typedef Classes::TComponent inherited;
|
||||
|
||||
private:
|
||||
System::AnsiString GetAppToActivate;
|
||||
System::AnsiString GetExePath;
|
||||
TMYParamEvent EBeforeLaunchApp;
|
||||
void __fastcall SetAppToActivate(System::AnsiString Value);
|
||||
void __fastcall SetExePath(System::AnsiString Value);
|
||||
|
||||
protected:
|
||||
void __fastcall ShowYourSelf(tagMSG &Msg, bool &Handled);
|
||||
|
||||
__published:
|
||||
__fastcall virtual TActivApp(Classes::TComponent* AOwner);
|
||||
void __fastcall ActivateApp(void);
|
||||
void __fastcall ExecuteApp(bool Success);
|
||||
__property System::AnsiString MainFormTitle = {read=GetAppToActivate, write=SetAppToActivate};
|
||||
__property System::AnsiString ExePath = {read=GetExePath, write=SetExePath};
|
||||
__property TMYParamEvent BeforeLaunchApp = {read=EBeforeLaunchApp, write=EBeforeLaunchApp};
|
||||
public:
|
||||
/* TComponent.Destroy */ __fastcall virtual ~TActivApp(void) { }
|
||||
|
||||
};
|
||||
|
||||
//-- var, const, procedure ---------------------------------------------------
|
||||
#define WM_ShowYourSelf (Word)(1426)
|
||||
extern PACKAGE void __fastcall Register(void);
|
||||
|
||||
} /* namespace Activapp */
|
||||
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||
using namespace Activapp;
|
||||
#endif
|
||||
//-- end unit ----------------------------------------------------------------
|
||||
#endif // ActivApp
|
144
CDopping/ActvApp/ActivApp.pas
Normal file
144
CDopping/ActvApp/ActivApp.pas
Normal file
@ -0,0 +1,144 @@
|
||||
unit ActivApp;
|
||||
{ Allows switching between open delphi applications and/or lauching (any) application
|
||||
Note: App to Switch too must have TActivateApp component
|
||||
two Methods: 1) ActivateApp - Switch to open App, if App Closed Then Launch It
|
||||
2) ExecuteApp - Launch App
|
||||
one Event: 1) BeforeLaunchApp - Allows one to discontinue Lauching of app when
|
||||
ActivateApp senses app to switch to is not open, does not stop
|
||||
launching of app when execute method used.
|
||||
Properties: 1) MainFormTitle - Title On Main form of Application to Activate when
|
||||
using AppActivate Method only. IF An MDI Application then included the
|
||||
FULL title displayed on the titlebar of the main form
|
||||
2) ExePath - Full path to executable including Exe name and any parameters
|
||||
Used by both ActivateApp & Execute App
|
||||
Freeware Use & Abuse
|
||||
Author: Edward de la Rey
|
||||
edwardr@mailbox.ru.ac.za
|
||||
USE AT OWN RISK
|
||||
For Delphi 1,2,3 Will Automatically pickup the correct DCR File,
|
||||
D16 is for Delphi1, D32 for Delphi 2&3, Don't rename them.}
|
||||
|
||||
|
||||
interface
|
||||
|
||||
{$IFDEF WIN32}
|
||||
uses
|
||||
Windows, Messages, SysUtils, Classes, Forms;
|
||||
{$ELSE}
|
||||
uses
|
||||
SysUtils, WinTypes, WinProcs, Messages, Classes, Forms;
|
||||
{$ENDIF}
|
||||
|
||||
const
|
||||
WM_ShowYourSelf = WM_USER + 402;
|
||||
|
||||
type
|
||||
TMYParamEvent = Procedure (Sender:TObject;var Continue:Boolean) of object;
|
||||
TSuccess = Procedure (Sender:TObject;Result:Boolean) of object;
|
||||
TActivApp = class(Tcomponent)
|
||||
private
|
||||
GetAppToActivate:String;
|
||||
GetExePath:String;
|
||||
EBeforeLaunchApp:TMYParamEvent;
|
||||
Procedure SetAppToActivate(Value:String);
|
||||
Procedure SetExePath(Value:String);
|
||||
protected
|
||||
{ Protected declarations }
|
||||
procedure ShowYourSelf(var Msg: TMsg; var Handled: Boolean);
|
||||
public
|
||||
{ Public declarations }
|
||||
published
|
||||
Constructor Create(AOwner: TComponent); override;
|
||||
Procedure ActivateApp;
|
||||
Procedure ExecuteApp (Success:Boolean);
|
||||
Property MainFormTitle:String Read GetAppToActivate Write SetAppToActivate;
|
||||
Property ExePath:String Read GetExePath Write SetExePath;
|
||||
Property BeforeLaunchApp:TMYParamEvent Read EBeforeLaunchApp Write EBeforeLaunchApp;
|
||||
end;
|
||||
|
||||
procedure Register;
|
||||
|
||||
implementation
|
||||
|
||||
{$IFDEF WIN32}
|
||||
{$R *.D32}
|
||||
{$ELSE}
|
||||
{$R *.D16}
|
||||
{$ENDIF}
|
||||
|
||||
constructor TActivApp.Create(AOwner: TComponent);
|
||||
begin
|
||||
INHERITED CREATE(Aowner);
|
||||
GetAppToActivate:='MyOtherApp';
|
||||
GetExePath:=ExtractFilePath(application.ExeName);
|
||||
if not (csDesigning in ComponentState) then
|
||||
Application.OnMessage:=ShowYourSelf;
|
||||
End;
|
||||
|
||||
procedure TActivApp.ShowYourSelf(var Msg: TMsg; var Handled: Boolean);
|
||||
begin
|
||||
{This procedure handles messages sent from other Apps}
|
||||
Handled:=false;
|
||||
if msg.message = WM_ShowYourSelf then
|
||||
begin
|
||||
Application.Restore;
|
||||
application.BringToFront;
|
||||
Handled:=true;
|
||||
end;
|
||||
End;
|
||||
|
||||
Procedure TActivApp.ExecuteApp(Success:Boolean);
|
||||
Var
|
||||
It:PChar;
|
||||
Ans:integer;
|
||||
begin
|
||||
it:=Stralloc ((length(GetExePath))+2);
|
||||
strPCopy(It,GetExePath);
|
||||
Ans:=WinExec(It,SW_SHOW);
|
||||
strDispose(it);
|
||||
Success:= Ans > 31;
|
||||
end;
|
||||
|
||||
procedure TActivApp.ActivateApp;
|
||||
Var
|
||||
it,AppToActiv:PChar;
|
||||
MyHandle:HWnd;
|
||||
Success:Integer;
|
||||
Continue:Boolean;
|
||||
begin
|
||||
AppToActiv:=Stralloc ((length(GetAppToActivate))+2);
|
||||
strPCopy(AppToActiv,GetAppToActivate);
|
||||
MyHandle := FindWindow(nil,AppToActiv);
|
||||
strDispose(ApptoActiv);
|
||||
if MyHandle <> 0 then begin
|
||||
PostMessage(MyHandle,WM_ShowYourSelf,0,0); {Unminimize and bring to front}
|
||||
{nb Must use PostMessage Only}
|
||||
end {My Handle <> 0}
|
||||
else begin
|
||||
Continue:=true;
|
||||
If Assigned(EBeforeLaunchApp) Then EBeforeLaunchApp(Self,Continue);
|
||||
if Continue Then begin
|
||||
it:=Stralloc ((length(GetExePath))+2);
|
||||
strPCopy(It,GetExePath);
|
||||
Success:=WinExec(It,SW_SHOW);
|
||||
strDispose(it);
|
||||
end; {Continue}
|
||||
end;{Else MyHAndle = 0}
|
||||
end;
|
||||
|
||||
procedure TActivApp.SetAppToActivate (Value:String);
|
||||
begin
|
||||
GetAppToActivate:=Value;
|
||||
end;
|
||||
|
||||
procedure TActivApp.SetExePath (Value:String);
|
||||
begin
|
||||
GetExePath:=Value;
|
||||
end;
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
RegisterComponents('Freeware', [TActivApp]);
|
||||
end;
|
||||
|
||||
end.
|
BIN
CDopping/ActvApp/CloseApp.OBJ
Normal file
BIN
CDopping/ActvApp/CloseApp.OBJ
Normal file
Binary file not shown.
BIN
CDopping/ActvApp/CloseApp.dcu
Normal file
BIN
CDopping/ActvApp/CloseApp.dcu
Normal file
Binary file not shown.
26
CDopping/ActvApp/CloseApp.hpp
Normal file
26
CDopping/ActvApp/CloseApp.hpp
Normal file
@ -0,0 +1,26 @@
|
||||
// Borland C++ Builder
|
||||
// Copyright (c) 1995, 1998 by Borland International
|
||||
// All rights reserved
|
||||
|
||||
// (DO NOT EDIT: machine generated header) 'CloseApp.pas' rev: 3.00
|
||||
|
||||
#ifndef CloseAppHPP
|
||||
#define CloseAppHPP
|
||||
#include <Windows.hpp>
|
||||
#include <SysInit.hpp>
|
||||
#include <System.hpp>
|
||||
|
||||
//-- user supplied -----------------------------------------------------------
|
||||
|
||||
namespace Closeapp
|
||||
{
|
||||
//-- type declarations -------------------------------------------------------
|
||||
//-- var, const, procedure ---------------------------------------------------
|
||||
extern PACKAGE void __fastcall CloseAppFromInst(int HInst);
|
||||
|
||||
} /* namespace Closeapp */
|
||||
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||
using namespace Closeapp;
|
||||
#endif
|
||||
//-- end unit ----------------------------------------------------------------
|
||||
#endif // CloseApp
|
34
CDopping/ActvApp/CloseApp.pas
Normal file
34
CDopping/ActvApp/CloseApp.pas
Normal file
@ -0,0 +1,34 @@
|
||||
unit CloseApp;
|
||||
|
||||
{ By Duncan McNiven, duncan.mcniven@lecs.inet.fi }
|
||||
{ Comments by Brad Stowers, bstowers@pobox.com }
|
||||
|
||||
interface
|
||||
|
||||
uses WinTypes;
|
||||
|
||||
procedure CloseAppFromInst(HInst: THandle);
|
||||
|
||||
implementation
|
||||
|
||||
uses WinProcs, Messages;
|
||||
|
||||
{ Callback function that has each top-level window passed to it. }
|
||||
{ Return true to continue enumerating, false to stop. }
|
||||
function EnumWindowsProc(Handle: HWND; Info: Pointer): boolean; export;
|
||||
begin
|
||||
Result := TRUE; { continue enumeration }
|
||||
{ Does this app have the same instance as what we are looking for? }
|
||||
if GetWindowWord(Handle, GWL_HINSTANCE) = LongInt(Info) then begin
|
||||
PostMessage(Handle, WM_CLOSE, 0, 0); { Close the app }
|
||||
Result := FALSE; { stop enumerating windows, we are done. }
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure CloseAppFromInst(HInst: THandle);
|
||||
begin
|
||||
EnumWindows(@EnumWindowsProc, LongInt(HInst));
|
||||
end;
|
||||
|
||||
end.
|
||||
|
BIN
CDopping/CoolForm/Cool.res
Normal file
BIN
CDopping/CoolForm/Cool.res
Normal file
Binary file not shown.
BIN
CDopping/CoolForm/CoolButton.OBJ
Normal file
BIN
CDopping/CoolForm/CoolButton.OBJ
Normal file
Binary file not shown.
BIN
CDopping/CoolForm/CoolButton.dcu
Normal file
BIN
CDopping/CoolForm/CoolButton.dcu
Normal file
Binary file not shown.
123
CDopping/CoolForm/CoolButton.hpp
Normal file
123
CDopping/CoolForm/CoolButton.hpp
Normal file
@ -0,0 +1,123 @@
|
||||
// Borland C++ Builder
|
||||
// Copyright (c) 1995, 1998 by Borland International
|
||||
// All rights reserved
|
||||
|
||||
// (DO NOT EDIT: machine generated header) 'CoolButton.pas' rev: 3.00
|
||||
|
||||
#ifndef CoolButtonHPP
|
||||
#define CoolButtonHPP
|
||||
#include <Commctrl.hpp>
|
||||
#include <ExtCtrls.hpp>
|
||||
#include <StdCtrls.hpp>
|
||||
#include <Graphics.hpp>
|
||||
#include <Forms.hpp>
|
||||
#include <Controls.hpp>
|
||||
#include <Classes.hpp>
|
||||
#include <Messages.hpp>
|
||||
#include <Windows.hpp>
|
||||
#include <SysInit.hpp>
|
||||
#include <System.hpp>
|
||||
|
||||
//-- user supplied -----------------------------------------------------------
|
||||
|
||||
namespace Coolbutton
|
||||
{
|
||||
//-- type declarations -------------------------------------------------------
|
||||
enum TButtonLayout { blGlyphLeft, blGlyphRight, blGlyphTop, blGlyphBottom };
|
||||
|
||||
enum TButtonState { bsUp, bsDisabled, bsDown, bsExclusive };
|
||||
|
||||
enum TButtonStyle { bsAutoDetect, bsWin31, bsNew };
|
||||
|
||||
typedef Shortint TNumGlyphs;
|
||||
|
||||
class DELPHICLASS TCoolButton;
|
||||
class PASCALIMPLEMENTATION TCoolButton : public Controls::TGraphicControl
|
||||
{
|
||||
typedef Controls::TGraphicControl inherited;
|
||||
|
||||
private:
|
||||
int FGroupIndex;
|
||||
void *FGlyph;
|
||||
bool FDown;
|
||||
bool FDragging;
|
||||
bool FAllowAllUp;
|
||||
TButtonLayout FLayout;
|
||||
int FSpacing;
|
||||
int FMargin;
|
||||
bool FMouseInControl;
|
||||
void __fastcall GlyphChanged(System::TObject* Sender);
|
||||
void __fastcall UpdateExclusive(void);
|
||||
Graphics::TBitmap* __fastcall GetGlyph(void);
|
||||
void __fastcall SetGlyph(Graphics::TBitmap* Value);
|
||||
TNumGlyphs __fastcall GetNumGlyphs(void);
|
||||
void __fastcall SetNumGlyphs(TNumGlyphs Value);
|
||||
void __fastcall SetDown(bool Value);
|
||||
void __fastcall SetAllowAllUp(bool Value);
|
||||
void __fastcall SetGroupIndex(int Value);
|
||||
void __fastcall SetLayout(TButtonLayout Value);
|
||||
void __fastcall SetSpacing(int Value);
|
||||
void __fastcall SetMargin(int Value);
|
||||
void __fastcall UpdateTracking(void);
|
||||
HIDESBASE MESSAGE void __fastcall WMLButtonDblClk(Messages::TWMMouse &Message);
|
||||
HIDESBASE MESSAGE void __fastcall CMEnabledChanged(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall CMButtonPressed(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall CMDialogChar(Messages::TWMKey &Message);
|
||||
HIDESBASE MESSAGE void __fastcall CMFontChanged(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall CMTextChanged(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall CMSysColorChange(Messages::TMessage &Message);
|
||||
HIDESBASE MESSAGE void __fastcall CMMouseLeave(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall WMEraseBkgnd(Messages::TWMEraseBkgnd &message);
|
||||
HIDESBASE MESSAGE void __fastcall WMPaint(Messages::TWMPaint &message);
|
||||
MESSAGE void __fastcall WMNCPaint(Messages::TWMNoParams &message);
|
||||
|
||||
protected:
|
||||
TButtonState FState;
|
||||
DYNAMIC HPALETTE __fastcall GetPalette(void);
|
||||
virtual void __fastcall Loaded(void);
|
||||
DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X,
|
||||
int Y);
|
||||
DYNAMIC void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y);
|
||||
DYNAMIC void __fastcall MouseUp(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int
|
||||
Y);
|
||||
virtual void __fastcall Paint(void);
|
||||
|
||||
public:
|
||||
__fastcall virtual TCoolButton(Classes::TComponent* AOwner);
|
||||
__fastcall virtual ~TCoolButton(void);
|
||||
DYNAMIC void __fastcall Click(void);
|
||||
|
||||
__published:
|
||||
__property bool AllowAllUp = {read=FAllowAllUp, write=SetAllowAllUp, default=0};
|
||||
__property int GroupIndex = {read=FGroupIndex, write=SetGroupIndex, default=0};
|
||||
__property bool Down = {read=FDown, write=SetDown, default=0};
|
||||
__property Caption ;
|
||||
__property Enabled ;
|
||||
__property Font ;
|
||||
__property Graphics::TBitmap* Glyph = {read=GetGlyph, write=SetGlyph};
|
||||
__property TButtonLayout Layout = {read=FLayout, write=SetLayout, default=0};
|
||||
__property int Margin = {read=FMargin, write=SetMargin, default=-1};
|
||||
__property TNumGlyphs NumGlyphs = {read=GetNumGlyphs, write=SetNumGlyphs, default=4};
|
||||
__property ParentFont ;
|
||||
__property ParentShowHint ;
|
||||
__property ShowHint ;
|
||||
__property int Spacing = {read=FSpacing, write=SetSpacing, default=4};
|
||||
__property Visible ;
|
||||
__property OnClick ;
|
||||
__property OnDblClick ;
|
||||
__property OnMouseDown ;
|
||||
__property OnMouseMove ;
|
||||
__property OnMouseUp ;
|
||||
};
|
||||
|
||||
//-- var, const, procedure ---------------------------------------------------
|
||||
extern PACKAGE void __fastcall Register(void);
|
||||
extern PACKAGE Windows::TRect __fastcall DrawButtonFace(Graphics::TCanvas* Canvas, const Windows::TRect
|
||||
&Client, int BevelWidth, TButtonStyle Style, bool IsRounded, bool IsDown, bool IsFocused);
|
||||
|
||||
} /* namespace Coolbutton */
|
||||
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||
using namespace Coolbutton;
|
||||
#endif
|
||||
//-- end unit ----------------------------------------------------------------
|
||||
#endif // CoolButton
|
1133
CDopping/CoolForm/CoolButton.pas
Normal file
1133
CDopping/CoolForm/CoolButton.pas
Normal file
File diff suppressed because it is too large
Load Diff
BIN
CDopping/CoolForm/CoolForm.OBJ
Normal file
BIN
CDopping/CoolForm/CoolForm.OBJ
Normal file
Binary file not shown.
BIN
CDopping/CoolForm/CoolForm.dcu
Normal file
BIN
CDopping/CoolForm/CoolForm.dcu
Normal file
Binary file not shown.
96
CDopping/CoolForm/CoolForm.hpp
Normal file
96
CDopping/CoolForm/CoolForm.hpp
Normal file
@ -0,0 +1,96 @@
|
||||
// Borland C++ Builder
|
||||
// Copyright (c) 1995, 1998 by Borland International
|
||||
// All rights reserved
|
||||
|
||||
// (DO NOT EDIT: machine generated header) 'CoolForm.pas' rev: 3.00
|
||||
|
||||
#ifndef CoolFormHPP
|
||||
#define CoolFormHPP
|
||||
#include <DsgnIntf.hpp>
|
||||
#include <ExtCtrls.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
#include <Forms.hpp>
|
||||
#include <Controls.hpp>
|
||||
#include <Graphics.hpp>
|
||||
#include <Classes.hpp>
|
||||
#include <SysUtils.hpp>
|
||||
#include <Messages.hpp>
|
||||
#include <Windows.hpp>
|
||||
#include <SysInit.hpp>
|
||||
#include <System.hpp>
|
||||
|
||||
//-- user supplied -----------------------------------------------------------
|
||||
|
||||
namespace Coolform
|
||||
{
|
||||
//-- type declarations -------------------------------------------------------
|
||||
class DELPHICLASS TRegionType;
|
||||
class DELPHICLASS TCoolForm;
|
||||
class PASCALIMPLEMENTATION TCoolForm : public Extctrls::TImage
|
||||
{
|
||||
typedef Extctrls::TImage inherited;
|
||||
|
||||
private:
|
||||
TRegionType* Fregion;
|
||||
_RGNDATA *FOrgRgn;
|
||||
int FOrgSize;
|
||||
TRegionType* Dummy;
|
||||
bool FDraggable;
|
||||
HIDESBASE void __fastcall PictureChanged(System::TObject* Sender);
|
||||
void __fastcall ReadMask(Classes::TStream* Reader);
|
||||
void __fastcall WriteMask(Classes::TStream* Writer);
|
||||
DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X,
|
||||
int Y);
|
||||
virtual void __fastcall DefineProperties(Classes::TFiler* Filer);
|
||||
MESSAGE void __fastcall WMEraseBkgnd(Messages::TWMEraseBkgnd &Message);
|
||||
|
||||
protected:
|
||||
void __fastcall SetRegion(TRegionType* Value);
|
||||
virtual void __fastcall SetParent(Controls::TWinControl* Value);
|
||||
HIDESBASE virtual void __fastcall SetTop(int Value);
|
||||
HIDESBASE virtual void __fastcall SetLeft(int Value);
|
||||
HIDESBASE virtual void __fastcall Setwidth(int Value);
|
||||
HIDESBASE virtual void __fastcall SetHeight(int Value);
|
||||
TRegionType* __fastcall GetRegion(void);
|
||||
void __fastcall size(void);
|
||||
|
||||
public:
|
||||
__fastcall virtual TCoolForm(Classes::TComponent* Aowner);
|
||||
__fastcall virtual ~TCoolForm(void);
|
||||
__property TRegionType* Mask2 = {read=Dummy, write=Dummy};
|
||||
bool __fastcall LoadMaskFromFile(System::AnsiString FileName);
|
||||
void __fastcall RefreshRegion(void);
|
||||
|
||||
__published:
|
||||
__property TRegionType* Mask = {read=GetRegion, write=SetRegion};
|
||||
__property bool Draggable = {read=FDraggable, write=FDraggable, default=1};
|
||||
__property int top = {write=SetTop};
|
||||
__property int left = {write=SetLeft};
|
||||
__property int width = {write=Setwidth};
|
||||
__property int height = {write=SetHeight};
|
||||
};
|
||||
|
||||
class PASCALIMPLEMENTATION TRegionType : public Classes::TPersistent
|
||||
{
|
||||
typedef Classes::TPersistent inherited;
|
||||
|
||||
public:
|
||||
HRGN Fregion;
|
||||
TCoolForm* owner;
|
||||
public:
|
||||
/* TPersistent.Destroy */ __fastcall virtual ~TRegionType(void) { }
|
||||
|
||||
public:
|
||||
/* TObject.Create */ __fastcall TRegionType(void) : Classes::TPersistent() { }
|
||||
|
||||
};
|
||||
|
||||
//-- var, const, procedure ---------------------------------------------------
|
||||
extern PACKAGE void __fastcall Register(void);
|
||||
|
||||
} /* namespace Coolform */
|
||||
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||
using namespace Coolform;
|
||||
#endif
|
||||
//-- end unit ----------------------------------------------------------------
|
||||
#endif // CoolForm
|
314
CDopping/CoolForm/CoolForm.pas
Normal file
314
CDopping/CoolForm/CoolForm.pas
Normal file
@ -0,0 +1,314 @@
|
||||
unit CoolForm;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||||
ExtCtrls ,dsgnintf;
|
||||
|
||||
type
|
||||
TCoolForm = class;
|
||||
|
||||
TRegionType = class(TPersistent)
|
||||
public
|
||||
Fregion:hrgn;
|
||||
owner:TCoolForm;
|
||||
end;
|
||||
|
||||
TCoolForm = class(TImage)
|
||||
private
|
||||
Fregion : TRegionType;
|
||||
FOrgRgn : PRgnData;
|
||||
FOrgSize : Integer;
|
||||
// the dummy is necessary (or maybe not) as a public property for the writing of the
|
||||
// mask into a stream (btter leyve it as it is, never touch a running system)
|
||||
Dummy:TRegionType;
|
||||
FDraggable:boolean;
|
||||
procedure PictureChanged(Sender:TObject);
|
||||
procedure ReadMask(Reader: TStream);
|
||||
procedure WriteMask(Writer: TStream);
|
||||
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);override;
|
||||
procedure DefineProperties(Filer: TFiler);override;
|
||||
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
|
||||
protected
|
||||
procedure SetRegion(Value:TRegionType);
|
||||
procedure SetParent(Value:TWinControl); override;
|
||||
procedure SetTop(Value:integer); virtual;
|
||||
procedure SetLeft(Value:integer); virtual;
|
||||
procedure Setwidth(Value:integer); virtual;
|
||||
procedure SetHeight(Value:integer); virtual;
|
||||
function GetRegion:TRegionType;
|
||||
procedure size;
|
||||
public
|
||||
constructor Create(Aowner:TComponent); override;
|
||||
destructor Destroy; override;
|
||||
property Mask2:TRegionType read Dummy write Dummy;
|
||||
function LoadMaskFromFile (FileName: String): Boolean;
|
||||
procedure RefreshRegion;
|
||||
published
|
||||
property Mask:TRegionType read GetRegion write SetRegion;
|
||||
property Draggable:boolean read FDraggable write FDraggable default true;
|
||||
property top write settop;
|
||||
property left write setleft;
|
||||
property width write setwidth;
|
||||
property height write setheight;
|
||||
end;
|
||||
|
||||
procedure Register;
|
||||
|
||||
implementation
|
||||
uses
|
||||
MaskEditor;
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
RegisterComponents ('Cool!', [TCoolForm]);
|
||||
RegisterPropertyEditor (TypeInfo(TRegionType), TCoolForm, 'Mask', TCoolMaskEditor);
|
||||
end;
|
||||
|
||||
|
||||
// The next two procedures are there to ensure hat the component always sits in the top left edge of the window
|
||||
procedure TCoolForm.SetTop(Value:integer);
|
||||
begin
|
||||
inherited top := 0;
|
||||
end;
|
||||
|
||||
procedure TCoolForm.SetLeft(Value:integer);
|
||||
begin
|
||||
inherited left := 0;
|
||||
end;
|
||||
|
||||
procedure TCoolForm.RefreshRegion;
|
||||
begin
|
||||
FRegion.FRegion := ExtCreateRegion (nil, FOrgSize, FOrgRgn^);
|
||||
SetWindowRgn (parent.handle, FRegion.Fregion, true);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
destructor TCoolForm.destroy;
|
||||
begin
|
||||
If FOrgRgn <> Nil then
|
||||
FreeMem (FOrgRgn, FOrgSize);
|
||||
|
||||
if fregion.fregion <> 0 then deleteobject (fregion.fregion);
|
||||
Dummy.Free;
|
||||
FRegion.free;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
constructor TCoolForm.create(Aowner:TComponent);
|
||||
begin
|
||||
inherited;
|
||||
// make it occupy all of the form
|
||||
Align := alClient;
|
||||
Fregion := TRegionType.Create;
|
||||
Dummy := TRegionType.Create;
|
||||
Fregion.Fregion := 0;
|
||||
Fregion.owner := self;
|
||||
Picture.OnChange := PictureChanged;
|
||||
// if draggable is false, it will be overwritten later by delphi`s runtime component loader
|
||||
Draggable := true;
|
||||
end;
|
||||
|
||||
procedure TCoolForm.PictureChanged(Sender:TObject);
|
||||
begin
|
||||
if (parent <> nil) and (picture.bitmap <> nil) then
|
||||
begin
|
||||
// resize the form to fit the bitmap
|
||||
{ width:=picture.bitmap.Width;
|
||||
height:=picture.bitmap.height;
|
||||
parent.clientwidth:=picture.bitmap.Width;
|
||||
parent.clientheight:=picture.bitmap.height;
|
||||
} end;
|
||||
if Fregion.FRegion<>0 then
|
||||
begin
|
||||
// if somehow there`s a region already, delete it
|
||||
deleteObject (FRegion.FRegion);
|
||||
FRegion.Fregion := 0;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TCoolForm.GetRegion:TRegionType;
|
||||
begin
|
||||
result := FRegion;
|
||||
end;
|
||||
|
||||
procedure TCoolForm.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
begin
|
||||
// if dragging is on, start the dragging process
|
||||
If button = mbleft then
|
||||
begin
|
||||
releasecapture;
|
||||
TWincontrol (Parent).perform (WM_syscommand, $F012, 0);
|
||||
end;
|
||||
end;
|
||||
|
||||
// This is used by delphi`s component streaming system
|
||||
// it is called whenever delphi reads the componnt from the .dfm
|
||||
procedure TCoolForm.ReadMask(Reader: TStream);
|
||||
begin
|
||||
// read the size of the region data to come
|
||||
reader.read (FOrgSize, 4);
|
||||
if FOrgSize <> 0 then
|
||||
begin
|
||||
// if we have region data, allocate memory for it
|
||||
getmem (FOrgRgn, FOrgSize);
|
||||
// read the data
|
||||
reader.read (FOrgRgn^, FOrgSize);
|
||||
// create the region
|
||||
FRegion.FRegion := ExtCreateRegion (nil, FOrgSize, FOrgRgn^);
|
||||
if not (csDesigning in ComponentState) and (FRegion.FRegion <> 0) then
|
||||
SetWindowRgn (parent.handle, FRegion.Fregion, true);
|
||||
// dispose of the memory
|
||||
end else fregion.fregion := 0;
|
||||
end;
|
||||
|
||||
|
||||
// This is pretty much the same stuff as above. Only it`s written this time
|
||||
procedure TCoolForm.WriteMask(Writer: TStream);
|
||||
var
|
||||
size : integer;
|
||||
rgndata : pRGNData;
|
||||
|
||||
begin
|
||||
if (fregion.fregion<>0) then
|
||||
begin
|
||||
// get the region data`s size
|
||||
size:=getregiondata (FRegion.FRegion, 0, nil);
|
||||
getmem (rgndata,size);
|
||||
// get the data itself
|
||||
getregiondata (FRegion.FRegion, size, rgndata);
|
||||
// write it
|
||||
writer.write (size,sizeof (size));
|
||||
writer.write (rgndata^, size);
|
||||
freemem (rgndata, size);
|
||||
end else
|
||||
begin
|
||||
// if there`s no region yet (from the mask editor), then write a size of zero
|
||||
size := 0;
|
||||
writer.write (size, sizeof (size));
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
// This tells Delphi to read the public property `Mask 2` from the stream,
|
||||
// That`s what we need the dummy for.
|
||||
procedure TCoolForm.DefineProperties(Filer: TFiler);
|
||||
begin
|
||||
inherited DefineProperties(Filer);
|
||||
// tell Delphi which methods to call when reading the property data from the stream
|
||||
Filer.DefineBinaryProperty ('Mask2', ReadMask, WriteMask, true);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure TCoolForm.SetRegion(Value:TRegionType);
|
||||
begin
|
||||
if Value <> nil then
|
||||
begin
|
||||
FRegion := Value;
|
||||
// The owner is for the property editor to find the component
|
||||
FRegion.owner := self;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure TCoolForm.SetParent(Value:TWinControl);
|
||||
begin
|
||||
inherited;
|
||||
if Value <> nil then
|
||||
if not (Value is TWinControl) then
|
||||
begin
|
||||
raise Exception.Create ('Drop the CoolForm on a FORM!');
|
||||
end else
|
||||
with TWincontrol (Value) do
|
||||
begin
|
||||
if Value is TForm then TForm (Value).borderstyle := bsNone;
|
||||
end;
|
||||
top := 0;
|
||||
left := 0;
|
||||
end;
|
||||
|
||||
procedure TCoolForm.WMEraseBkgnd(var Message: TWMEraseBkgnd);
|
||||
begin
|
||||
message.Result := 1;
|
||||
end;
|
||||
|
||||
function TCoolForm.LoadMaskFromFile (FileName: String): Boolean;
|
||||
var
|
||||
reader : TFileStream;
|
||||
|
||||
begin
|
||||
// read the size of the region data to come
|
||||
|
||||
try
|
||||
reader := TFileStream.Create (FileName, fmOpenRead);
|
||||
reader.read (FOrgSize, 4);
|
||||
if FOrgSize <> 0 then
|
||||
begin
|
||||
If ForgRgn <> Nil then
|
||||
FreeMem (FOrgRgn, FOrgSize);
|
||||
// if we have region data, allocate memory for it
|
||||
getmem(FOrgRgn, FOrgSize);
|
||||
// read the data
|
||||
reader.read (FOrgRgn^, FOrgSize);
|
||||
// create the region
|
||||
FRegion.FRegion:=ExtCreateRegion(nil,FOrgSize,FOrgRgn^);
|
||||
// if runtime, set the region for the window... Tadaaa
|
||||
if not (csDesigning in ComponentState) and (FRegion.FRegion <> 0) then
|
||||
begin
|
||||
SetWindowRgn (parent.handle, FRegion.Fregion, true);
|
||||
end;
|
||||
// dispose of the memory
|
||||
end else fregion.fregion := 0;
|
||||
reader.free;
|
||||
Result := True;
|
||||
except
|
||||
Result := False;
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
procedure TCoolForm.size;
|
||||
var
|
||||
size : integer;
|
||||
rgndata : pRGNData;
|
||||
xf : TXform;
|
||||
|
||||
begin
|
||||
if (fregion.fregion<>0) then
|
||||
begin
|
||||
// get the region data`s size
|
||||
size := getregiondata (FRegion.FRegion, 0, nil);
|
||||
getmem (rgndata, size);
|
||||
// get the data itself
|
||||
getregiondata (FRegion.FRegion, size, rgndata);
|
||||
// write it
|
||||
|
||||
xf.eM11 := 1;//Width / Picture.Bitmap.Width;
|
||||
xf.eM12 := 0;
|
||||
xf.eM21 := 0;
|
||||
xf.eM22 := 1;//Height / Picture.Bitmap.Height;
|
||||
xf.eDx := 0;
|
||||
xf.eDy := 0;
|
||||
FRegion.FRegion := ExtCreateRegion (nil, size, rgndata^);
|
||||
|
||||
if not (csDesigning in ComponentState) and (FRegion.FRegion <> 0) then
|
||||
SetWindowRgn (parent.handle, FRegion.Fregion, true);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCoolForm.Setwidth(Value:integer);
|
||||
begin
|
||||
inherited Width := Value;
|
||||
// Size;
|
||||
end;
|
||||
|
||||
procedure TCoolForm.SetHeight(Value:integer);
|
||||
begin
|
||||
inherited Height := Value;
|
||||
// Size;
|
||||
end;
|
||||
|
||||
end.
|
BIN
CDopping/CoolForm/CoolForm.rar
Normal file
BIN
CDopping/CoolForm/CoolForm.rar
Normal file
Binary file not shown.
BIN
CDopping/CoolForm/MaskEditor.OBJ
Normal file
BIN
CDopping/CoolForm/MaskEditor.OBJ
Normal file
Binary file not shown.
BIN
CDopping/CoolForm/MaskEditor.dcu
Normal file
BIN
CDopping/CoolForm/MaskEditor.dcu
Normal file
Binary file not shown.
58
CDopping/CoolForm/MaskEditor.hpp
Normal file
58
CDopping/CoolForm/MaskEditor.hpp
Normal file
@ -0,0 +1,58 @@
|
||||
// Borland C++ Builder
|
||||
// Copyright (c) 1995, 1998 by Borland International
|
||||
// All rights reserved
|
||||
|
||||
// (DO NOT EDIT: machine generated header) 'MaskEditor.pas' rev: 3.00
|
||||
|
||||
#ifndef MaskEditorHPP
|
||||
#define MaskEditorHPP
|
||||
#include <DsgnIntf.hpp>
|
||||
#include <maskgenerator.hpp>
|
||||
#include <ExtCtrls.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
#include <Forms.hpp>
|
||||
#include <Controls.hpp>
|
||||
#include <Graphics.hpp>
|
||||
#include <Classes.hpp>
|
||||
#include <SysUtils.hpp>
|
||||
#include <Messages.hpp>
|
||||
#include <Windows.hpp>
|
||||
#include <SysInit.hpp>
|
||||
#include <System.hpp>
|
||||
|
||||
//-- user supplied -----------------------------------------------------------
|
||||
|
||||
namespace Maskeditor
|
||||
{
|
||||
//-- type declarations -------------------------------------------------------
|
||||
class DELPHICLASS TCoolMaskEditor;
|
||||
class PASCALIMPLEMENTATION TCoolMaskEditor : public Dsgnintf::TPropertyEditor
|
||||
{
|
||||
typedef Dsgnintf::TPropertyEditor inherited;
|
||||
|
||||
private:
|
||||
System::AnsiString FValue;
|
||||
|
||||
public:
|
||||
__fastcall virtual ~TCoolMaskEditor(void);
|
||||
virtual void __fastcall Edit(void);
|
||||
virtual Dsgnintf::TPropertyAttributes __fastcall GetAttributes(void);
|
||||
virtual System::AnsiString __fastcall getname();
|
||||
virtual System::AnsiString __fastcall getValue();
|
||||
|
||||
__published:
|
||||
__property System::AnsiString Value = {read=FValue, write=FValue};
|
||||
public:
|
||||
/* TObject.Create */ __fastcall TCoolMaskEditor(void) : Dsgnintf::TPropertyEditor() { }
|
||||
|
||||
};
|
||||
|
||||
//-- var, const, procedure ---------------------------------------------------
|
||||
extern PACKAGE bool FormCreated;
|
||||
|
||||
} /* namespace Maskeditor */
|
||||
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||
using namespace Maskeditor;
|
||||
#endif
|
||||
//-- end unit ----------------------------------------------------------------
|
||||
#endif // MaskEditor
|
90
CDopping/CoolForm/MaskEditor.pas
Normal file
90
CDopping/CoolForm/MaskEditor.pas
Normal file
@ -0,0 +1,90 @@
|
||||
unit MaskEditor;
|
||||
|
||||
interface
|
||||
uses
|
||||
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||||
ExtCtrls, maskgenerator, dsgnintf;
|
||||
|
||||
|
||||
type
|
||||
TCoolMaskEditor = class(TPropertyEditor)
|
||||
private
|
||||
FValue:string;
|
||||
public
|
||||
destructor destroy;override;
|
||||
procedure Edit;override;
|
||||
function GetAttributes: TPropertyAttributes;override;
|
||||
function getname:string; override;
|
||||
function getValue:string; override;
|
||||
published
|
||||
property Value:string read FValue write FValue;
|
||||
end;
|
||||
|
||||
var
|
||||
FormCreated:boolean=false;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
CoolForm;
|
||||
|
||||
function TCoolMaskEditor.getname:string;
|
||||
begin
|
||||
result:='Mask';
|
||||
end;
|
||||
|
||||
|
||||
function TCoolMaskEditor.getValue:string;
|
||||
begin
|
||||
result:='Mask';
|
||||
end;
|
||||
|
||||
|
||||
|
||||
destructor TCoolMaskEditor.Destroy;
|
||||
begin
|
||||
if Formmaskgenerator<>nil then
|
||||
begin
|
||||
FormMaskGenerator.Free;
|
||||
FormMaskGenerator:=nil;
|
||||
FormCreated:=false;
|
||||
end;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
function TCoolMaskEditor.GetAttributes: TPropertyAttributes;
|
||||
begin
|
||||
// Make Delphi display the (...) button in the objectinspector
|
||||
Result := [paDialog];
|
||||
end;
|
||||
|
||||
|
||||
procedure TCoolMaskEditor.Edit;
|
||||
//******************* Unknown *************************
|
||||
begin
|
||||
// Create the maskeditorform if it doesn`t exist yet
|
||||
if not assigned(FormMaskGenerator) then
|
||||
begin
|
||||
formMaskGenerator:=TFormMaskGenerator.Create(nil);
|
||||
formMaskGenerator.OriginalRegionData:=nil;
|
||||
formMaskGenerator.SaveOriginalRegionData;
|
||||
FormCreated:=true;
|
||||
end;
|
||||
with formMaskGenerator do
|
||||
begin
|
||||
// Set the existing mask in the editor
|
||||
formMaskGenerator.Rgn1:=hrgn(TRegionType(GetOrdValue).Fregion);
|
||||
// copy the bitmap into the editor
|
||||
Image1.picture.bitmap.Assign(TRegionType(GetOrdValue).owner.picture.bitmap);
|
||||
opendialog1.filename:='';
|
||||
Showmodal;
|
||||
// get the new region from the editor
|
||||
hrgn(TRegionType(GetOrdValue).Fregion):=formMaskGenerator.Rgn1;
|
||||
// note: the editorform must not be freed here
|
||||
// if done, delphi eats lines of the sourcecode of the form in which coolform is used
|
||||
// (every line where a visible component is defined) ... rather strange
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
133
CDopping/CoolForm/ReadMe.txt
Normal file
133
CDopping/CoolForm/ReadMe.txt
Normal file
@ -0,0 +1,133 @@
|
||||
CoolForm 1.5 component for Delphi 3 AND 4
|
||||
|
||||
|
||||
IMPORTANT
|
||||
|
||||
You can download new versions directly at http://www.lawrenz.com/coolform/
|
||||
|
||||
VERY IMPORTANT!!!!!!!!!!!!
|
||||
As we haven't received ANY beer yet, we would strongly advise you to get in gear and send some brew. Or else!
|
||||
|
||||
|
||||
|
||||
|
||||
New Features:
|
||||
|
||||
15.9.1998
|
||||
Coolform1.5 compatible with Delphi 4
|
||||
Included unit ExtMaskgenerator (see below)
|
||||
Fixed several bugs
|
||||
had to buy some beer
|
||||
14.9.1998
|
||||
got very thirsty
|
||||
13.9.1998
|
||||
got thirsty
|
||||
3.5.1998
|
||||
Added loading of masks at runtime.
|
||||
Added 0.9 to the version number.
|
||||
(That's what most of you've been asking for, ain't it?)
|
||||
2.5.1998
|
||||
Fixed the IDE Hangups when black is selected as transparent color
|
||||
Replaced the OpenDialog with OpenPictureDialog
|
||||
(Thanks, Garth!)
|
||||
1.3.1998
|
||||
CoolButton included
|
||||
25.2.1998
|
||||
Fixed the Access Violation Problem
|
||||
Fixed the 'Canvas does not allow drawing' Problem
|
||||
Improved the performance of the mask generator
|
||||
|
||||
|
||||
|
||||
Authors:
|
||||
|
||||
Tim Lawrenz
|
||||
tim@lawrenz.com
|
||||
|
||||
Max Muermann
|
||||
muermann@stud.uni-frankfurt.de
|
||||
|
||||
|
||||
Legal Notice:
|
||||
|
||||
This component is BeerWare for personal use. No responsibilities taken whatsoever.
|
||||
BeerWare means:
|
||||
|
||||
1) If you want to use this component for commercial use or
|
||||
2) if you want to use this component for personal use and think that this
|
||||
component is worth to do it,
|
||||
|
||||
you have to send us 20 bottles of beer (or the money for it) (or for german developers:
|
||||
'nen Kasten Bier).
|
||||
|
||||
|
||||
Installation:
|
||||
|
||||
From the Delphi IDE, choose Components/install packages from the menu, Select
|
||||
'Add' (or something like that, only german version available here). Find Component\Cool.dpl,
|
||||
Click OK. There should be a new tab in the component palette named 'Cool'.
|
||||
|
||||
Usage:
|
||||
|
||||
ExtMaskgenerator
|
||||
|
||||
The unit ExtMaskGenerator.pas contains one function: ExtGenerateMask(TBitmap, TColor, String);
|
||||
You call the function with the bitmap you want to use as the mask, the color that will be transparent
|
||||
and the filename where you want to store the mask data. You can then load the mask into a TCoolForm
|
||||
with LoadMaskFromFile.
|
||||
See XDollDemo.zip for some source and a nice picture.
|
||||
|
||||
CoolForm 1.5
|
||||
|
||||
Just drop the CoolForm component directly on a Form.
|
||||
Load a bitmap, just like with any TImage component.
|
||||
Double-click the Mask property. (the cool-looking mask editor appears)
|
||||
You can use the image you just loaded as a source for the mask, or you can load an
|
||||
external bmp to use as mask source.
|
||||
Clicking anywhere on the image selects the transparent color. This color is
|
||||
shown in the upper right corner of the window.
|
||||
The Ok-Button (checkmark) starts the mask generation (takes some time, no optimizations yet),
|
||||
but you'll have to do it only once.
|
||||
Compile and start your program and marvel at the wonders to behold.
|
||||
If you want your form to be draggable, set the Draggable property to true, otherwise don't.
|
||||
You can place any standard delphi component on the CoolForm, just bear in mind that components
|
||||
outside the masked area don't show. We suggest using BitButtons with Flat set to true.
|
||||
Look at the demo.
|
||||
|
||||
|
||||
Runtime loading: In the maskeditor, hit the 'save mask' AFTER having created a mask (you'll have
|
||||
to bring up the maskeditor twice, sorry).
|
||||
In your application, call CoolForm1.LoadMaskFromFile (FileName); It will return true if successfull,
|
||||
false if not.
|
||||
|
||||
CoolButton 1.3
|
||||
|
||||
The TCoolButton component is a button derived from a standard delphi SpeedButton - only cooler.
|
||||
The glyph *HAS* to contain four (4) equally sized bitmaps, of which the first describes the
|
||||
button in normal state, the second is the disabled button, the third one contains the image
|
||||
if the pressed button, the fourth one is displayed when the mouse cursor is over the button.
|
||||
We're drunk, so don't blame us.
|
||||
Oh, man, it's just a simple button! What do you want to know about it?
|
||||
|
||||
|
||||
|
||||
|
||||
Future enhancements:
|
||||
|
||||
If we don't receive some beer soon, there will be no more enhancements. Thats it.
|
||||
|
||||
Bugreports:
|
||||
|
||||
Please report any bugs you should encounter with a detailed
|
||||
description (or even some source code) to any of the abovementioned EMail-addresses
|
||||
|
||||
MailingList:
|
||||
|
||||
Visit the Coolform Homepage for instructions on how to get on the mailinglist (we don't quite remember now).
|
||||
|
||||
|
||||
|
||||
Have fun.
|
||||
|
||||
|
||||
|
BIN
CDopping/CoolForm/TrMemo.dcu
Normal file
BIN
CDopping/CoolForm/TrMemo.dcu
Normal file
Binary file not shown.
100
CDopping/CoolForm/TrMemo.pas
Normal file
100
CDopping/CoolForm/TrMemo.pas
Normal file
@ -0,0 +1,100 @@
|
||||
unit TrMemo;
|
||||
{$R-}
|
||||
interface
|
||||
uses Messages, Controls, StdCtrls,classes;
|
||||
const TMWM__SpecialInvalidate=WM_USER+1111;
|
||||
type
|
||||
TTransparentMemo = class(TMemo)
|
||||
private
|
||||
procedure SpecialInvalidate(var Message:TMessage); message
|
||||
TMWM__SpecialInvalidate;
|
||||
procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
|
||||
procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
|
||||
procedure WMSetText(var Message:TWMSetText); message WM_SETTEXT;
|
||||
procedure CNCTLCOLOREDIT(var Message:TWMCTLCOLOREDIT); message
|
||||
CN_CTLCOLOREDIT;
|
||||
procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;
|
||||
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
|
||||
protected
|
||||
procedure CreateParams(var Params: TCreateParams); override;
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
end;
|
||||
procedure Register;
|
||||
implementation
|
||||
uses Windows;
|
||||
{ TTransparentMemo }
|
||||
procedure TTransparentMemo.WMHScroll(var Message: TWMHScroll);
|
||||
begin
|
||||
inherited;
|
||||
PostMessage(Handle,TMWM__SpecialInvalidate,0,0);
|
||||
end;
|
||||
procedure TTransparentMemo.WMVScroll(var Message: TWMVScroll);
|
||||
begin
|
||||
SendMessage(Handle,TMWM__SpecialInvalidate,0,0);
|
||||
inherited;
|
||||
PostMessage(Handle,TMWM__SpecialInvalidate,0,0);
|
||||
end;
|
||||
procedure TTransparentMemo.CNCTLCOLOREDIT(var Message:TWMCTLCOLOREDIT);
|
||||
begin
|
||||
with Message do
|
||||
begin
|
||||
SetBkMode(ChildDC,TRANSPARENT);
|
||||
Result:=GetStockObject(HOLLOW_BRUSH)
|
||||
end
|
||||
end;
|
||||
procedure TTransparentMemo.WMSetText(var Message:TWMSetText);
|
||||
begin
|
||||
inherited;
|
||||
if not (csDesigning in ComponentState) then
|
||||
PostMessage(Handle,TMWM__SpecialInvalidate,0,0)
|
||||
end;
|
||||
procedure TTransparentMemo.SpecialInvalidate(var Message:TMessage);
|
||||
var r:TRect;
|
||||
begin
|
||||
if Parent<>nil then
|
||||
begin
|
||||
r:=ClientRect;
|
||||
r.TopLeft:=Parent.ScreenToClient(ClientToScreen(r.TopLeft));
|
||||
r.BottomRight:=Parent.ScreenToClient(ClientToScreen(r.BottomRight));
|
||||
InvalidateRect(Parent.Handle,@r,true);
|
||||
RedrawWindow(Handle,nil,0,RDW_FRAME+RDW_INVALIDATE)
|
||||
end;
|
||||
end;
|
||||
procedure TTransparentMemo.WMKeyDown(var Message: TWMKeyDown);
|
||||
begin
|
||||
SendMessage(Handle,TMWM__SpecialInvalidate,0,0);
|
||||
inherited;
|
||||
PostMessage(Handle,TMWM__SpecialInvalidate,0,0);
|
||||
end;
|
||||
procedure TTransparentMemo.WMEraseBkgnd(var Message: TWMEraseBkgnd);
|
||||
begin
|
||||
Message.Result:=1
|
||||
end;
|
||||
|
||||
constructor TTransparentMemo.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited;
|
||||
ControlStyle:=[csCaptureMouse, csDesignInteractive,
|
||||
csClickEvents, csSetCaption, csOpaque, csDoubleClicks,
|
||||
csReplicatable, csNoStdEvents];
|
||||
end;
|
||||
|
||||
procedure TTransparentMemo.CreateParams(var Params: TCreateParams);
|
||||
begin
|
||||
inherited CreateParams(Params);
|
||||
with Params do
|
||||
begin
|
||||
ExStyle:=ExStyle or WS_EX_TRANSPARENT and not WS_EX_WINDOWEDGE
|
||||
and not WS_EX_STATICEDGE and not WS_EX_DLGMODALFRAME and not
|
||||
WS_EX_CLIENTEDGE;
|
||||
end;
|
||||
end;
|
||||
procedure Register;
|
||||
begin
|
||||
RegisterComponents('cool!', [tTransparentMemo]);
|
||||
end;
|
||||
end.
|
||||
|
||||
|
||||
|
BIN
CDopping/CoolForm/cool.dcp
Normal file
BIN
CDopping/CoolForm/cool.dcp
Normal file
Binary file not shown.
BIN
CDopping/CoolForm/cool.dcu
Normal file
BIN
CDopping/CoolForm/cool.dcu
Normal file
Binary file not shown.
37
CDopping/CoolForm/cool.dpk
Normal file
37
CDopping/CoolForm/cool.dpk
Normal file
@ -0,0 +1,37 @@
|
||||
package cool;
|
||||
|
||||
{$R *.RES}
|
||||
{$ALIGN ON}
|
||||
{$ASSERTIONS OFF}
|
||||
{$BOOLEVAL OFF}
|
||||
{$DEBUGINFO OFF}
|
||||
{$EXTENDEDSYNTAX ON}
|
||||
{$IMPORTEDDATA ON}
|
||||
{$IOCHECKS ON}
|
||||
{$LOCALSYMBOLS OFF}
|
||||
{$LONGSTRINGS ON}
|
||||
{$OPENSTRINGS ON}
|
||||
{$OPTIMIZATION ON}
|
||||
{$OVERFLOWCHECKS OFF}
|
||||
{$RANGECHECKS OFF}
|
||||
{$REFERENCEINFO OFF}
|
||||
{$SAFEDIVIDE OFF}
|
||||
{$STACKFRAMES OFF}
|
||||
{$TYPEDADDRESS OFF}
|
||||
{$VARSTRINGCHECKS ON}
|
||||
{$WRITEABLECONST ON}
|
||||
{$MINENUMSIZE 1}
|
||||
{$IMAGEBASE $00400000}
|
||||
{$IMPLICITBUILD ON}
|
||||
|
||||
requires
|
||||
vcl30;
|
||||
|
||||
contains
|
||||
CoolButton,
|
||||
CoolForm,
|
||||
MaskEditor,
|
||||
maskgenerator,
|
||||
TrMemo;
|
||||
|
||||
end.
|
BIN
CDopping/CoolForm/cool.dpl
Normal file
BIN
CDopping/CoolForm/cool.dpl
Normal file
Binary file not shown.
BIN
CDopping/CoolForm/maskgenerator.OBJ
Normal file
BIN
CDopping/CoolForm/maskgenerator.OBJ
Normal file
Binary file not shown.
BIN
CDopping/CoolForm/maskgenerator.dcu
Normal file
BIN
CDopping/CoolForm/maskgenerator.dcu
Normal file
Binary file not shown.
BIN
CDopping/CoolForm/maskgenerator.dfm
Normal file
BIN
CDopping/CoolForm/maskgenerator.dfm
Normal file
Binary file not shown.
88
CDopping/CoolForm/maskgenerator.hpp
Normal file
88
CDopping/CoolForm/maskgenerator.hpp
Normal file
@ -0,0 +1,88 @@
|
||||
// Borland C++ Builder
|
||||
// Copyright (c) 1995, 1998 by Borland International
|
||||
// All rights reserved
|
||||
|
||||
// (DO NOT EDIT: machine generated header) 'maskgenerator.pas' rev: 3.00
|
||||
|
||||
#ifndef maskgeneratorHPP
|
||||
#define maskgeneratorHPP
|
||||
#include <ExtDlgs.hpp>
|
||||
#include <CoolForm.hpp>
|
||||
#include <ExtCtrls.hpp>
|
||||
#include <Buttons.hpp>
|
||||
#include <ComCtrls.hpp>
|
||||
#include <StdCtrls.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
#include <Forms.hpp>
|
||||
#include <Controls.hpp>
|
||||
#include <Graphics.hpp>
|
||||
#include <Classes.hpp>
|
||||
#include <SysUtils.hpp>
|
||||
#include <Messages.hpp>
|
||||
#include <Windows.hpp>
|
||||
#include <SysInit.hpp>
|
||||
#include <System.hpp>
|
||||
|
||||
//-- user supplied -----------------------------------------------------------
|
||||
|
||||
namespace Maskgenerator
|
||||
{
|
||||
//-- type declarations -------------------------------------------------------
|
||||
class DELPHICLASS TFormMaskGenerator;
|
||||
class PASCALIMPLEMENTATION TFormMaskGenerator : public Forms::TForm
|
||||
{
|
||||
typedef Forms::TForm inherited;
|
||||
|
||||
__published:
|
||||
Buttons::TSpeedButton* SpeedButton1;
|
||||
Buttons::TSpeedButton* SpeedButton2;
|
||||
Buttons::TSpeedButton* SpeedButton3;
|
||||
Extctrls::TPanel* Panel1;
|
||||
Coolform::TCoolForm* CoolForm1;
|
||||
Extctrls::TImage* Image1;
|
||||
Extdlgs::TOpenPictureDialog* OpenDialog1;
|
||||
Buttons::TSpeedButton* SpeedButton4;
|
||||
Dialogs::TSaveDialog* SaveDialog1;
|
||||
void __fastcall SpeedButton1Click(System::TObject* Sender);
|
||||
void __fastcall SpeedButton2Click(System::TObject* Sender);
|
||||
void __fastcall SpeedButton3Click(System::TObject* Sender);
|
||||
void __fastcall Image1MouseMove(System::TObject* Sender, Classes::TShiftState Shift, int X, int Y);
|
||||
|
||||
void __fastcall Image1MouseDown(System::TObject* Sender, Controls::TMouseButton Button, Classes::TShiftState
|
||||
Shift, int X, int Y);
|
||||
void __fastcall BitMapChange(System::TObject* Sender);
|
||||
void __fastcall FormCreate(System::TObject* Sender);
|
||||
void __fastcall SpeedButton4Click(System::TObject* Sender);
|
||||
|
||||
private:
|
||||
int oldleft;
|
||||
int oldtop;
|
||||
bool generating;
|
||||
|
||||
public:
|
||||
int OriginalRegionSize;
|
||||
_RGNDATA *OriginalRegiondata;
|
||||
HRGN rgn1;
|
||||
void __fastcall SaveOriginalRegionData(void);
|
||||
__fastcall virtual ~TFormMaskGenerator(void);
|
||||
public:
|
||||
/* TCustomForm.Create */ __fastcall virtual TFormMaskGenerator(Classes::TComponent* AOwner) : Forms::
|
||||
TForm(AOwner) { }
|
||||
/* TCustomForm.CreateNew */ __fastcall TFormMaskGenerator(Classes::TComponent* AOwner, int Dummy) :
|
||||
Forms::TForm(AOwner, Dummy) { }
|
||||
|
||||
public:
|
||||
/* TWinControl.CreateParented */ __fastcall TFormMaskGenerator(HWND ParentWindow) : Forms::TForm(ParentWindow
|
||||
) { }
|
||||
|
||||
};
|
||||
|
||||
//-- var, const, procedure ---------------------------------------------------
|
||||
extern PACKAGE TFormMaskGenerator* FormMaskGenerator;
|
||||
|
||||
} /* namespace Maskgenerator */
|
||||
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||
using namespace Maskgenerator;
|
||||
#endif
|
||||
//-- end unit ----------------------------------------------------------------
|
||||
#endif // maskgenerator
|
261
CDopping/CoolForm/maskgenerator.pas
Normal file
261
CDopping/CoolForm/maskgenerator.pas
Normal file
@ -0,0 +1,261 @@
|
||||
unit maskgenerator;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||||
StdCtrls, ComCtrls, Buttons, ExtCtrls, CoolForm, ExtDlgs;
|
||||
|
||||
type
|
||||
TFormMaskGenerator = class(TForm)
|
||||
SpeedButton1: TSpeedButton;
|
||||
SpeedButton2: TSpeedButton;
|
||||
SpeedButton3: TSpeedButton;
|
||||
Panel1: TPanel;
|
||||
CoolForm1: TCoolForm;
|
||||
Image1: TImage;
|
||||
OpenDialog1: TOpenPictureDialog;
|
||||
SpeedButton4: TSpeedButton;
|
||||
SaveDialog1: TSaveDialog;
|
||||
procedure SpeedButton1Click(Sender: TObject);
|
||||
procedure SpeedButton2Click(Sender: TObject);
|
||||
procedure SpeedButton3Click(Sender: TObject);
|
||||
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
|
||||
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
|
||||
procedure BitMapChange(Sender:TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure SpeedButton4Click(Sender: TObject);
|
||||
private
|
||||
oldleft,oldtop:integer;
|
||||
generating:boolean;
|
||||
public
|
||||
OriginalRegionSize:integer;
|
||||
OriginalRegiondata:pRGNData;
|
||||
rgn1:hrgn;
|
||||
procedure SaveOriginalRegionData;
|
||||
destructor destroy; override;
|
||||
end;
|
||||
|
||||
var
|
||||
FormMaskGenerator: TFormMaskGenerator;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.DFM}
|
||||
|
||||
procedure TFormMaskGenerator.SpeedButton1Click(Sender: TObject);
|
||||
begin
|
||||
if Opendialog1.Execute then image1.Picture.bitmap.LoadFromFile(opendialog1.filename);
|
||||
end;
|
||||
|
||||
|
||||
// This method is necessary to react to changes in the size of the bitmap
|
||||
procedure TFormMaskGenerator.BitMapChange(Sender:TObject);
|
||||
var
|
||||
tr2,temprgn:hrgn;
|
||||
x:pxform;
|
||||
begin
|
||||
if not generating then
|
||||
begin
|
||||
// This is the transformation matrix to be used in the region generating process
|
||||
// will be used in future releases
|
||||
x:=new(pxform);
|
||||
x.eM11:=1;
|
||||
x.eM12:=0;
|
||||
x.eM21:=0;
|
||||
x.eM22:=1;
|
||||
x.eDx:=-oldleft;
|
||||
x.eDy:=-oldtop;
|
||||
|
||||
// the original region is created (the generator form only)
|
||||
temprgn:=ExtCreateRegion(x,originalRegionSize,OriginalRegionData^);
|
||||
image1.width:=image1.picture.bitmap.width;
|
||||
image1.height:=image1.picture.bitmap.height;
|
||||
clientwidth:=image1.Left+image1.Width;
|
||||
clientHeight:=image1.Top+image1.Height;
|
||||
if clientwidth<=150 then ClientWidth:=150;
|
||||
if clientHeight<=150 then ClientHeight:=150;
|
||||
|
||||
// a region for the bitmap is created
|
||||
tr2:=CreateRectRgn(image1.left,image1.top,image1.left+image1.width,image1.top+image1.height);
|
||||
// the two regions are combined
|
||||
CombineRgn(temprgn,temprgn,tr2,RGN_OR);
|
||||
// set the new region
|
||||
DeleteObject(CoolForm1.Mask.fregion);
|
||||
CoolForm1.Mask.Fregion:=tempRgn;
|
||||
SetWindowRgn(handle,temprgn,true);
|
||||
// clean up
|
||||
DeleteObject(tr2);
|
||||
image1.repaint;
|
||||
dispose(x);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
// this method is called by the Propertyeditor to backup the maskgenerator`s mask generated at design-time
|
||||
procedure TFormMaskGenerator.SaveOriginalRegionData;
|
||||
begin
|
||||
// clean up
|
||||
if OriginalRegionData<>nil then
|
||||
begin
|
||||
freemem(OriginalRegionData);
|
||||
OriginalRegionData:=nil;
|
||||
end;
|
||||
// save original mask information
|
||||
oldleft:=left;
|
||||
oldtop:=top;
|
||||
OriginalRegionsize:=GetRegionData(CoolForm1.Mask.Fregion,0,nil);
|
||||
getmem(OriginalRegionData,OriginalRegionsize);
|
||||
getregiondata(CoolForm1.Mask.FRegion,OriginalRegionsize,OriginalRegiondata);
|
||||
end;
|
||||
|
||||
destructor TFormMaskGenerator.destroy;
|
||||
begin
|
||||
// clean up
|
||||
if OriginalRegionData<>nil then
|
||||
begin
|
||||
freemem(originalregiondata);
|
||||
end;
|
||||
OriginalRegionData:=nil;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormMaskGenerator.SpeedButton2Click(Sender: TObject);
|
||||
begin
|
||||
close;
|
||||
end;
|
||||
|
||||
// This is called when the User clicks the OK Button
|
||||
procedure TFormMaskGenerator.SpeedButton3Click(Sender: TObject);
|
||||
var
|
||||
// stream : TFileStream;
|
||||
size : integer;
|
||||
// rgndata : pRGNData;
|
||||
x,y : integer;
|
||||
transparentcolor : tcolor;
|
||||
rgn2 : hrgn;
|
||||
startx,endx : integer;
|
||||
R : TRect;
|
||||
|
||||
begin
|
||||
if Panel1.Color = clNone then
|
||||
Begin
|
||||
ShowMessage('You must select the colour to be masked out.'#13+
|
||||
'Click on the mask colour in the bitmap. '#13 +
|
||||
'(It will appear in the square to the right of the load button).');
|
||||
Exit;
|
||||
End;
|
||||
generating:=true;
|
||||
// clean up
|
||||
if rgn1<>0 then deleteObject(rgn1);
|
||||
rgn1 := 0;
|
||||
// set the transparent color
|
||||
transparentcolor:=Panel1.color;
|
||||
// if necessary, load another mask (don`t know why again... should be redundant)
|
||||
if opendialog1.filename<>'' then image1.picture.bitmap.loadfromfile(opendialog1.filename);
|
||||
|
||||
// for every line do...
|
||||
for y := 0 to image1.Picture.Height-1 do
|
||||
begin
|
||||
// don`t look as if we were locked up
|
||||
Application.ProcessMessages;
|
||||
x:=0;
|
||||
endx:=x;
|
||||
// no flicker
|
||||
lockWindowUpdate(FormMaskGenerator.handle);
|
||||
repeat
|
||||
// look for the beginning of a stretch of non-transparent pixels
|
||||
while (image1.picture.bitmap.canvas.pixels[x,y]=transparentcolor) and (x<=image1.picture.width) do
|
||||
inc(x);
|
||||
startx:=x;
|
||||
// paint the pixels up to here black
|
||||
for size:=endx to startx do image1.picture.bitmap.canvas.pixels[size,y]:=image1.picture.bitmap.canvas.pixels[size,y] xor $FFFFFF;
|
||||
// look for the end of a stretch of non-transparent pixels
|
||||
inc(x);
|
||||
while (image1.picture.bitmap.canvas.pixels[x,y]<>transparentcolor) and (x<=image1.picture.width) do
|
||||
inc(x);
|
||||
endx:=x;
|
||||
// do we have some pixels?
|
||||
if startx<>image1.Picture.Width then
|
||||
begin
|
||||
if endx= image1.Picture.Width then dec(endx);
|
||||
// do we have a region already?
|
||||
if rgn1 = 0 then
|
||||
begin
|
||||
// Create a region to start with
|
||||
rgn1:=createrectrgn(startx+1,y,endx,y+1);
|
||||
end else
|
||||
begin
|
||||
// Add to the existing region
|
||||
rgn2:=createrectrgn(startx+1,y,endx,y+1);
|
||||
if rgn2<>0 then combinergn(rgn1,rgn1,rgn2,RGN_OR);
|
||||
deleteobject(rgn2);
|
||||
end;
|
||||
// Paint the pixels white
|
||||
for size:=startx to endx do image1.picture.bitmap.canvas.pixels[size,y]:=image1.picture.bitmap.canvas.pixels[size,y] xor $FFFFFF;
|
||||
end;
|
||||
until x>=image1.picture.width-1;
|
||||
// flicker on
|
||||
lockwindowUpdate(0);
|
||||
// tell windows to repaint only the line of the bitmap we just processed
|
||||
R.top:=image1.top+y;
|
||||
r.Bottom:=image1.top+y+1;
|
||||
r.left:=image1.left;
|
||||
r.right:=image1.left+image1.Width;
|
||||
invalidaterect(formmaskgenerator.handle,@R,false);
|
||||
formmaskgenerator.Update;
|
||||
end;
|
||||
generating:=false;
|
||||
close;
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormMaskGenerator.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
|
||||
begin
|
||||
if ssLeft in Shift then
|
||||
begin
|
||||
panel1.color:=image1.picture.bitmap.canvas.pixels[x,y];
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormMaskGenerator.Image1MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
|
||||
begin
|
||||
panel1.color:=image1.picture.bitmap.canvas.pixels[x,y];
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormMaskGenerator.FormCreate(Sender: TObject);
|
||||
begin
|
||||
image1.picture.OnChange:=BitMapChange;
|
||||
end;
|
||||
|
||||
procedure TFormMaskGenerator.SpeedButton4Click(Sender: TObject);
|
||||
var
|
||||
size : integer;
|
||||
rgndata : pRGNData;
|
||||
writer : TFileStream;
|
||||
|
||||
begin
|
||||
If SaveDialog1.Execute then
|
||||
begin
|
||||
if (rgn1<>0) then
|
||||
begin
|
||||
writer :=TFileStream.Create (SaveDialog1.Filename, fmCreate);
|
||||
// get the region data`s size
|
||||
size:=getregiondata (rgn1, 0, nil);
|
||||
getmem (rgndata, size);
|
||||
// get the data itself
|
||||
getregiondata(rgn1, size, rgndata);
|
||||
// write it
|
||||
writer.write (size, sizeof(size));
|
||||
writer.write (rgndata^, size);
|
||||
freemem(rgndata, size);
|
||||
writer.Free;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
BIN
CDopping/DialUp/DIALUP.DCR
Normal file
BIN
CDopping/DialUp/DIALUP.DCR
Normal file
Binary file not shown.
BIN
CDopping/DialUp/DIALUP.DCU
Normal file
BIN
CDopping/DialUp/DIALUP.DCU
Normal file
Binary file not shown.
951
CDopping/DialUp/DialUp.h
Normal file
951
CDopping/DialUp/DialUp.h
Normal file
@ -0,0 +1,951 @@
|
||||
// Borland C++ Builder
|
||||
// Copyright (c) 1995, 1998 by Borland International
|
||||
// All rights reserved
|
||||
|
||||
// (DO NOT EDIT: machine generated header) 'DialUp.pas' rev: 3.00
|
||||
|
||||
#ifndef DialUpHPP
|
||||
#define DialUpHPP
|
||||
#include <Messages.hpp>
|
||||
#include <Forms.hpp>
|
||||
#include <ExtCtrls.hpp>
|
||||
#include <Classes.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
#include <Windows.hpp>
|
||||
#include <SysUtils.hpp>
|
||||
#include <SysInit.hpp>
|
||||
#include <System.hpp>
|
||||
|
||||
//-- user supplied -----------------------------------------------------------
|
||||
|
||||
namespace Dialup
|
||||
{
|
||||
//-- type declarations -------------------------------------------------------
|
||||
typedef int *LPHRasConn;
|
||||
|
||||
typedef int THRasConn;
|
||||
|
||||
struct TRasConnW;
|
||||
typedef TRasConnW *LPRasConnW;
|
||||
|
||||
struct TRasConnW
|
||||
{
|
||||
int dwSize;
|
||||
int hrasconn;
|
||||
wchar_t szEntryName[257];
|
||||
wchar_t szDeviceType[17];
|
||||
wchar_t szDeviceName[129];
|
||||
} ;
|
||||
|
||||
struct TRasConnA;
|
||||
typedef TRasConnA *LPRasConnA;
|
||||
|
||||
struct TRasConnA
|
||||
{
|
||||
int dwSize;
|
||||
int hrasconn;
|
||||
char szEntryName[257];
|
||||
char szDeviceType[17];
|
||||
char szDeviceName[129];
|
||||
} ;
|
||||
|
||||
typedef TRasConnA *LPRasConn;
|
||||
|
||||
typedef TRasConnA TRasConn;
|
||||
|
||||
typedef int *LPRasConnState;
|
||||
|
||||
typedef int TRasConnState;
|
||||
|
||||
struct TRasConnStatusW;
|
||||
typedef TRasConnStatusW *LPRasConnStatusW;
|
||||
|
||||
struct TRasConnStatusW
|
||||
{
|
||||
int dwSize;
|
||||
int rasconnstate;
|
||||
int dwError;
|
||||
wchar_t szDeviceType[17];
|
||||
wchar_t szDeviceName[129];
|
||||
} ;
|
||||
|
||||
struct TRasConnStatusA;
|
||||
typedef TRasConnStatusA *LPRasConnStatusA;
|
||||
|
||||
struct TRasConnStatusA
|
||||
{
|
||||
int dwSize;
|
||||
int rasconnstate;
|
||||
int dwError;
|
||||
char szDeviceType[17];
|
||||
char szDeviceName[129];
|
||||
} ;
|
||||
|
||||
typedef TRasConnStatusA *LPRasConnStatus;
|
||||
|
||||
typedef TRasConnStatusA TRasConnStatus;
|
||||
|
||||
struct TRasDialParamsW;
|
||||
typedef TRasDialParamsW *LPRasDialParamsW;
|
||||
|
||||
struct TRasDialParamsW
|
||||
{
|
||||
int dwSize;
|
||||
wchar_t szEntryName[257];
|
||||
wchar_t szPhoneNumber[129];
|
||||
wchar_t szCallbackNumber[129];
|
||||
wchar_t szUserName[257];
|
||||
wchar_t szPassword[257];
|
||||
wchar_t szDomain[16];
|
||||
} ;
|
||||
|
||||
struct TRasDialParamsA;
|
||||
typedef TRasDialParamsA *LPRasDialParamsA;
|
||||
|
||||
struct TRasDialParamsA
|
||||
{
|
||||
int dwSize;
|
||||
char szEntryName[257];
|
||||
char szPhoneNumber[129];
|
||||
char szCallbackNumber[129];
|
||||
char szUserName[257];
|
||||
char szPassword[257];
|
||||
char szDomain[16];
|
||||
} ;
|
||||
|
||||
typedef TRasDialParamsA *LPRasDialParams;
|
||||
|
||||
typedef TRasDialParamsA TRasDialParams;
|
||||
|
||||
struct TRasDialExtensions;
|
||||
typedef TRasDialExtensions *LPRasDialExtensions;
|
||||
|
||||
struct TRasDialExtensions
|
||||
{
|
||||
int dwSize;
|
||||
int dwfOptions;
|
||||
HWND hwndParent;
|
||||
int reserved;
|
||||
} ;
|
||||
|
||||
struct TRasEntryNameW;
|
||||
typedef TRasEntryNameW *LPRasEntryNameW;
|
||||
|
||||
struct TRasEntryNameW
|
||||
{
|
||||
int dwSize;
|
||||
wchar_t szEntryName[257];
|
||||
} ;
|
||||
|
||||
struct TRasEntryNameA;
|
||||
typedef TRasEntryNameA *LPRasEntryNameA;
|
||||
|
||||
struct TRasEntryNameA
|
||||
{
|
||||
int dwSize;
|
||||
char szEntryName[257];
|
||||
} ;
|
||||
|
||||
typedef TRasEntryNameA *LPRasEntryName;
|
||||
|
||||
typedef TRasEntryNameA TRasEntryName;
|
||||
|
||||
typedef int *LPRasProjection;
|
||||
|
||||
typedef int TRasProjection;
|
||||
|
||||
struct TRasAmbW;
|
||||
typedef TRasAmbW *LPRasAmbW;
|
||||
|
||||
struct TRasAmbW
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
wchar_t szNetBiosError[17];
|
||||
Byte bLana;
|
||||
} ;
|
||||
|
||||
struct TRasAmbA;
|
||||
typedef TRasAmbA *LPRasAmbA;
|
||||
|
||||
struct TRasAmbA
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
char szNetBiosError[17];
|
||||
Byte bLana;
|
||||
} ;
|
||||
|
||||
typedef TRasAmbA *LPRasAmb;
|
||||
|
||||
typedef TRasAmbA TRasAmb;
|
||||
|
||||
struct TRasPppNbfW;
|
||||
typedef TRasPppNbfW *LPRasPppNbfW;
|
||||
|
||||
struct TRasPppNbfW
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
int dwNetBiosError;
|
||||
wchar_t szNetBiosError[17];
|
||||
wchar_t szWorkstationName[17];
|
||||
Byte bLana;
|
||||
} ;
|
||||
|
||||
struct TRasPppNbfA;
|
||||
typedef TRasPppNbfA *LPRasPppNbfA;
|
||||
|
||||
struct TRasPppNbfA
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
int dwNetBiosError;
|
||||
char szNetBiosError[17];
|
||||
char szWorkstationName[17];
|
||||
Byte bLana;
|
||||
} ;
|
||||
|
||||
typedef TRasPppNbfA *LpRaspppNbf;
|
||||
|
||||
typedef TRasPppNbfA TRasPppNbf;
|
||||
|
||||
struct TRasPppIpxW;
|
||||
typedef TRasPppIpxW *LPRasPppIpxW;
|
||||
|
||||
struct TRasPppIpxW
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
wchar_t szIpxAddress[22];
|
||||
} ;
|
||||
|
||||
struct TRasPppIpxA;
|
||||
typedef TRasPppIpxA *LPRasPppIpxA;
|
||||
|
||||
struct TRasPppIpxA
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
char szIpxAddress[22];
|
||||
} ;
|
||||
|
||||
typedef TRasPppIpxA *LPRasPppIpx;
|
||||
|
||||
typedef TRasPppIpxA TRasPppIpx;
|
||||
|
||||
struct TRasPppIpW;
|
||||
typedef TRasPppIpW *LPRasPppIpW;
|
||||
|
||||
struct TRasPppIpW
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
wchar_t szIpAddress[16];
|
||||
wchar_t szServerIpAddress[16];
|
||||
} ;
|
||||
|
||||
struct TRasPppIpA;
|
||||
typedef TRasPppIpA *LPRasPppIpA;
|
||||
|
||||
struct TRasPppIpA
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
char szIpAddress[16];
|
||||
char szServerIpAddress[16];
|
||||
} ;
|
||||
|
||||
typedef TRasPppIpA *LPRasPppIp;
|
||||
|
||||
typedef TRasPppIpA TRasPppIp;
|
||||
|
||||
struct TRasIPAddr;
|
||||
typedef TRasIPAddr *LPRasIPAddr;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct TRasIPAddr
|
||||
{
|
||||
Byte A;
|
||||
Byte B;
|
||||
Byte C;
|
||||
Byte D;
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
struct TRasEntryA;
|
||||
typedef TRasEntryA *LPRasEntryA;
|
||||
|
||||
struct TRasEntryA
|
||||
{
|
||||
int dwSize;
|
||||
int dwfOptions;
|
||||
int dwCountryID;
|
||||
int dwCountryCode;
|
||||
char szAreaCode[11];
|
||||
char szLocalPhoneNumber[129];
|
||||
int dwAlternatesOffset;
|
||||
TRasIPAddr ipaddr;
|
||||
TRasIPAddr ipaddrDns;
|
||||
TRasIPAddr ipaddrDnsAlt;
|
||||
TRasIPAddr ipaddrWins;
|
||||
TRasIPAddr ipaddrWinsAlt;
|
||||
int dwFrameSize;
|
||||
int dwfNetProtocols;
|
||||
int dwFramingProtocol;
|
||||
char szScript[260];
|
||||
char szAutodialDll[260];
|
||||
char szAutodialFunc[260];
|
||||
char szDeviceType[17];
|
||||
char szDeviceName[129];
|
||||
char szX25PadType[33];
|
||||
char szX25Address[201];
|
||||
char szX25Facilities[201];
|
||||
char szX25UserData[201];
|
||||
int dwChannels;
|
||||
int dwReserved1;
|
||||
int dwReserved2;
|
||||
} ;
|
||||
|
||||
struct TRasEntryW;
|
||||
typedef TRasEntryW *LPRasEntryW;
|
||||
|
||||
struct TRasEntryW
|
||||
{
|
||||
int dwSize;
|
||||
int dwfOptions;
|
||||
int dwCountryID;
|
||||
int dwCountryCode;
|
||||
wchar_t szAreaCode[11];
|
||||
wchar_t szLocalPhoneNumber[129];
|
||||
int dwAlternatesOffset;
|
||||
TRasIPAddr ipaddr;
|
||||
TRasIPAddr ipaddrDns;
|
||||
TRasIPAddr ipaddrDnsAlt;
|
||||
TRasIPAddr ipaddrWins;
|
||||
TRasIPAddr ipaddrWinsAlt;
|
||||
int dwFrameSize;
|
||||
int dwfNetProtocols;
|
||||
int dwFramingProtocol;
|
||||
wchar_t szScript[260];
|
||||
wchar_t szAutodialDll[260];
|
||||
wchar_t szAutodialFunc[260];
|
||||
wchar_t szDeviceType[17];
|
||||
wchar_t szDeviceName[129];
|
||||
wchar_t szX25PadType[33];
|
||||
wchar_t szX25Address[201];
|
||||
wchar_t szX25Facilities[201];
|
||||
wchar_t szX25UserData[201];
|
||||
int dwChannels;
|
||||
int dwReserved1;
|
||||
int dwReserved2;
|
||||
} ;
|
||||
|
||||
typedef TRasEntryA *LPRasEntry;
|
||||
|
||||
typedef TRasEntryA TRasEntry;
|
||||
|
||||
struct TRasCtryInfo
|
||||
{
|
||||
int dwSize;
|
||||
int dwCountryID;
|
||||
int dwNextCountryID;
|
||||
int dwCountryCode;
|
||||
int dwCountryNameOffset;
|
||||
} ;
|
||||
|
||||
typedef TRasCtryInfo *LPRasCtryInfo;
|
||||
|
||||
struct TRasDevInfoA;
|
||||
typedef TRasDevInfoA *LPRasDevInfoA;
|
||||
|
||||
struct TRasDevInfoA
|
||||
{
|
||||
int dwSize;
|
||||
char szDeviceType[17];
|
||||
char szDeviceName[129];
|
||||
} ;
|
||||
|
||||
struct TRasDevInfoW;
|
||||
typedef TRasDevInfoW *LPRasDevInfoW;
|
||||
|
||||
struct TRasDevInfoW
|
||||
{
|
||||
int dwSize;
|
||||
wchar_t szDeviceType[17];
|
||||
wchar_t szDeviceName[129];
|
||||
} ;
|
||||
|
||||
typedef TRasDevInfoA *LPRasDevInfo;
|
||||
|
||||
typedef TRasDevInfoA TRasDevInfo;
|
||||
|
||||
typedef void __fastcall (__closure *TOnEntryGet)(System::TObject* Sender, System::AnsiString EntryName
|
||||
);
|
||||
|
||||
typedef void __fastcall (__closure *TStandartEv)(System::TObject* Sender);
|
||||
|
||||
typedef void __fastcall (__closure *TOnNotConn)(System::TObject* Sender, int ErrorCode, System::AnsiString
|
||||
ErrorMessage);
|
||||
|
||||
typedef void __fastcall (__closure *TOnAsyncEvent)(System::TObject* Sender, int State, int Error, System::AnsiString
|
||||
MessageText);
|
||||
|
||||
typedef void __fastcall (__closure *TOnError)(System::TObject* Sender, int ErrorCode, System::AnsiString
|
||||
ErrorMessage);
|
||||
|
||||
typedef void __fastcall (__closure *TOnActiveConn)(System::TObject* Sender, int Handle, const TRasConnStatusA
|
||||
&Status, System::AnsiString StatusString, System::AnsiString EntryName, System::AnsiString DeviceType
|
||||
, System::AnsiString DeviceName);
|
||||
|
||||
enum TDialMode { dmAsync, dmSync };
|
||||
|
||||
enum TLanguage { English, Czech };
|
||||
|
||||
class DELPHICLASS TDialUp;
|
||||
class PASCALIMPLEMENTATION TDialUp : public Classes::TComponent
|
||||
{
|
||||
typedef Classes::TComponent inherited;
|
||||
|
||||
private:
|
||||
Classes::TStringList* FEntries;
|
||||
TDialMode FDialMode;
|
||||
System::AnsiString FEntry2Dial;
|
||||
TLanguage FLanguage;
|
||||
Extctrls::TTimer* FTimer;
|
||||
TOnEntryGet FOnEntryGet;
|
||||
TStandartEv FOnDialing;
|
||||
TStandartEv FOnConnected;
|
||||
TOnNotConn FOnNotConnected;
|
||||
TOnAsyncEvent FOnAsyncEvent;
|
||||
TOnError FOnError;
|
||||
TOnActiveConn FOnActiveConn;
|
||||
|
||||
protected:
|
||||
virtual void __fastcall Timer(System::TObject* Sender);
|
||||
|
||||
public:
|
||||
int hRAS;
|
||||
bool AsyncStatus;
|
||||
int AMsg;
|
||||
int AError;
|
||||
int AState;
|
||||
__fastcall virtual TDialUp(Classes::TComponent* AOwner);
|
||||
__fastcall virtual ~TDialUp(void);
|
||||
int __fastcall Dial(void);
|
||||
int __fastcall GetEntries(void);
|
||||
int __fastcall GetConnections(void);
|
||||
int __fastcall HangUp(void);
|
||||
int __fastcall HangUpConn(int Handle);
|
||||
int __fastcall CreateEntry(void);
|
||||
int __fastcall EditEntry(void);
|
||||
int __fastcall DeleteEntry(void);
|
||||
int __fastcall RenameEntryTo(System::AnsiString S);
|
||||
int __fastcall SetEntryUserName(System::AnsiString Value);
|
||||
int __fastcall SetEntryPassword(System::AnsiString Value);
|
||||
int __fastcall RemovePassword(void);
|
||||
int __fastcall GetEntryUserName(System::AnsiString &Value);
|
||||
int __fastcall GetEntryPassword(System::AnsiString &Value);
|
||||
System::AnsiString __fastcall StatusString(int State, int Error);
|
||||
System::AnsiString __fastcall StatusStringCZ(int State, int Error);
|
||||
|
||||
__published:
|
||||
__property Name ;
|
||||
__property Tag ;
|
||||
__property TDialMode DialMode = {read=FDialMode, write=FDialMode, nodefault};
|
||||
__property Classes::TStringList* Entries = {read=FEntries};
|
||||
__property System::AnsiString Entry = {read=FEntry2Dial, write=FEntry2Dial};
|
||||
__property TLanguage Language = {read=FLanguage, write=FLanguage, nodefault};
|
||||
__property TOnEntryGet OnEntryGet = {read=FOnEntryGet, write=FOnEntryGet};
|
||||
__property TStandartEv OnDialing = {read=FOnDialing, write=FOnDialing};
|
||||
__property TStandartEv OnConnect = {read=FOnConnected, write=FOnConnected};
|
||||
__property TOnNotConn OnNotConnected = {read=FOnNotConnected, write=FOnNotConnected};
|
||||
__property TOnAsyncEvent OnAsyncEvent = {read=FOnAsyncEvent, write=FOnAsyncEvent};
|
||||
__property TOnError OnError = {read=FOnError, write=FOnError};
|
||||
__property TOnActiveConn OnActiveConnection = {read=FOnActiveConn, write=FOnActiveConn};
|
||||
};
|
||||
|
||||
//-- var, const, procedure ---------------------------------------------------
|
||||
#define DNLEN (Byte)(15)
|
||||
#define UNLEN (Word)(256)
|
||||
#define PWLEN (Word)(256)
|
||||
#define NETBIOS_NAME_LEN (Byte)(16)
|
||||
#define RAS_MaxDeviceType (Byte)(16)
|
||||
#define RAS_MaxPhoneNumber (Byte)(128)
|
||||
#define RAS_MaxIpAddress (Byte)(15)
|
||||
#define RAS_MaxIpxAddress (Byte)(21)
|
||||
#define RAS_MaxEntryName (Word)(256)
|
||||
#define RAS_MaxDeviceName (Byte)(128)
|
||||
#define RAS_MaxCallbackNumber (Byte)(128)
|
||||
#define RASCS_PAUSED (Word)(4096)
|
||||
#define RASCS_DONE (Word)(8192)
|
||||
#define RASCS_OpenPort (Byte)(0)
|
||||
#define RASCS_PortOpened (Byte)(1)
|
||||
#define RASCS_ConnectDevice (Byte)(2)
|
||||
#define RASCS_DeviceConnected (Byte)(3)
|
||||
#define RASCS_AllDevicesConnected (Byte)(4)
|
||||
#define RASCS_Authenticate (Byte)(5)
|
||||
#define RASCS_AuthNotify (Byte)(6)
|
||||
#define RASCS_AuthRetry (Byte)(7)
|
||||
#define RASCS_AuthCallback (Byte)(8)
|
||||
#define RASCS_AuthChangePassword (Byte)(9)
|
||||
#define RASCS_AuthProject (Byte)(10)
|
||||
#define RASCS_AuthLinkSpeed (Byte)(11)
|
||||
#define RASCS_AuthAck (Byte)(12)
|
||||
#define RASCS_ReAuthenticate (Byte)(13)
|
||||
#define RASCS_Authenticated (Byte)(14)
|
||||
#define RASCS_PrepareForCallback (Byte)(15)
|
||||
#define RASCS_WaitForModemReset (Byte)(16)
|
||||
#define RASCS_WaitForCallback (Byte)(17)
|
||||
#define RASCS_Projected (Byte)(18)
|
||||
#define RASCS_StartAuthentication (Byte)(19)
|
||||
#define RASCS_CallbackComplete (Byte)(20)
|
||||
#define RASCS_LogonNetwork (Byte)(21)
|
||||
#define RASCS_Interactive (Word)(4096)
|
||||
#define RASCS_RetryAuthentication (Word)(4097)
|
||||
#define RASCS_CallbackSetByCaller (Word)(4098)
|
||||
#define RASCS_PasswordExpired (Word)(4099)
|
||||
#define RASCS_Connected (Word)(8192)
|
||||
#define RASCS_Disconnected (Word)(8193)
|
||||
#define RDEOPT_UsePrefixSuffix (Byte)(1)
|
||||
#define RDEOPT_PausedStates (Byte)(2)
|
||||
#define RDEOPT_IgnoreModemSpeaker (Byte)(4)
|
||||
#define RDEOPT_SetModemSpeaker (Byte)(8)
|
||||
#define RDEOPT_IgnoreSoftwareCompression (Byte)(16)
|
||||
#define RDEOPT_SetSoftwareCompression (Byte)(32)
|
||||
#define RASP_Amb (int)(65536)
|
||||
#define RASP_PppNbf (int)(32831)
|
||||
#define RASP_PppIpx (int)(32811)
|
||||
#define RASP_PppIp (int)(32801)
|
||||
#define RASDIALEVENT "RasDialEvent"
|
||||
#define WM_RASDIALEVENT (int)(52429)
|
||||
#define RASBASE (Word)(600)
|
||||
#define SUCCESS (Byte)(0)
|
||||
#define PENDING (Word)(600)
|
||||
#define ERROR_INVALID_PORT_HANDLE (Word)(601)
|
||||
#define ERROR_PORT_ALREADY_OPEN (Word)(602)
|
||||
#define ERROR_BUFFER_TOO_SMALL (Word)(603)
|
||||
#define ERROR_WRONG_INFO_SPECIFIED (Word)(604)
|
||||
#define ERROR_CANNOT_SET_PORT_INFO (Word)(605)
|
||||
#define ERROR_PORT_NOT_CONNECTED (Word)(606)
|
||||
#define ERROR_EVENT_INVALID (Word)(607)
|
||||
#define ERROR_DEVICE_DOES_NOT_EXIST (Word)(608)
|
||||
#define ERROR_DEVICETYPE_DOES_NOT_EXIST (Word)(609)
|
||||
#define ERROR_BUFFER_INVALID (Word)(610)
|
||||
#define ERROR_ROUTE_NOT_AVAILABLE (Word)(611)
|
||||
#define ERROR_ROUTE_NOT_ALLOCATED (Word)(612)
|
||||
#define ERROR_INVALID_COMPRESSION_SPECIFIED (Word)(613)
|
||||
#define ERROR_OUT_OF_BUFFERS (Word)(614)
|
||||
#define ERROR_PORT_NOT_FOUND (Word)(615)
|
||||
#define ERROR_ASYNC_REQUEST_PENDING (Word)(616)
|
||||
#define ERROR_ALREADY_DISCONNECTING (Word)(617)
|
||||
#define ERROR_PORT_NOT_OPEN (Word)(618)
|
||||
#define ERROR_PORT_DISCONNECTED (Word)(619)
|
||||
#define ERROR_NO_ENDPOINTS (Word)(620)
|
||||
#define ERROR_CANNOT_OPEN_PHONEBOOK (Word)(621)
|
||||
#define ERROR_CANNOT_LOAD_PHONEBOOK (Word)(622)
|
||||
#define ERROR_CANNOT_FIND_PHONEBOOK_ENTRY (Word)(623)
|
||||
#define ERROR_CANNOT_WRITE_PHONEBOOK (Word)(624)
|
||||
#define ERROR_CORRUPT_PHONEBOOK (Word)(625)
|
||||
#define ERROR_CANNOT_LOAD_STRING (Word)(626)
|
||||
#define ERROR_KEY_NOT_FOUND (Word)(627)
|
||||
#define ERROR_DISCONNECTION (Word)(628)
|
||||
#define ERROR_REMOTE_DISCONNECTION (Word)(629)
|
||||
#define ERROR_HARDWARE_FAILURE (Word)(630)
|
||||
#define ERROR_USER_DISCONNECTION (Word)(631)
|
||||
#define ERROR_INVALID_SIZE (Word)(632)
|
||||
#define ERROR_PORT_NOT_AVAILABLE (Word)(633)
|
||||
#define ERROR_CANNOT_PROJECT_CLIENT (Word)(634)
|
||||
#define ERROR_UNKNOWN (Word)(635)
|
||||
#define ERROR_WRONG_DEVICE_ATTACHED (Word)(636)
|
||||
#define ERROR_BAD_STRING (Word)(637)
|
||||
#define ERROR_REQUEST_TIMEOUT (Word)(638)
|
||||
#define ERROR_CANNOT_GET_LANA (Word)(639)
|
||||
#define ERROR_NETBIOS_ERROR (Word)(640)
|
||||
#define ERROR_SERVER_OUT_OF_RESOURCES (Word)(641)
|
||||
#define ERROR_NAME_EXISTS_ON_NET (Word)(642)
|
||||
#define ERROR_SERVER_GENERAL_NET_FAILURE (Word)(643)
|
||||
#define WARNING_MSG_ALIAS_NOT_ADDED (Word)(644)
|
||||
#define ERROR_AUTH_INTERNAL (Word)(645)
|
||||
#define ERROR_RESTRICTED_LOGON_HOURS (Word)(646)
|
||||
#define ERROR_ACCT_DISABLED (Word)(647)
|
||||
#define ERROR_PASSWD_EXPIRED (Word)(648)
|
||||
#define ERROR_NO_DIALIN_PERMISSION (Word)(649)
|
||||
#define ERROR_SERVER_NOT_RESPONDING (Word)(650)
|
||||
#define ERROR_FROM_DEVICE (Word)(651)
|
||||
#define ERROR_UNRECOGNIZED_RESPONSE (Word)(652)
|
||||
#define ERROR_MACRO_NOT_FOUND (Word)(653)
|
||||
#define ERROR_MACRO_NOT_DEFINED (Word)(654)
|
||||
#define ERROR_MESSAGE_MACRO_NOT_FOUND (Word)(655)
|
||||
#define ERROR_DEFAULTOFF_MACRO_NOT_FOUND (Word)(656)
|
||||
#define ERROR_FILE_COULD_NOT_BE_OPENED (Word)(657)
|
||||
#define ERROR_DEVICENAME_TOO_LONG (Word)(658)
|
||||
#define ERROR_DEVICENAME_NOT_FOUND (Word)(659)
|
||||
#define ERROR_NO_RESPONSES (Word)(660)
|
||||
#define ERROR_NO_COMMAND_FOUND (Word)(661)
|
||||
#define ERROR_WRONG_KEY_SPECIFIED (Word)(662)
|
||||
#define ERROR_UNKNOWN_DEVICE_TYPE (Word)(663)
|
||||
#define ERROR_ALLOCATING_MEMORY (Word)(664)
|
||||
#define ERROR_PORT_NOT_CONFIGURED (Word)(665)
|
||||
#define ERROR_DEVICE_NOT_READY (Word)(666)
|
||||
#define ERROR_READING_INI_FILE (Word)(667)
|
||||
#define ERROR_NO_CONNECTION (Word)(668)
|
||||
#define ERROR_BAD_USAGE_IN_INI_FILE (Word)(669)
|
||||
#define ERROR_READING_SECTIONNAME (Word)(670)
|
||||
#define ERROR_READING_DEVICETYPE (Word)(671)
|
||||
#define ERROR_READING_DEVICENAME (Word)(672)
|
||||
#define ERROR_READING_USAGE (Word)(673)
|
||||
#define ERROR_READING_MAXCONNECTBPS (Word)(674)
|
||||
#define ERROR_READING_MAXCARRIERBPS (Word)(675)
|
||||
#define ERROR_LINE_BUSY (Word)(676)
|
||||
#define ERROR_VOICE_ANSWER (Word)(677)
|
||||
#define ERROR_NO_ANSWER (Word)(678)
|
||||
#define ERROR_NO_CARRIER (Word)(679)
|
||||
#define ERROR_NO_DIALTONE (Word)(680)
|
||||
#define ERROR_IN_COMMAND (Word)(681)
|
||||
#define ERROR_WRITING_SECTIONNAME (Word)(682)
|
||||
#define ERROR_WRITING_DEVICETYPE (Word)(683)
|
||||
#define ERROR_WRITING_DEVICENAME (Word)(684)
|
||||
#define ERROR_WRITING_MAXCONNECTBPS (Word)(685)
|
||||
#define ERROR_WRITING_MAXCARRIERBPS (Word)(686)
|
||||
#define ERROR_WRITING_USAGE (Word)(687)
|
||||
#define ERROR_WRITING_DEFAULTOFF (Word)(688)
|
||||
#define ERROR_READING_DEFAULTOFF (Word)(689)
|
||||
#define ERROR_EMPTY_INI_FILE (Word)(690)
|
||||
#define ERROR_AUTHENTICATION_FAILURE (Word)(691)
|
||||
#define ERROR_PORT_OR_DEVICE (Word)(692)
|
||||
#define ERROR_NOT_BINARY_MACRO (Word)(693)
|
||||
#define ERROR_DCB_NOT_FOUND (Word)(694)
|
||||
#define ERROR_STATE_MACHINES_NOT_STARTED (Word)(695)
|
||||
#define ERROR_STATE_MACHINES_ALREADY_STARTED (Word)(696)
|
||||
#define ERROR_PARTIAL_RESPONSE_LOOPING (Word)(697)
|
||||
#define ERROR_UNKNOWN_RESPONSE_KEY (Word)(698)
|
||||
#define ERROR_RECV_BUF_FULL (Word)(699)
|
||||
#define ERROR_CMD_TOO_LONG (Word)(700)
|
||||
#define ERROR_UNSUPPORTED_BPS (Word)(701)
|
||||
#define ERROR_UNEXPECTED_RESPONSE (Word)(702)
|
||||
#define ERROR_INTERACTIVE_MODE (Word)(703)
|
||||
#define ERROR_BAD_CALLBACK_NUMBER (Word)(704)
|
||||
#define ERROR_INVALID_AUTH_STATE (Word)(705)
|
||||
#define ERROR_WRITING_INITBPS (Word)(706)
|
||||
#define ERROR_X25_DIAGNOSTIC (Word)(707)
|
||||
#define ERROR_ACCT_EXPIRED (Word)(708)
|
||||
#define ERROR_CHANGING_PASSWORD (Word)(709)
|
||||
#define ERROR_OVERRUN (Word)(710)
|
||||
#define ERROR_RASMAN_CANNOT_INITIALIZE (Word)(711)
|
||||
#define ERROR_BIPLEX_PORT_NOT_AVAILABLE (Word)(712)
|
||||
#define ERROR_NO_ACTIVE_ISDN_LINES (Word)(713)
|
||||
#define ERROR_NO_ISDN_CHANNELS_AVAILABLE (Word)(714)
|
||||
#define ERROR_TOO_MANY_LINE_ERRORS (Word)(715)
|
||||
#define ERROR_IP_CONFIGURATION (Word)(716)
|
||||
#define ERROR_NO_IP_ADDRESSES (Word)(717)
|
||||
#define ERROR_PPP_TIMEOUT (Word)(718)
|
||||
#define ERROR_PPP_REMOTE_TERMINATED (Word)(719)
|
||||
#define ERROR_PPP_NO_PROTOCOLS_CONFIGURED (Word)(720)
|
||||
#define ERROR_PPP_NO_RESPONSE (Word)(721)
|
||||
#define ERROR_PPP_INVALID_PACKET (Word)(722)
|
||||
#define ERROR_PHONE_NUMBER_TOO_LONG (Word)(723)
|
||||
#define ERROR_IPXCP_NO_DIALOUT_CONFIGURED (Word)(724)
|
||||
#define ERROR_IPXCP_NO_DIALIN_CONFIGURED (Word)(725)
|
||||
#define ERROR_IPXCP_DIALOUT_ALREADY_ACTIVE (Word)(726)
|
||||
#define ERROR_ACCESSING_TCPCFGDLL (Word)(727)
|
||||
#define ERROR_NO_IP_RAS_ADAPTER (Word)(728)
|
||||
#define ERROR_SLIP_REQUIRES_IP (Word)(729)
|
||||
#define ERROR_PROJECTION_NOT_COMPLETE (Word)(730)
|
||||
#define ERROR_PROTOCOL_NOT_CONFIGURED (Word)(731)
|
||||
#define ERROR_PPP_NOT_CONVERGING (Word)(732)
|
||||
#define ERROR_PPP_CP_REJECTED (Word)(733)
|
||||
#define ERROR_PPP_LCP_TERMINATED (Word)(734)
|
||||
#define ERROR_PPP_REQUIRED_ADDRESS_REJECTED (Word)(735)
|
||||
#define ERROR_PPP_NCP_TERMINATED (Word)(736)
|
||||
#define ERROR_PPP_LOOPBACK_DETECTED (Word)(737)
|
||||
#define ERROR_PPP_NO_ADDRESS_ASSIGNED (Word)(738)
|
||||
#define ERROR_CANNOT_USE_LOGON_CREDENTIALS (Word)(739)
|
||||
#define ERROR_TAPI_CONFIGURATION (Word)(740)
|
||||
#define ERROR_NO_LOCAL_ENCRYPTION (Word)(741)
|
||||
#define ERROR_NO_REMOTE_ENCRYPTION (Word)(742)
|
||||
#define ERROR_REMOTE_REQUIRES_ENCRYPTION (Word)(743)
|
||||
#define ERROR_IPXCP_NET_NUMBER_CONFLICT (Word)(744)
|
||||
#define ERROR_INVALID_SMM (Word)(745)
|
||||
#define ERROR_SMM_UNINITIALIZED (Word)(746)
|
||||
#define ERROR_NO_MAC_FOR_PORT (Word)(747)
|
||||
#define ERROR_SMM_TIMEOUT (Word)(748)
|
||||
#define ERROR_BAD_PHONE_NUMBER (Word)(749)
|
||||
#define ERROR_WRONG_MODULE (Word)(750)
|
||||
#define RASBASEEND (Word)(750)
|
||||
#define RAS_MaxAreaCode (Byte)(10)
|
||||
#define RAS_MaxPadType (Byte)(32)
|
||||
#define RAS_MaxX25Address (Byte)(200)
|
||||
#define RAS_MaxFacilities (Byte)(200)
|
||||
#define RAS_MaxUserData (Byte)(200)
|
||||
#define RASEO_UseCountryAndAreaCodes (Byte)(1)
|
||||
#define RASEO_SpecificIpAddr (Byte)(2)
|
||||
#define RASEO_SpecificNameServers (Byte)(4)
|
||||
#define RASEO_IpHeaderCompression (Byte)(8)
|
||||
#define RASEO_RemoteDefaultGateway (Byte)(16)
|
||||
#define RASEO_DisableLcpExtensions (Byte)(32)
|
||||
#define RASEO_TerminalBeforeDial (Byte)(64)
|
||||
#define RASEO_TerminalAfterDial (Byte)(128)
|
||||
#define RASEO_ModemLights (Word)(256)
|
||||
#define RASEO_SwCompression (Word)(512)
|
||||
#define RASEO_RequireEncryptedPw (Word)(1024)
|
||||
#define RASEO_RequireMsEncryptedPw (Word)(2048)
|
||||
#define RASEO_RequireDataEncryption (Word)(4096)
|
||||
#define RASEO_NetworkLogon (Word)(8192)
|
||||
#define RASEO_UseLogonCredentials (Word)(16384)
|
||||
#define RASEO_PromoteAlternates (int)(32768)
|
||||
#define RASNP_Netbeui (Byte)(1)
|
||||
#define RASNP_Ipx (Byte)(2)
|
||||
#define RASNP_Ip (Byte)(4)
|
||||
#define RASFP_Ppp (Byte)(1)
|
||||
#define RASFP_Slip (Byte)(2)
|
||||
#define RASFP_Ras (Byte)(4)
|
||||
#define RASDT_Modem "modem"
|
||||
#define RASDT_Isdn "isdn"
|
||||
#define RASDT_X25 "x25"
|
||||
#define MaxEntries (Byte)(100)
|
||||
extern PACKAGE void __fastcall Register(void);
|
||||
extern "C" int __stdcall RasCreatePhonebookEntryA(HWND hwndParentWindow, char * lpszPhoneBook);
|
||||
extern "C" int __stdcall RasCreatePhonebookEntryW(HWND hwndParentWindow, wchar_t * lpszPhoneBook);
|
||||
extern "C" int __stdcall RasCreatePhonebookEntry(HWND hwndParentWindow, char * lpszPhoneBook);
|
||||
extern "C" int __stdcall RasDialA(LPRasDialExtensions lpRasDialExt, char * lpszPhoneBook, TRasDialParamsA
|
||||
¶ms, int dwNotifierType, void * lpNotifier, int &rasconn);
|
||||
extern "C" int __stdcall RasDialW(LPRasDialExtensions lpRasDialExt, wchar_t * lpszPhoneBook, TRasDialParamsW
|
||||
¶ms, int dwNotifierType, void * lpNotifier, int &rasconn);
|
||||
extern "C" int __stdcall RasDial(LPRasDialExtensions lpRasDialExt, char * lpszPhoneBook, TRasDialParamsA
|
||||
¶ms, int dwNotifierType, void * lpNotifier, int &rasconn);
|
||||
extern "C" int __stdcall RasEditPhonebookEntryA(HWND hwndParentWindow, char * lpszPhoneBook, char *
|
||||
lpszEntryName);
|
||||
extern "C" int __stdcall RasEditPhonebookEntryW(HWND hwndParentWindow, wchar_t * lpszPhoneBook, wchar_t *
|
||||
lpszEntryName);
|
||||
extern "C" int __stdcall RasEditPhonebookEntry(HWND hwndParentWindow, char * lpszPhoneBook, char * lpszEntryName
|
||||
);
|
||||
extern "C" int __stdcall RasEnumConnectionsA(LPRasConnA RasConnArray, int &lpcb, int &lpcConnections
|
||||
);
|
||||
extern "C" int __stdcall RasEnumConnectionsW(LPRasConnW RasConnArray, int &lpcb, int &lpcConnections
|
||||
);
|
||||
extern "C" int __stdcall RasEnumConnections(LPRasConn RasConnArray, int &lpcb, int &lpcConnections);
|
||||
|
||||
extern "C" int __stdcall RasEnumEntriesA(char * Reserved, char * lpszPhoneBook, LPRasEntryNameA entrynamesArray
|
||||
, int &lpcb, int &lpcEntries);
|
||||
extern "C" int __stdcall RasEnumEntriesW(wchar_t * reserved, wchar_t * lpszPhoneBook, LPRasEntryNameW
|
||||
entrynamesArray, int &lpcb, int &lpcEntries);
|
||||
extern "C" int __stdcall RasEnumEntries(char * reserved, char * lpszPhoneBook, LPRasEntryName entrynamesArray
|
||||
, int &lpcb, int &lpcEntries);
|
||||
extern "C" int __stdcall RasGetConnectStatusA(int hConn, TRasConnStatusA &lpStatus);
|
||||
extern "C" int __stdcall RasGetConnectStatusW(int hConn, TRasConnStatusW &lpStatus);
|
||||
extern "C" int __stdcall RasGetConnectStatus(int hConn, TRasConnStatusA &lpStatus);
|
||||
extern "C" int __stdcall RasGetEntryDialParamsA(char * lpszPhoneBook, TRasDialParamsA &lpDialParams,
|
||||
BOOL &lpfPassword);
|
||||
extern "C" int __stdcall RasGetEntryDialParamsW(wchar_t * lpszPhoneBook, TRasDialParamsW &lpDialParams
|
||||
, BOOL &lpfPassword);
|
||||
extern "C" int __stdcall RasGetEntryDialParams(char * lpszPhoneBook, TRasDialParamsA &lpDialParams,
|
||||
BOOL &lpfPassword);
|
||||
extern "C" int __stdcall RasGetErrorStringA(int errorValue, char * erroString, int cBufSize);
|
||||
extern "C" int __stdcall RasGetErrorStringW(int errorValue, wchar_t * erroString, int cBufSize);
|
||||
extern "C" int __stdcall RasGetErrorString(int errorValue, char * erroString, int cBufSize);
|
||||
extern "C" int __stdcall RasGetProjectionInfoA(int hConn, int rasproj, void * lpProjection, int &lpcb
|
||||
);
|
||||
extern "C" int __stdcall RasGetProjectionInfoW(int hConn, int rasproj, void * lpProjection, int &lpcb
|
||||
);
|
||||
extern "C" int __stdcall RasGetProjectionInfo(int hConn, int rasproj, void * lpProjection, int &lpcb
|
||||
);
|
||||
extern "C" int __stdcall RasHangUpA(int hConn);
|
||||
extern "C" int __stdcall RasHangUpW(int hConn);
|
||||
extern "C" int __stdcall RasHangUp(int hConn);
|
||||
extern "C" int __stdcall RasSetEntryDialParamsA(char * lpszPhoneBook, TRasDialParamsA &lpDialParams,
|
||||
BOOL fRemovePassword);
|
||||
extern "C" int __stdcall RasSetEntryDialParamsW(wchar_t * lpszPhoneBook, TRasDialParamsW &lpDialParams
|
||||
, BOOL fRemovePassword);
|
||||
extern "C" int __stdcall RasSetEntryDialParams(char * lpszPhoneBook, TRasDialParamsA &lpDialParams,
|
||||
BOOL fRemovePassword);
|
||||
extern "C" int __stdcall RasValidateEntryNameA(char * lpszPhonebook, char * szEntry);
|
||||
extern "C" int __stdcall RasValidateEntryNameW(wchar_t * lpszPhonebook, wchar_t * szEntry);
|
||||
extern "C" int __stdcall RasRenameEntryA(char * lpszPhonebook, char * szEntryOld, char * szEntryNew)
|
||||
;
|
||||
extern "C" int __stdcall RasRenameEntryW(wchar_t * lpszPhonebook, wchar_t * szEntryOld, wchar_t * szEntryNew
|
||||
);
|
||||
extern "C" int __stdcall RasDeleteEntryA(char * lpszPhonebook, char * szEntry);
|
||||
extern "C" int __stdcall RasDeleteEntryW(wchar_t * lpszPhonebook, wchar_t * szEntry);
|
||||
extern "C" int __stdcall RasGetEntryPropertiesA(char * lpszPhonebook, char * szEntry, void * lpbEntry
|
||||
, int &lpdwEntrySize, void * lpbDeviceInfo, int &lpdwDeviceInfoSize);
|
||||
extern "C" int __stdcall RasGetEntryPropertiesW(wchar_t * lpszPhonebook, wchar_t * szEntry, void * lpbEntry
|
||||
, int &lpdwEntrySize, void * lpbDeviceInfo, int &lpdwDeviceInfoSize);
|
||||
extern "C" int __stdcall RasSetEntryPropertiesA(char * lpszPhonebook, char * szEntry, void * lpbEntry
|
||||
, int dwEntrySize, void * lpbDeviceInfo, int dwDeviceInfoSize);
|
||||
extern "C" int __stdcall RasSetEntryPropertiesW(wchar_t * lpszPhonebook, wchar_t * szEntry, void * lpbEntry
|
||||
, int dwEntrySize, void * lpbDeviceInfo, int dwDeviceInfoSize);
|
||||
extern "C" int __stdcall RasGetCountryInfoA(TRasCtryInfo &lpCtryInfo, int &lpdwSize);
|
||||
extern "C" int __stdcall RasGetCountryInfoW(TRasCtryInfo &lpCtryInfo, int &lpdwSize);
|
||||
extern "C" int __stdcall RasEnumDevicesA(LPRasDevInfoA lpBuff, int &lpcbSize, int &lpcDevices);
|
||||
extern "C" int __stdcall RasEnumDevicesW(LPRasDevInfoW lpBuff, int &lpcbSize, int &lpcDevices);
|
||||
extern PACKAGE int __stdcall RasValidateEntryName(char * lpszPhonebook, char * szEntry);
|
||||
extern PACKAGE int __stdcall RasRenameEntry(char * lpszPhonebook, char * szEntryOld, char * szEntryNew
|
||||
);
|
||||
extern PACKAGE int __stdcall RasDeleteEntry(char * lpszPhonebook, char * szEntry);
|
||||
extern PACKAGE int __stdcall RasGetEntryProperties(char * lpszPhonebook, char * szEntry, void * lpbEntry
|
||||
, int &lpdwEntrySize, void * lpbDeviceInfo, int &lpdwDeviceInfoSize);
|
||||
extern PACKAGE int __stdcall RasSetEntryProperties(char * lpszPhonebook, char * szEntry, void * lpbEntry
|
||||
, int dwEntrySize, void * lpbDeviceInfo, int dwDeviceInfoSize);
|
||||
extern PACKAGE int __stdcall RasGetCountryInfo(TRasCtryInfo &lpCtryInfo, int &lpdwSize);
|
||||
extern PACKAGE int __stdcall RasEnumDevices(LPRasDevInfo lpBuff, int &lpcbSize, int &lpcDevices);
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasDial(LPRasDialExtensions lpRasDialExt, char * lpszPhoneBook, TRasDialParamsA
|
||||
¶ms, int dwNotifierType, void * lpNotifier, int &rasconn)
|
||||
{
|
||||
return RasDialW(lpRasDialExt, lpszPhoneBook, params, dwNotifierType, lpNotifier, rasconn);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasDial(LPRasDialExtensions lpRasDialExt, char * lpszPhoneBook, TRasDialParamsA
|
||||
¶ms, int dwNotifierType, void * lpNotifier, int &rasconn)
|
||||
{
|
||||
return RasDialA(lpRasDialExt, lpszPhoneBook, params, dwNotifierType, lpNotifier, rasconn);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasEnumConnections(LPRasConn RasConnArray, int &lpcb, int &lpcConnections)
|
||||
{
|
||||
return RasEnumConnectionsW(RasConnArray, lpcb, lpcConnections);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasEnumConnections(LPRasConn RasConnArray, int &lpcb, int &lpcConnections)
|
||||
{
|
||||
return RasEnumConnectionsA(RasConnArray, lpcb, lpcConnections);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasEnumEntries(char * reserved, char * lpszPhoneBook, LPRasEntryName entrynamesArray
|
||||
, int &lpcb, int &lpcEntries)
|
||||
{
|
||||
return RasEnumEntriesW(reserved, lpszPhoneBook, entrynamesArray, lpcb, lpcEntries);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasEnumEntries(char * reserved, char * lpszPhoneBook, LPRasEntryName entrynamesArray
|
||||
, int &lpcb, int &lpcEntries)
|
||||
{
|
||||
return RasEnumEntriesA(reserved, lpszPhoneBook, entrynamesArray, lpcb, lpcEntries);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasGetConnectStatus(int hConn, TRasConnStatusA &lpStatus)
|
||||
{
|
||||
return RasGetConnectStatusW(hConn, lpStatus);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasGetConnectStatus(int hConn, TRasConnStatusA &lpStatus)
|
||||
{
|
||||
return RasGetConnectStatusA(hConn, lpStatus);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasGetErrorString(int errorValue, char * erroString, int cBufSize)
|
||||
{
|
||||
return RasGetErrorStringW(errorValue, erroString, cBufSize);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasGetErrorString(int errorValue, char * erroString, int cBufSize)
|
||||
{
|
||||
return RasGetErrorStringA(errorValue, erroString, cBufSize);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasHangUp(int hConn)
|
||||
{
|
||||
return RasHangUpW(hConn);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasHangUp(int hConn)
|
||||
{
|
||||
return RasHangUpA(hConn);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasGetProjectionInfo(int hConn, int rasproj, void * lpProjection, int &lpcb)
|
||||
{
|
||||
return RasGetProjectionInfoW(hConn, rasproj, lpProjection, lpcb);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasGetProjectionInfo(int hConn, int rasproj, void * lpProjection, int &lpcb)
|
||||
{
|
||||
return RasGetProjectionInfoA(hConn, rasproj, lpProjection, lpcb);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasCreatePhonebookEntry(HWND hwndParentWindow, char * lpszPhoneBook)
|
||||
{
|
||||
return RasCreatePhonebookEntryW(hwndParentWindow, lpszPhoneBook);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasCreatePhonebookEntry(HWND hwndParentWindow, char * lpszPhoneBook)
|
||||
{
|
||||
return RasCreatePhonebookEntryA(hwndParentWindow, lpszPhoneBook);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasEditPhonebookEntry(HWND hwndParentWindow, char * lpszPhoneBook, char * lpszEntryName
|
||||
)
|
||||
{
|
||||
return RasEditPhonebookEntryW(hwndParentWindow, lpszPhoneBook, lpszEntryName);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasEditPhonebookEntry(HWND hwndParentWindow, char * lpszPhoneBook, char * lpszEntryName
|
||||
)
|
||||
{
|
||||
return RasEditPhonebookEntryA(hwndParentWindow, lpszPhoneBook, lpszEntryName);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasSetEntryDialParams(char * lpszPhoneBook, TRasDialParamsA &lpDialParams, BOOL
|
||||
fRemovePassword)
|
||||
{
|
||||
return RasSetEntryDialParamsW(lpszPhoneBook, lpDialParams, fRemovePassword);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasSetEntryDialParams(char * lpszPhoneBook, TRasDialParamsA &lpDialParams, BOOL
|
||||
fRemovePassword)
|
||||
{
|
||||
return RasSetEntryDialParamsA(lpszPhoneBook, lpDialParams, fRemovePassword);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasGetEntryDialParams(char * lpszPhoneBook, TRasDialParamsA &lpDialParams, BOOL
|
||||
&lpfPassword)
|
||||
{
|
||||
return RasGetEntryDialParamsW(lpszPhoneBook, lpDialParams, lpfPassword);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasGetEntryDialParams(char * lpszPhoneBook, TRasDialParamsA &lpDialParams, BOOL
|
||||
&lpfPassword)
|
||||
{
|
||||
return RasGetEntryDialParamsA(lpszPhoneBook, lpDialParams, lpfPassword);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
} /* namespace Dialup */
|
||||
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||
using namespace Dialup;
|
||||
#endif
|
||||
//-- end unit ----------------------------------------------------------------
|
||||
#endif // DialUp
|
BIN
CDopping/DialUp/Dialup.OBJ
Normal file
BIN
CDopping/DialUp/Dialup.OBJ
Normal file
Binary file not shown.
951
CDopping/DialUp/Dialup.hpp
Normal file
951
CDopping/DialUp/Dialup.hpp
Normal file
@ -0,0 +1,951 @@
|
||||
// Borland C++ Builder
|
||||
// Copyright (c) 1995, 1998 by Borland International
|
||||
// All rights reserved
|
||||
|
||||
// (DO NOT EDIT: machine generated header) 'DialUp.pas' rev: 3.00
|
||||
|
||||
#ifndef DialUpHPP
|
||||
#define DialUpHPP
|
||||
#include <Messages.hpp>
|
||||
#include <Forms.hpp>
|
||||
#include <ExtCtrls.hpp>
|
||||
#include <Classes.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
#include <Windows.hpp>
|
||||
#include <SysUtils.hpp>
|
||||
#include <SysInit.hpp>
|
||||
#include <System.hpp>
|
||||
|
||||
//-- user supplied -----------------------------------------------------------
|
||||
|
||||
namespace Dialup
|
||||
{
|
||||
//-- type declarations -------------------------------------------------------
|
||||
typedef int *LPHRasConn;
|
||||
|
||||
typedef int THRasConn;
|
||||
|
||||
struct TRasConnW;
|
||||
typedef TRasConnW *LPRasConnW;
|
||||
|
||||
struct TRasConnW
|
||||
{
|
||||
int dwSize;
|
||||
int hrasconn;
|
||||
wchar_t szEntryName[257];
|
||||
wchar_t szDeviceType[17];
|
||||
wchar_t szDeviceName[129];
|
||||
} ;
|
||||
|
||||
struct TRasConnA;
|
||||
typedef TRasConnA *LPRasConnA;
|
||||
|
||||
struct TRasConnA
|
||||
{
|
||||
int dwSize;
|
||||
int hrasconn;
|
||||
char szEntryName[257];
|
||||
char szDeviceType[17];
|
||||
char szDeviceName[129];
|
||||
} ;
|
||||
|
||||
typedef TRasConnA *LPRasConn;
|
||||
|
||||
typedef TRasConnA TRasConn;
|
||||
|
||||
typedef int *LPRasConnState;
|
||||
|
||||
typedef int TRasConnState;
|
||||
|
||||
struct TRasConnStatusW;
|
||||
typedef TRasConnStatusW *LPRasConnStatusW;
|
||||
|
||||
struct TRasConnStatusW
|
||||
{
|
||||
int dwSize;
|
||||
int rasconnstate;
|
||||
int dwError;
|
||||
wchar_t szDeviceType[17];
|
||||
wchar_t szDeviceName[129];
|
||||
} ;
|
||||
|
||||
struct TRasConnStatusA;
|
||||
typedef TRasConnStatusA *LPRasConnStatusA;
|
||||
|
||||
struct TRasConnStatusA
|
||||
{
|
||||
int dwSize;
|
||||
int rasconnstate;
|
||||
int dwError;
|
||||
char szDeviceType[17];
|
||||
char szDeviceName[129];
|
||||
} ;
|
||||
|
||||
typedef TRasConnStatusA *LPRasConnStatus;
|
||||
|
||||
typedef TRasConnStatusA TRasConnStatus;
|
||||
|
||||
struct TRasDialParamsW;
|
||||
typedef TRasDialParamsW *LPRasDialParamsW;
|
||||
|
||||
struct TRasDialParamsW
|
||||
{
|
||||
int dwSize;
|
||||
wchar_t szEntryName[257];
|
||||
wchar_t szPhoneNumber[129];
|
||||
wchar_t szCallbackNumber[129];
|
||||
wchar_t szUserName[257];
|
||||
wchar_t szPassword[257];
|
||||
wchar_t szDomain[16];
|
||||
} ;
|
||||
|
||||
struct TRasDialParamsA;
|
||||
typedef TRasDialParamsA *LPRasDialParamsA;
|
||||
|
||||
struct TRasDialParamsA
|
||||
{
|
||||
int dwSize;
|
||||
char szEntryName[257];
|
||||
char szPhoneNumber[129];
|
||||
char szCallbackNumber[129];
|
||||
char szUserName[257];
|
||||
char szPassword[257];
|
||||
char szDomain[16];
|
||||
} ;
|
||||
|
||||
typedef TRasDialParamsA *LPRasDialParams;
|
||||
|
||||
typedef TRasDialParamsA TRasDialParams;
|
||||
|
||||
struct TRasDialExtensions;
|
||||
typedef TRasDialExtensions *LPRasDialExtensions;
|
||||
|
||||
struct TRasDialExtensions
|
||||
{
|
||||
int dwSize;
|
||||
int dwfOptions;
|
||||
HWND hwndParent;
|
||||
int reserved;
|
||||
} ;
|
||||
|
||||
struct TRasEntryNameW;
|
||||
typedef TRasEntryNameW *LPRasEntryNameW;
|
||||
|
||||
struct TRasEntryNameW
|
||||
{
|
||||
int dwSize;
|
||||
wchar_t szEntryName[257];
|
||||
} ;
|
||||
|
||||
struct TRasEntryNameA;
|
||||
typedef TRasEntryNameA *LPRasEntryNameA;
|
||||
|
||||
struct TRasEntryNameA
|
||||
{
|
||||
int dwSize;
|
||||
char szEntryName[257];
|
||||
} ;
|
||||
|
||||
typedef TRasEntryNameA *LPRasEntryName;
|
||||
|
||||
typedef TRasEntryNameA TRasEntryName;
|
||||
|
||||
typedef int *LPRasProjection;
|
||||
|
||||
typedef int TRasProjection;
|
||||
|
||||
struct TRasAmbW;
|
||||
typedef TRasAmbW *LPRasAmbW;
|
||||
|
||||
struct TRasAmbW
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
wchar_t szNetBiosError[17];
|
||||
Byte bLana;
|
||||
} ;
|
||||
|
||||
struct TRasAmbA;
|
||||
typedef TRasAmbA *LPRasAmbA;
|
||||
|
||||
struct TRasAmbA
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
char szNetBiosError[17];
|
||||
Byte bLana;
|
||||
} ;
|
||||
|
||||
typedef TRasAmbA *LPRasAmb;
|
||||
|
||||
typedef TRasAmbA TRasAmb;
|
||||
|
||||
struct TRasPppNbfW;
|
||||
typedef TRasPppNbfW *LPRasPppNbfW;
|
||||
|
||||
struct TRasPppNbfW
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
int dwNetBiosError;
|
||||
wchar_t szNetBiosError[17];
|
||||
wchar_t szWorkstationName[17];
|
||||
Byte bLana;
|
||||
} ;
|
||||
|
||||
struct TRasPppNbfA;
|
||||
typedef TRasPppNbfA *LPRasPppNbfA;
|
||||
|
||||
struct TRasPppNbfA
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
int dwNetBiosError;
|
||||
char szNetBiosError[17];
|
||||
char szWorkstationName[17];
|
||||
Byte bLana;
|
||||
} ;
|
||||
|
||||
typedef TRasPppNbfA *LpRaspppNbf;
|
||||
|
||||
typedef TRasPppNbfA TRasPppNbf;
|
||||
|
||||
struct TRasPppIpxW;
|
||||
typedef TRasPppIpxW *LPRasPppIpxW;
|
||||
|
||||
struct TRasPppIpxW
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
wchar_t szIpxAddress[22];
|
||||
} ;
|
||||
|
||||
struct TRasPppIpxA;
|
||||
typedef TRasPppIpxA *LPRasPppIpxA;
|
||||
|
||||
struct TRasPppIpxA
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
char szIpxAddress[22];
|
||||
} ;
|
||||
|
||||
typedef TRasPppIpxA *LPRasPppIpx;
|
||||
|
||||
typedef TRasPppIpxA TRasPppIpx;
|
||||
|
||||
struct TRasPppIpW;
|
||||
typedef TRasPppIpW *LPRasPppIpW;
|
||||
|
||||
struct TRasPppIpW
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
wchar_t szIpAddress[16];
|
||||
wchar_t szServerIpAddress[16];
|
||||
} ;
|
||||
|
||||
struct TRasPppIpA;
|
||||
typedef TRasPppIpA *LPRasPppIpA;
|
||||
|
||||
struct TRasPppIpA
|
||||
{
|
||||
int dwSize;
|
||||
int dwError;
|
||||
char szIpAddress[16];
|
||||
char szServerIpAddress[16];
|
||||
} ;
|
||||
|
||||
typedef TRasPppIpA *LPRasPppIp;
|
||||
|
||||
typedef TRasPppIpA TRasPppIp;
|
||||
|
||||
struct TRasIPAddr;
|
||||
typedef TRasIPAddr *LPRasIPAddr;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct TRasIPAddr
|
||||
{
|
||||
Byte A;
|
||||
Byte B;
|
||||
Byte C;
|
||||
Byte D;
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
struct TRasEntryA;
|
||||
typedef TRasEntryA *LPRasEntryA;
|
||||
|
||||
struct TRasEntryA
|
||||
{
|
||||
int dwSize;
|
||||
int dwfOptions;
|
||||
int dwCountryID;
|
||||
int dwCountryCode;
|
||||
char szAreaCode[11];
|
||||
char szLocalPhoneNumber[129];
|
||||
int dwAlternatesOffset;
|
||||
TRasIPAddr ipaddr;
|
||||
TRasIPAddr ipaddrDns;
|
||||
TRasIPAddr ipaddrDnsAlt;
|
||||
TRasIPAddr ipaddrWins;
|
||||
TRasIPAddr ipaddrWinsAlt;
|
||||
int dwFrameSize;
|
||||
int dwfNetProtocols;
|
||||
int dwFramingProtocol;
|
||||
char szScript[260];
|
||||
char szAutodialDll[260];
|
||||
char szAutodialFunc[260];
|
||||
char szDeviceType[17];
|
||||
char szDeviceName[129];
|
||||
char szX25PadType[33];
|
||||
char szX25Address[201];
|
||||
char szX25Facilities[201];
|
||||
char szX25UserData[201];
|
||||
int dwChannels;
|
||||
int dwReserved1;
|
||||
int dwReserved2;
|
||||
} ;
|
||||
|
||||
struct TRasEntryW;
|
||||
typedef TRasEntryW *LPRasEntryW;
|
||||
|
||||
struct TRasEntryW
|
||||
{
|
||||
int dwSize;
|
||||
int dwfOptions;
|
||||
int dwCountryID;
|
||||
int dwCountryCode;
|
||||
wchar_t szAreaCode[11];
|
||||
wchar_t szLocalPhoneNumber[129];
|
||||
int dwAlternatesOffset;
|
||||
TRasIPAddr ipaddr;
|
||||
TRasIPAddr ipaddrDns;
|
||||
TRasIPAddr ipaddrDnsAlt;
|
||||
TRasIPAddr ipaddrWins;
|
||||
TRasIPAddr ipaddrWinsAlt;
|
||||
int dwFrameSize;
|
||||
int dwfNetProtocols;
|
||||
int dwFramingProtocol;
|
||||
wchar_t szScript[260];
|
||||
wchar_t szAutodialDll[260];
|
||||
wchar_t szAutodialFunc[260];
|
||||
wchar_t szDeviceType[17];
|
||||
wchar_t szDeviceName[129];
|
||||
wchar_t szX25PadType[33];
|
||||
wchar_t szX25Address[201];
|
||||
wchar_t szX25Facilities[201];
|
||||
wchar_t szX25UserData[201];
|
||||
int dwChannels;
|
||||
int dwReserved1;
|
||||
int dwReserved2;
|
||||
} ;
|
||||
|
||||
typedef TRasEntryA *LPRasEntry;
|
||||
|
||||
typedef TRasEntryA TRasEntry;
|
||||
|
||||
struct TRasCtryInfo
|
||||
{
|
||||
int dwSize;
|
||||
int dwCountryID;
|
||||
int dwNextCountryID;
|
||||
int dwCountryCode;
|
||||
int dwCountryNameOffset;
|
||||
} ;
|
||||
|
||||
typedef TRasCtryInfo *LPRasCtryInfo;
|
||||
|
||||
struct TRasDevInfoA;
|
||||
typedef TRasDevInfoA *LPRasDevInfoA;
|
||||
|
||||
struct TRasDevInfoA
|
||||
{
|
||||
int dwSize;
|
||||
char szDeviceType[17];
|
||||
char szDeviceName[129];
|
||||
} ;
|
||||
|
||||
struct TRasDevInfoW;
|
||||
typedef TRasDevInfoW *LPRasDevInfoW;
|
||||
|
||||
struct TRasDevInfoW
|
||||
{
|
||||
int dwSize;
|
||||
wchar_t szDeviceType[17];
|
||||
wchar_t szDeviceName[129];
|
||||
} ;
|
||||
|
||||
typedef TRasDevInfoA *LPRasDevInfo;
|
||||
|
||||
typedef TRasDevInfoA TRasDevInfo;
|
||||
|
||||
typedef void __fastcall (__closure *TOnEntryGet)(System::TObject* Sender, System::AnsiString EntryName
|
||||
);
|
||||
|
||||
typedef void __fastcall (__closure *TStandartEv)(System::TObject* Sender);
|
||||
|
||||
typedef void __fastcall (__closure *TOnNotConn)(System::TObject* Sender, int ErrorCode, System::AnsiString
|
||||
ErrorMessage);
|
||||
|
||||
typedef void __fastcall (__closure *TOnAsyncEvent)(System::TObject* Sender, int State, int Error, System::AnsiString
|
||||
MessageText);
|
||||
|
||||
typedef void __fastcall (__closure *TOnError)(System::TObject* Sender, int ErrorCode, System::AnsiString
|
||||
ErrorMessage);
|
||||
|
||||
typedef void __fastcall (__closure *TOnActiveConn)(System::TObject* Sender, int Handle, const TRasConnStatusA
|
||||
&Status, System::AnsiString StatusString, System::AnsiString EntryName, System::AnsiString DeviceType
|
||||
, System::AnsiString DeviceName);
|
||||
|
||||
enum TDialMode { dmAsync, dmSync };
|
||||
|
||||
enum TLanguage { English, Czech };
|
||||
|
||||
class DELPHICLASS TDialUp;
|
||||
class PASCALIMPLEMENTATION TDialUp : public Classes::TComponent
|
||||
{
|
||||
typedef Classes::TComponent inherited;
|
||||
|
||||
private:
|
||||
Classes::TStringList* FEntries;
|
||||
TDialMode FDialMode;
|
||||
System::AnsiString FEntry2Dial;
|
||||
TLanguage FLanguage;
|
||||
Extctrls::TTimer* FTimer;
|
||||
TOnEntryGet FOnEntryGet;
|
||||
TStandartEv FOnDialing;
|
||||
TStandartEv FOnConnected;
|
||||
TOnNotConn FOnNotConnected;
|
||||
TOnAsyncEvent FOnAsyncEvent;
|
||||
TOnError FOnError;
|
||||
TOnActiveConn FOnActiveConn;
|
||||
|
||||
protected:
|
||||
virtual void __fastcall Timer(System::TObject* Sender);
|
||||
|
||||
public:
|
||||
int hRAS;
|
||||
bool AsyncStatus;
|
||||
int AMsg;
|
||||
int AError;
|
||||
int AState;
|
||||
__fastcall virtual TDialUp(Classes::TComponent* AOwner);
|
||||
__fastcall virtual ~TDialUp(void);
|
||||
int __fastcall Dial(void);
|
||||
int __fastcall GetEntries(void);
|
||||
int __fastcall GetConnections(void);
|
||||
int __fastcall HangUp(void);
|
||||
int __fastcall HangUpConn(int Handle);
|
||||
int __fastcall CreateEntry(void);
|
||||
int __fastcall EditEntry(void);
|
||||
int __fastcall DeleteEntry(void);
|
||||
int __fastcall RenameEntryTo(System::AnsiString S);
|
||||
int __fastcall SetEntryUserName(System::AnsiString Value);
|
||||
int __fastcall SetEntryPassword(System::AnsiString Value);
|
||||
int __fastcall RemovePassword(void);
|
||||
int __fastcall GetEntryUserName(System::AnsiString &Value);
|
||||
int __fastcall GetEntryPassword(System::AnsiString &Value);
|
||||
System::AnsiString __fastcall StatusString(int State, int Error);
|
||||
System::AnsiString __fastcall StatusStringCZ(int State, int Error);
|
||||
|
||||
__published:
|
||||
__property Name ;
|
||||
__property Tag ;
|
||||
__property TDialMode DialMode = {read=FDialMode, write=FDialMode, nodefault};
|
||||
__property Classes::TStringList* Entries = {read=FEntries};
|
||||
__property System::AnsiString Entry = {read=FEntry2Dial, write=FEntry2Dial};
|
||||
__property TLanguage Language = {read=FLanguage, write=FLanguage, nodefault};
|
||||
__property TOnEntryGet OnEntryGet = {read=FOnEntryGet, write=FOnEntryGet};
|
||||
__property TStandartEv OnDialing = {read=FOnDialing, write=FOnDialing};
|
||||
__property TStandartEv OnConnect = {read=FOnConnected, write=FOnConnected};
|
||||
__property TOnNotConn OnNotConnected = {read=FOnNotConnected, write=FOnNotConnected};
|
||||
__property TOnAsyncEvent OnAsyncEvent = {read=FOnAsyncEvent, write=FOnAsyncEvent};
|
||||
__property TOnError OnError = {read=FOnError, write=FOnError};
|
||||
__property TOnActiveConn OnActiveConnection = {read=FOnActiveConn, write=FOnActiveConn};
|
||||
};
|
||||
|
||||
//-- var, const, procedure ---------------------------------------------------
|
||||
#define DNLEN (Byte)(15)
|
||||
#define UNLEN (Word)(256)
|
||||
#define PWLEN (Word)(256)
|
||||
#define NETBIOS_NAME_LEN (Byte)(16)
|
||||
#define RAS_MaxDeviceType (Byte)(16)
|
||||
#define RAS_MaxPhoneNumber (Byte)(128)
|
||||
#define RAS_MaxIpAddress (Byte)(15)
|
||||
#define RAS_MaxIpxAddress (Byte)(21)
|
||||
#define RAS_MaxEntryName (Word)(256)
|
||||
#define RAS_MaxDeviceName (Byte)(128)
|
||||
#define RAS_MaxCallbackNumber (Byte)(128)
|
||||
#define RASCS_PAUSED (Word)(4096)
|
||||
#define RASCS_DONE (Word)(8192)
|
||||
#define RASCS_OpenPort (Byte)(0)
|
||||
#define RASCS_PortOpened (Byte)(1)
|
||||
#define RASCS_ConnectDevice (Byte)(2)
|
||||
#define RASCS_DeviceConnected (Byte)(3)
|
||||
#define RASCS_AllDevicesConnected (Byte)(4)
|
||||
#define RASCS_Authenticate (Byte)(5)
|
||||
#define RASCS_AuthNotify (Byte)(6)
|
||||
#define RASCS_AuthRetry (Byte)(7)
|
||||
#define RASCS_AuthCallback (Byte)(8)
|
||||
#define RASCS_AuthChangePassword (Byte)(9)
|
||||
#define RASCS_AuthProject (Byte)(10)
|
||||
#define RASCS_AuthLinkSpeed (Byte)(11)
|
||||
#define RASCS_AuthAck (Byte)(12)
|
||||
#define RASCS_ReAuthenticate (Byte)(13)
|
||||
#define RASCS_Authenticated (Byte)(14)
|
||||
#define RASCS_PrepareForCallback (Byte)(15)
|
||||
#define RASCS_WaitForModemReset (Byte)(16)
|
||||
#define RASCS_WaitForCallback (Byte)(17)
|
||||
#define RASCS_Projected (Byte)(18)
|
||||
#define RASCS_StartAuthentication (Byte)(19)
|
||||
#define RASCS_CallbackComplete (Byte)(20)
|
||||
#define RASCS_LogonNetwork (Byte)(21)
|
||||
#define RASCS_Interactive (Word)(4096)
|
||||
#define RASCS_RetryAuthentication (Word)(4097)
|
||||
#define RASCS_CallbackSetByCaller (Word)(4098)
|
||||
#define RASCS_PasswordExpired (Word)(4099)
|
||||
#define RASCS_Connected (Word)(8192)
|
||||
#define RASCS_Disconnected (Word)(8193)
|
||||
#define RDEOPT_UsePrefixSuffix (Byte)(1)
|
||||
#define RDEOPT_PausedStates (Byte)(2)
|
||||
#define RDEOPT_IgnoreModemSpeaker (Byte)(4)
|
||||
#define RDEOPT_SetModemSpeaker (Byte)(8)
|
||||
#define RDEOPT_IgnoreSoftwareCompression (Byte)(16)
|
||||
#define RDEOPT_SetSoftwareCompression (Byte)(32)
|
||||
#define RASP_Amb (int)(65536)
|
||||
#define RASP_PppNbf (int)(32831)
|
||||
#define RASP_PppIpx (int)(32811)
|
||||
#define RASP_PppIp (int)(32801)
|
||||
#define RASDIALEVENT "RasDialEvent"
|
||||
#define WM_RASDIALEVENT (int)(52429)
|
||||
#define RASBASE (Word)(600)
|
||||
#define SUCCESS (Byte)(0)
|
||||
#define PENDING (Word)(600)
|
||||
#define ERROR_INVALID_PORT_HANDLE (Word)(601)
|
||||
#define ERROR_PORT_ALREADY_OPEN (Word)(602)
|
||||
#define ERROR_BUFFER_TOO_SMALL (Word)(603)
|
||||
#define ERROR_WRONG_INFO_SPECIFIED (Word)(604)
|
||||
#define ERROR_CANNOT_SET_PORT_INFO (Word)(605)
|
||||
#define ERROR_PORT_NOT_CONNECTED (Word)(606)
|
||||
#define ERROR_EVENT_INVALID (Word)(607)
|
||||
#define ERROR_DEVICE_DOES_NOT_EXIST (Word)(608)
|
||||
#define ERROR_DEVICETYPE_DOES_NOT_EXIST (Word)(609)
|
||||
#define ERROR_BUFFER_INVALID (Word)(610)
|
||||
#define ERROR_ROUTE_NOT_AVAILABLE (Word)(611)
|
||||
#define ERROR_ROUTE_NOT_ALLOCATED (Word)(612)
|
||||
#define ERROR_INVALID_COMPRESSION_SPECIFIED (Word)(613)
|
||||
#define ERROR_OUT_OF_BUFFERS (Word)(614)
|
||||
#define ERROR_PORT_NOT_FOUND (Word)(615)
|
||||
#define ERROR_ASYNC_REQUEST_PENDING (Word)(616)
|
||||
#define ERROR_ALREADY_DISCONNECTING (Word)(617)
|
||||
#define ERROR_PORT_NOT_OPEN (Word)(618)
|
||||
#define ERROR_PORT_DISCONNECTED (Word)(619)
|
||||
#define ERROR_NO_ENDPOINTS (Word)(620)
|
||||
#define ERROR_CANNOT_OPEN_PHONEBOOK (Word)(621)
|
||||
#define ERROR_CANNOT_LOAD_PHONEBOOK (Word)(622)
|
||||
#define ERROR_CANNOT_FIND_PHONEBOOK_ENTRY (Word)(623)
|
||||
#define ERROR_CANNOT_WRITE_PHONEBOOK (Word)(624)
|
||||
#define ERROR_CORRUPT_PHONEBOOK (Word)(625)
|
||||
#define ERROR_CANNOT_LOAD_STRING (Word)(626)
|
||||
#define ERROR_KEY_NOT_FOUND (Word)(627)
|
||||
#define ERROR_DISCONNECTION (Word)(628)
|
||||
#define ERROR_REMOTE_DISCONNECTION (Word)(629)
|
||||
#define ERROR_HARDWARE_FAILURE (Word)(630)
|
||||
#define ERROR_USER_DISCONNECTION (Word)(631)
|
||||
#define ERROR_INVALID_SIZE (Word)(632)
|
||||
#define ERROR_PORT_NOT_AVAILABLE (Word)(633)
|
||||
#define ERROR_CANNOT_PROJECT_CLIENT (Word)(634)
|
||||
#define ERROR_UNKNOWN (Word)(635)
|
||||
#define ERROR_WRONG_DEVICE_ATTACHED (Word)(636)
|
||||
#define ERROR_BAD_STRING (Word)(637)
|
||||
#define ERROR_REQUEST_TIMEOUT (Word)(638)
|
||||
#define ERROR_CANNOT_GET_LANA (Word)(639)
|
||||
#define ERROR_NETBIOS_ERROR (Word)(640)
|
||||
#define ERROR_SERVER_OUT_OF_RESOURCES (Word)(641)
|
||||
#define ERROR_NAME_EXISTS_ON_NET (Word)(642)
|
||||
#define ERROR_SERVER_GENERAL_NET_FAILURE (Word)(643)
|
||||
#define WARNING_MSG_ALIAS_NOT_ADDED (Word)(644)
|
||||
#define ERROR_AUTH_INTERNAL (Word)(645)
|
||||
#define ERROR_RESTRICTED_LOGON_HOURS (Word)(646)
|
||||
#define ERROR_ACCT_DISABLED (Word)(647)
|
||||
#define ERROR_PASSWD_EXPIRED (Word)(648)
|
||||
#define ERROR_NO_DIALIN_PERMISSION (Word)(649)
|
||||
#define ERROR_SERVER_NOT_RESPONDING (Word)(650)
|
||||
#define ERROR_FROM_DEVICE (Word)(651)
|
||||
#define ERROR_UNRECOGNIZED_RESPONSE (Word)(652)
|
||||
#define ERROR_MACRO_NOT_FOUND (Word)(653)
|
||||
#define ERROR_MACRO_NOT_DEFINED (Word)(654)
|
||||
#define ERROR_MESSAGE_MACRO_NOT_FOUND (Word)(655)
|
||||
#define ERROR_DEFAULTOFF_MACRO_NOT_FOUND (Word)(656)
|
||||
#define ERROR_FILE_COULD_NOT_BE_OPENED (Word)(657)
|
||||
#define ERROR_DEVICENAME_TOO_LONG (Word)(658)
|
||||
#define ERROR_DEVICENAME_NOT_FOUND (Word)(659)
|
||||
#define ERROR_NO_RESPONSES (Word)(660)
|
||||
#define ERROR_NO_COMMAND_FOUND (Word)(661)
|
||||
#define ERROR_WRONG_KEY_SPECIFIED (Word)(662)
|
||||
#define ERROR_UNKNOWN_DEVICE_TYPE (Word)(663)
|
||||
#define ERROR_ALLOCATING_MEMORY (Word)(664)
|
||||
#define ERROR_PORT_NOT_CONFIGURED (Word)(665)
|
||||
#define ERROR_DEVICE_NOT_READY (Word)(666)
|
||||
#define ERROR_READING_INI_FILE (Word)(667)
|
||||
#define ERROR_NO_CONNECTION (Word)(668)
|
||||
#define ERROR_BAD_USAGE_IN_INI_FILE (Word)(669)
|
||||
#define ERROR_READING_SECTIONNAME (Word)(670)
|
||||
#define ERROR_READING_DEVICETYPE (Word)(671)
|
||||
#define ERROR_READING_DEVICENAME (Word)(672)
|
||||
#define ERROR_READING_USAGE (Word)(673)
|
||||
#define ERROR_READING_MAXCONNECTBPS (Word)(674)
|
||||
#define ERROR_READING_MAXCARRIERBPS (Word)(675)
|
||||
#define ERROR_LINE_BUSY (Word)(676)
|
||||
#define ERROR_VOICE_ANSWER (Word)(677)
|
||||
#define ERROR_NO_ANSWER (Word)(678)
|
||||
#define ERROR_NO_CARRIER (Word)(679)
|
||||
#define ERROR_NO_DIALTONE (Word)(680)
|
||||
#define ERROR_IN_COMMAND (Word)(681)
|
||||
#define ERROR_WRITING_SECTIONNAME (Word)(682)
|
||||
#define ERROR_WRITING_DEVICETYPE (Word)(683)
|
||||
#define ERROR_WRITING_DEVICENAME (Word)(684)
|
||||
#define ERROR_WRITING_MAXCONNECTBPS (Word)(685)
|
||||
#define ERROR_WRITING_MAXCARRIERBPS (Word)(686)
|
||||
#define ERROR_WRITING_USAGE (Word)(687)
|
||||
#define ERROR_WRITING_DEFAULTOFF (Word)(688)
|
||||
#define ERROR_READING_DEFAULTOFF (Word)(689)
|
||||
#define ERROR_EMPTY_INI_FILE (Word)(690)
|
||||
#define ERROR_AUTHENTICATION_FAILURE (Word)(691)
|
||||
#define ERROR_PORT_OR_DEVICE (Word)(692)
|
||||
#define ERROR_NOT_BINARY_MACRO (Word)(693)
|
||||
#define ERROR_DCB_NOT_FOUND (Word)(694)
|
||||
#define ERROR_STATE_MACHINES_NOT_STARTED (Word)(695)
|
||||
#define ERROR_STATE_MACHINES_ALREADY_STARTED (Word)(696)
|
||||
#define ERROR_PARTIAL_RESPONSE_LOOPING (Word)(697)
|
||||
#define ERROR_UNKNOWN_RESPONSE_KEY (Word)(698)
|
||||
#define ERROR_RECV_BUF_FULL (Word)(699)
|
||||
#define ERROR_CMD_TOO_LONG (Word)(700)
|
||||
#define ERROR_UNSUPPORTED_BPS (Word)(701)
|
||||
#define ERROR_UNEXPECTED_RESPONSE (Word)(702)
|
||||
#define ERROR_INTERACTIVE_MODE (Word)(703)
|
||||
#define ERROR_BAD_CALLBACK_NUMBER (Word)(704)
|
||||
#define ERROR_INVALID_AUTH_STATE (Word)(705)
|
||||
#define ERROR_WRITING_INITBPS (Word)(706)
|
||||
#define ERROR_X25_DIAGNOSTIC (Word)(707)
|
||||
#define ERROR_ACCT_EXPIRED (Word)(708)
|
||||
#define ERROR_CHANGING_PASSWORD (Word)(709)
|
||||
#define ERROR_OVERRUN (Word)(710)
|
||||
#define ERROR_RASMAN_CANNOT_INITIALIZE (Word)(711)
|
||||
#define ERROR_BIPLEX_PORT_NOT_AVAILABLE (Word)(712)
|
||||
#define ERROR_NO_ACTIVE_ISDN_LINES (Word)(713)
|
||||
#define ERROR_NO_ISDN_CHANNELS_AVAILABLE (Word)(714)
|
||||
#define ERROR_TOO_MANY_LINE_ERRORS (Word)(715)
|
||||
#define ERROR_IP_CONFIGURATION (Word)(716)
|
||||
#define ERROR_NO_IP_ADDRESSES (Word)(717)
|
||||
#define ERROR_PPP_TIMEOUT (Word)(718)
|
||||
#define ERROR_PPP_REMOTE_TERMINATED (Word)(719)
|
||||
#define ERROR_PPP_NO_PROTOCOLS_CONFIGURED (Word)(720)
|
||||
#define ERROR_PPP_NO_RESPONSE (Word)(721)
|
||||
#define ERROR_PPP_INVALID_PACKET (Word)(722)
|
||||
#define ERROR_PHONE_NUMBER_TOO_LONG (Word)(723)
|
||||
#define ERROR_IPXCP_NO_DIALOUT_CONFIGURED (Word)(724)
|
||||
#define ERROR_IPXCP_NO_DIALIN_CONFIGURED (Word)(725)
|
||||
#define ERROR_IPXCP_DIALOUT_ALREADY_ACTIVE (Word)(726)
|
||||
#define ERROR_ACCESSING_TCPCFGDLL (Word)(727)
|
||||
#define ERROR_NO_IP_RAS_ADAPTER (Word)(728)
|
||||
#define ERROR_SLIP_REQUIRES_IP (Word)(729)
|
||||
#define ERROR_PROJECTION_NOT_COMPLETE (Word)(730)
|
||||
#define ERROR_PROTOCOL_NOT_CONFIGURED (Word)(731)
|
||||
#define ERROR_PPP_NOT_CONVERGING (Word)(732)
|
||||
#define ERROR_PPP_CP_REJECTED (Word)(733)
|
||||
#define ERROR_PPP_LCP_TERMINATED (Word)(734)
|
||||
#define ERROR_PPP_REQUIRED_ADDRESS_REJECTED (Word)(735)
|
||||
#define ERROR_PPP_NCP_TERMINATED (Word)(736)
|
||||
#define ERROR_PPP_LOOPBACK_DETECTED (Word)(737)
|
||||
#define ERROR_PPP_NO_ADDRESS_ASSIGNED (Word)(738)
|
||||
#define ERROR_CANNOT_USE_LOGON_CREDENTIALS (Word)(739)
|
||||
#define ERROR_TAPI_CONFIGURATION (Word)(740)
|
||||
#define ERROR_NO_LOCAL_ENCRYPTION (Word)(741)
|
||||
#define ERROR_NO_REMOTE_ENCRYPTION (Word)(742)
|
||||
#define ERROR_REMOTE_REQUIRES_ENCRYPTION (Word)(743)
|
||||
#define ERROR_IPXCP_NET_NUMBER_CONFLICT (Word)(744)
|
||||
#define ERROR_INVALID_SMM (Word)(745)
|
||||
#define ERROR_SMM_UNINITIALIZED (Word)(746)
|
||||
#define ERROR_NO_MAC_FOR_PORT (Word)(747)
|
||||
#define ERROR_SMM_TIMEOUT (Word)(748)
|
||||
#define ERROR_BAD_PHONE_NUMBER (Word)(749)
|
||||
#define ERROR_WRONG_MODULE (Word)(750)
|
||||
#define RASBASEEND (Word)(750)
|
||||
#define RAS_MaxAreaCode (Byte)(10)
|
||||
#define RAS_MaxPadType (Byte)(32)
|
||||
#define RAS_MaxX25Address (Byte)(200)
|
||||
#define RAS_MaxFacilities (Byte)(200)
|
||||
#define RAS_MaxUserData (Byte)(200)
|
||||
#define RASEO_UseCountryAndAreaCodes (Byte)(1)
|
||||
#define RASEO_SpecificIpAddr (Byte)(2)
|
||||
#define RASEO_SpecificNameServers (Byte)(4)
|
||||
#define RASEO_IpHeaderCompression (Byte)(8)
|
||||
#define RASEO_RemoteDefaultGateway (Byte)(16)
|
||||
#define RASEO_DisableLcpExtensions (Byte)(32)
|
||||
#define RASEO_TerminalBeforeDial (Byte)(64)
|
||||
#define RASEO_TerminalAfterDial (Byte)(128)
|
||||
#define RASEO_ModemLights (Word)(256)
|
||||
#define RASEO_SwCompression (Word)(512)
|
||||
#define RASEO_RequireEncryptedPw (Word)(1024)
|
||||
#define RASEO_RequireMsEncryptedPw (Word)(2048)
|
||||
#define RASEO_RequireDataEncryption (Word)(4096)
|
||||
#define RASEO_NetworkLogon (Word)(8192)
|
||||
#define RASEO_UseLogonCredentials (Word)(16384)
|
||||
#define RASEO_PromoteAlternates (int)(32768)
|
||||
#define RASNP_Netbeui (Byte)(1)
|
||||
#define RASNP_Ipx (Byte)(2)
|
||||
#define RASNP_Ip (Byte)(4)
|
||||
#define RASFP_Ppp (Byte)(1)
|
||||
#define RASFP_Slip (Byte)(2)
|
||||
#define RASFP_Ras (Byte)(4)
|
||||
#define RASDT_Modem "modem"
|
||||
#define RASDT_Isdn "isdn"
|
||||
#define RASDT_X25 "x25"
|
||||
#define MaxEntries (Byte)(100)
|
||||
extern PACKAGE void __fastcall Register(void);
|
||||
extern "C" int __stdcall RasCreatePhonebookEntryA(HWND hwndParentWindow, char * lpszPhoneBook);
|
||||
extern "C" int __stdcall RasCreatePhonebookEntryW(HWND hwndParentWindow, wchar_t * lpszPhoneBook);
|
||||
extern "C" int __stdcall RasCreatePhonebookEntry(HWND hwndParentWindow, char * lpszPhoneBook);
|
||||
extern "C" int __stdcall RasDialA(LPRasDialExtensions lpRasDialExt, char * lpszPhoneBook, TRasDialParamsA
|
||||
¶ms, int dwNotifierType, void * lpNotifier, int &rasconn);
|
||||
extern "C" int __stdcall RasDialW(LPRasDialExtensions lpRasDialExt, wchar_t * lpszPhoneBook, TRasDialParamsW
|
||||
¶ms, int dwNotifierType, void * lpNotifier, int &rasconn);
|
||||
extern "C" int __stdcall RasDial(LPRasDialExtensions lpRasDialExt, char * lpszPhoneBook, TRasDialParamsA
|
||||
¶ms, int dwNotifierType, void * lpNotifier, int &rasconn);
|
||||
extern "C" int __stdcall RasEditPhonebookEntryA(HWND hwndParentWindow, char * lpszPhoneBook, char *
|
||||
lpszEntryName);
|
||||
extern "C" int __stdcall RasEditPhonebookEntryW(HWND hwndParentWindow, wchar_t * lpszPhoneBook, wchar_t *
|
||||
lpszEntryName);
|
||||
extern "C" int __stdcall RasEditPhonebookEntry(HWND hwndParentWindow, char * lpszPhoneBook, char * lpszEntryName
|
||||
);
|
||||
extern "C" int __stdcall RasEnumConnectionsA(LPRasConnA RasConnArray, int &lpcb, int &lpcConnections
|
||||
);
|
||||
extern "C" int __stdcall RasEnumConnectionsW(LPRasConnW RasConnArray, int &lpcb, int &lpcConnections
|
||||
);
|
||||
extern "C" int __stdcall RasEnumConnections(LPRasConn RasConnArray, int &lpcb, int &lpcConnections);
|
||||
|
||||
extern "C" int __stdcall RasEnumEntriesA(char * Reserved, char * lpszPhoneBook, LPRasEntryNameA entrynamesArray
|
||||
, int &lpcb, int &lpcEntries);
|
||||
extern "C" int __stdcall RasEnumEntriesW(wchar_t * reserved, wchar_t * lpszPhoneBook, LPRasEntryNameW
|
||||
entrynamesArray, int &lpcb, int &lpcEntries);
|
||||
extern "C" int __stdcall RasEnumEntries(char * reserved, char * lpszPhoneBook, LPRasEntryName entrynamesArray
|
||||
, int &lpcb, int &lpcEntries);
|
||||
extern "C" int __stdcall RasGetConnectStatusA(int hConn, TRasConnStatusA &lpStatus);
|
||||
extern "C" int __stdcall RasGetConnectStatusW(int hConn, TRasConnStatusW &lpStatus);
|
||||
extern "C" int __stdcall RasGetConnectStatus(int hConn, TRasConnStatusA &lpStatus);
|
||||
extern "C" int __stdcall RasGetEntryDialParamsA(char * lpszPhoneBook, TRasDialParamsA &lpDialParams,
|
||||
BOOL &lpfPassword);
|
||||
extern "C" int __stdcall RasGetEntryDialParamsW(wchar_t * lpszPhoneBook, TRasDialParamsW &lpDialParams
|
||||
, BOOL &lpfPassword);
|
||||
extern "C" int __stdcall RasGetEntryDialParams(char * lpszPhoneBook, TRasDialParamsA &lpDialParams,
|
||||
BOOL &lpfPassword);
|
||||
extern "C" int __stdcall RasGetErrorStringA(int errorValue, char * erroString, int cBufSize);
|
||||
extern "C" int __stdcall RasGetErrorStringW(int errorValue, wchar_t * erroString, int cBufSize);
|
||||
extern "C" int __stdcall RasGetErrorString(int errorValue, char * erroString, int cBufSize);
|
||||
extern "C" int __stdcall RasGetProjectionInfoA(int hConn, int rasproj, void * lpProjection, int &lpcb
|
||||
);
|
||||
extern "C" int __stdcall RasGetProjectionInfoW(int hConn, int rasproj, void * lpProjection, int &lpcb
|
||||
);
|
||||
extern "C" int __stdcall RasGetProjectionInfo(int hConn, int rasproj, void * lpProjection, int &lpcb
|
||||
);
|
||||
extern "C" int __stdcall RasHangUpA(int hConn);
|
||||
extern "C" int __stdcall RasHangUpW(int hConn);
|
||||
extern "C" int __stdcall RasHangUp(int hConn);
|
||||
extern "C" int __stdcall RasSetEntryDialParamsA(char * lpszPhoneBook, TRasDialParamsA &lpDialParams,
|
||||
BOOL fRemovePassword);
|
||||
extern "C" int __stdcall RasSetEntryDialParamsW(wchar_t * lpszPhoneBook, TRasDialParamsW &lpDialParams
|
||||
, BOOL fRemovePassword);
|
||||
extern "C" int __stdcall RasSetEntryDialParams(char * lpszPhoneBook, TRasDialParamsA &lpDialParams,
|
||||
BOOL fRemovePassword);
|
||||
extern "C" int __stdcall RasValidateEntryNameA(char * lpszPhonebook, char * szEntry);
|
||||
extern "C" int __stdcall RasValidateEntryNameW(wchar_t * lpszPhonebook, wchar_t * szEntry);
|
||||
extern "C" int __stdcall RasRenameEntryA(char * lpszPhonebook, char * szEntryOld, char * szEntryNew)
|
||||
;
|
||||
extern "C" int __stdcall RasRenameEntryW(wchar_t * lpszPhonebook, wchar_t * szEntryOld, wchar_t * szEntryNew
|
||||
);
|
||||
extern "C" int __stdcall RasDeleteEntryA(char * lpszPhonebook, char * szEntry);
|
||||
extern "C" int __stdcall RasDeleteEntryW(wchar_t * lpszPhonebook, wchar_t * szEntry);
|
||||
extern "C" int __stdcall RasGetEntryPropertiesA(char * lpszPhonebook, char * szEntry, void * lpbEntry
|
||||
, int &lpdwEntrySize, void * lpbDeviceInfo, int &lpdwDeviceInfoSize);
|
||||
extern "C" int __stdcall RasGetEntryPropertiesW(wchar_t * lpszPhonebook, wchar_t * szEntry, void * lpbEntry
|
||||
, int &lpdwEntrySize, void * lpbDeviceInfo, int &lpdwDeviceInfoSize);
|
||||
extern "C" int __stdcall RasSetEntryPropertiesA(char * lpszPhonebook, char * szEntry, void * lpbEntry
|
||||
, int dwEntrySize, void * lpbDeviceInfo, int dwDeviceInfoSize);
|
||||
extern "C" int __stdcall RasSetEntryPropertiesW(wchar_t * lpszPhonebook, wchar_t * szEntry, void * lpbEntry
|
||||
, int dwEntrySize, void * lpbDeviceInfo, int dwDeviceInfoSize);
|
||||
extern "C" int __stdcall RasGetCountryInfoA(TRasCtryInfo &lpCtryInfo, int &lpdwSize);
|
||||
extern "C" int __stdcall RasGetCountryInfoW(TRasCtryInfo &lpCtryInfo, int &lpdwSize);
|
||||
extern "C" int __stdcall RasEnumDevicesA(LPRasDevInfoA lpBuff, int &lpcbSize, int &lpcDevices);
|
||||
extern "C" int __stdcall RasEnumDevicesW(LPRasDevInfoW lpBuff, int &lpcbSize, int &lpcDevices);
|
||||
extern PACKAGE int __stdcall RasValidateEntryName(char * lpszPhonebook, char * szEntry);
|
||||
extern PACKAGE int __stdcall RasRenameEntry(char * lpszPhonebook, char * szEntryOld, char * szEntryNew
|
||||
);
|
||||
extern PACKAGE int __stdcall RasDeleteEntry(char * lpszPhonebook, char * szEntry);
|
||||
extern PACKAGE int __stdcall RasGetEntryProperties(char * lpszPhonebook, char * szEntry, void * lpbEntry
|
||||
, int &lpdwEntrySize, void * lpbDeviceInfo, int &lpdwDeviceInfoSize);
|
||||
extern PACKAGE int __stdcall RasSetEntryProperties(char * lpszPhonebook, char * szEntry, void * lpbEntry
|
||||
, int dwEntrySize, void * lpbDeviceInfo, int dwDeviceInfoSize);
|
||||
extern PACKAGE int __stdcall RasGetCountryInfo(TRasCtryInfo &lpCtryInfo, int &lpdwSize);
|
||||
extern PACKAGE int __stdcall RasEnumDevices(LPRasDevInfo lpBuff, int &lpcbSize, int &lpcDevices);
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasDial(LPRasDialExtensions lpRasDialExt, char * lpszPhoneBook, TRasDialParamsA
|
||||
¶ms, int dwNotifierType, void * lpNotifier, int &rasconn)
|
||||
{
|
||||
return RasDialW(lpRasDialExt, lpszPhoneBook, params, dwNotifierType, lpNotifier, rasconn);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasDial(LPRasDialExtensions lpRasDialExt, char * lpszPhoneBook, TRasDialParamsA
|
||||
¶ms, int dwNotifierType, void * lpNotifier, int &rasconn)
|
||||
{
|
||||
return RasDialA(lpRasDialExt, lpszPhoneBook, params, dwNotifierType, lpNotifier, rasconn);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasEnumConnections(LPRasConn RasConnArray, int &lpcb, int &lpcConnections)
|
||||
{
|
||||
return RasEnumConnectionsW(RasConnArray, lpcb, lpcConnections);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasEnumConnections(LPRasConn RasConnArray, int &lpcb, int &lpcConnections)
|
||||
{
|
||||
return RasEnumConnectionsA(RasConnArray, lpcb, lpcConnections);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasEnumEntries(char * reserved, char * lpszPhoneBook, LPRasEntryName entrynamesArray
|
||||
, int &lpcb, int &lpcEntries)
|
||||
{
|
||||
return RasEnumEntriesW(reserved, lpszPhoneBook, entrynamesArray, lpcb, lpcEntries);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasEnumEntries(char * reserved, char * lpszPhoneBook, LPRasEntryName entrynamesArray
|
||||
, int &lpcb, int &lpcEntries)
|
||||
{
|
||||
return RasEnumEntriesA(Reserved, lpszPhoneBook, entrynamesArray, lpcb, lpcEntries);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasGetConnectStatus(int hConn, TRasConnStatusA &lpStatus)
|
||||
{
|
||||
return RasGetConnectStatusW(hConn, lpStatus);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasGetConnectStatus(int hConn, TRasConnStatusA &lpStatus)
|
||||
{
|
||||
return RasGetConnectStatusA(hConn, lpStatus);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasGetErrorString(int errorValue, char * erroString, int cBufSize)
|
||||
{
|
||||
return RasGetErrorStringW(errorValue, erroString, cBufSize);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasGetErrorString(int errorValue, char * erroString, int cBufSize)
|
||||
{
|
||||
return RasGetErrorStringA(errorValue, erroString, cBufSize);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasHangUp(int hConn)
|
||||
{
|
||||
return RasHangUpW(hConn);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasHangUp(int hConn)
|
||||
{
|
||||
return RasHangUpA(hConn);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasGetProjectionInfo(int hConn, int rasproj, void * lpProjection, int &lpcb)
|
||||
{
|
||||
return RasGetProjectionInfoW(hConn, rasproj, lpProjection, lpcb);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasGetProjectionInfo(int hConn, int rasproj, void * lpProjection, int &lpcb)
|
||||
{
|
||||
return RasGetProjectionInfoA(hConn, rasproj, lpProjection, lpcb);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasCreatePhonebookEntry(HWND hwndParentWindow, char * lpszPhoneBook)
|
||||
{
|
||||
return RasCreatePhonebookEntryW(hwndParentWindow, lpszPhoneBook);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasCreatePhonebookEntry(HWND hwndParentWindow, char * lpszPhoneBook)
|
||||
{
|
||||
return RasCreatePhonebookEntryA(hwndParentWindow, lpszPhoneBook);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasEditPhonebookEntry(HWND hwndParentWindow, char * lpszPhoneBook, char * lpszEntryName
|
||||
)
|
||||
{
|
||||
return RasEditPhonebookEntryW(hwndParentWindow, lpszPhoneBook, lpszEntryName);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasEditPhonebookEntry(HWND hwndParentWindow, char * lpszPhoneBook, char * lpszEntryName
|
||||
)
|
||||
{
|
||||
return RasEditPhonebookEntryA(hwndParentWindow, lpszPhoneBook, lpszEntryName);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasSetEntryDialParams(char * lpszPhoneBook, TRasDialParamsA &lpDialParams, BOOL
|
||||
fRemovePassword)
|
||||
{
|
||||
return RasSetEntryDialParamsW(lpszPhoneBook, lpDialParams, fRemovePassword);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasSetEntryDialParams(char * lpszPhoneBook, TRasDialParamsA &lpDialParams, BOOL
|
||||
fRemovePassword)
|
||||
{
|
||||
return RasSetEntryDialParamsA(lpszPhoneBook, lpDialParams, fRemovePassword);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(UNICODE)
|
||||
inline int __stdcall RasGetEntryDialParams(char * lpszPhoneBook, TRasDialParamsA &lpDialParams, BOOL
|
||||
&lpfPassword)
|
||||
{
|
||||
return RasGetEntryDialParamsW(lpszPhoneBook, lpDialParams, lpfPassword);
|
||||
}
|
||||
#else
|
||||
inline int __stdcall RasGetEntryDialParams(char * lpszPhoneBook, TRasDialParamsA &lpDialParams, BOOL
|
||||
&lpfPassword)
|
||||
{
|
||||
return RasGetEntryDialParamsA(lpszPhoneBook, lpDialParams, lpfPassword);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
} /* namespace Dialup */
|
||||
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||
using namespace Dialup;
|
||||
#endif
|
||||
//-- end unit ----------------------------------------------------------------
|
||||
#endif // DialUp
|
1561
CDopping/DialUp/Dialup.pas
Normal file
1561
CDopping/DialUp/Dialup.pas
Normal file
File diff suppressed because it is too large
Load Diff
30
CDopping/Leeme.txt
Normal file
30
CDopping/Leeme.txt
Normal file
@ -0,0 +1,30 @@
|
||||
TElasticForm
|
||||
|
||||
Cracked By --- Sol Negro (c)---
|
||||
|
||||
Time to crack: 2 min.
|
||||
--- The most easy program, never cracked.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>??????
|
||||
Bytes changed:
|
||||
8B45FC
|
||||
33D2
|
||||
895060
|
||||
8B45FC
|
||||
F6402010
|
||||
75 <-----------[ EB ]
|
||||
37 bytes more down:
|
||||
75 <-----------[ EB ]
|
||||
|
||||
|
||||
<EFBFBD> How did I cracked the program ?
|
||||
|
||||
Easy, I built a program using that component, then I search the entry point to nags screen.
|
||||
I written down this asm instrucctions ( opcodes ) which it wasn't jump or call instruction.
|
||||
Do you remember this? .LIB or .DLL are mirrors of code in .EXE. WOOOOOUU,
|
||||
Searching this opcodes on .LIB or .DLL we can crack those files.
|
||||
|
||||
|
||||
<EFBFBD> Why is it this document in (bad) English ?
|
||||
|
||||
Easy, to DESpist: <20>Where are --Sol Negro--?
|
BIN
CDopping/QSElFrm.bpi
Normal file
BIN
CDopping/QSElFrm.bpi
Normal file
Binary file not shown.
BIN
CDopping/QSElFrm.bpl
Normal file
BIN
CDopping/QSElFrm.bpl
Normal file
Binary file not shown.
BIN
CDopping/QSElFrm.lib
Normal file
BIN
CDopping/QSElFrm.lib
Normal file
Binary file not shown.
BIN
CDopping/TElasticForm.zip
Normal file
BIN
CDopping/TElasticForm.zip
Normal file
Binary file not shown.
BIN
CDopping/Tb97/TB97.DCR
Normal file
BIN
CDopping/Tb97/TB97.DCR
Normal file
Binary file not shown.
7135
CDopping/Tb97/TB97.PAS
Normal file
7135
CDopping/Tb97/TB97.PAS
Normal file
File diff suppressed because it is too large
Load Diff
BIN
CDopping/Tb97/Tb97.OBJ
Normal file
BIN
CDopping/Tb97/Tb97.OBJ
Normal file
Binary file not shown.
BIN
CDopping/Tb97/Tb97.dcu
Normal file
BIN
CDopping/Tb97/Tb97.dcu
Normal file
Binary file not shown.
750
CDopping/Tb97/Tb97.hpp
Normal file
750
CDopping/Tb97/Tb97.hpp
Normal file
@ -0,0 +1,750 @@
|
||||
// Borland C++ Builder
|
||||
// Copyright (c) 1995, 1998 by Borland International
|
||||
// All rights reserved
|
||||
|
||||
// (DO NOT EDIT: machine generated header) 'TB97.pas' rev: 3.00
|
||||
|
||||
#ifndef TB97HPP
|
||||
#define TB97HPP
|
||||
#include <ExtCtrls.hpp>
|
||||
#include <StdCtrls.hpp>
|
||||
#include <Buttons.hpp>
|
||||
#include <Graphics.hpp>
|
||||
#include <Menus.hpp>
|
||||
#include <Forms.hpp>
|
||||
#include <Controls.hpp>
|
||||
#include <Classes.hpp>
|
||||
#include <Messages.hpp>
|
||||
#include <Windows.hpp>
|
||||
#include <SysInit.hpp>
|
||||
#include <System.hpp>
|
||||
|
||||
//-- user supplied -----------------------------------------------------------
|
||||
|
||||
namespace Tb97
|
||||
{
|
||||
//-- type declarations -------------------------------------------------------
|
||||
enum TDockBoundLinesValues { blTop, blBottom, blLeft, blRight };
|
||||
|
||||
typedef Set<TDockBoundLinesValues, blTop, blRight> TDockBoundLines;
|
||||
|
||||
enum TDockPosition { dpTop, dpBottom, dpLeft, dpRight };
|
||||
|
||||
enum TDockType { dtNotDocked, dtTopBottom, dtLeftRight };
|
||||
|
||||
typedef Set<TDockPosition, dpTop, dpRight> TDockableTo;
|
||||
|
||||
class DELPHICLASS TCustomToolWindow97;
|
||||
typedef void __fastcall (__closure *TInsertRemoveEvent)(System::TObject* Sender, bool Inserting, TCustomToolWindow97*
|
||||
Bar);
|
||||
|
||||
typedef void __fastcall (__closure *TRequestDockEvent)(System::TObject* Sender, TCustomToolWindow97*
|
||||
Bar, bool &Accept);
|
||||
|
||||
class DELPHICLASS TDock97;
|
||||
class PASCALIMPLEMENTATION TDock97 : public Controls::TCustomControl
|
||||
{
|
||||
typedef Controls::TCustomControl inherited;
|
||||
|
||||
private:
|
||||
TDockPosition FPosition;
|
||||
bool FAllowDrag;
|
||||
TDockBoundLines FBoundLines;
|
||||
Graphics::TBitmap* FBkg;
|
||||
Graphics::TBitmap* FBkgCache;
|
||||
bool FBkgTransparent;
|
||||
bool FBkgOnToolbars;
|
||||
bool FFixAlign;
|
||||
bool FLimitToOneRow;
|
||||
TInsertRemoveEvent FOnInsertRemoveBar;
|
||||
TRequestDockEvent FOnRequestDock;
|
||||
Classes::TNotifyEvent FOnResize;
|
||||
int DisableArrangeToolbars;
|
||||
Classes::TList* DockList;
|
||||
Classes::TList* RowSizes;
|
||||
void __fastcall SetAllowDrag(bool Value);
|
||||
void __fastcall SetBackground(Graphics::TBitmap* Value);
|
||||
void __fastcall SetBackgroundOnToolbars(bool Value);
|
||||
void __fastcall SetBackgroundTransparent(bool Value);
|
||||
void __fastcall SetBoundLines(TDockBoundLines Value);
|
||||
void __fastcall SetFixAlign(bool Value);
|
||||
void __fastcall SetPosition(TDockPosition Value);
|
||||
int __fastcall GetToolbarCount(void);
|
||||
TCustomToolWindow97* __fastcall GetToolbars(int Index);
|
||||
void __fastcall FreeRowInfo(void);
|
||||
int __fastcall GetRowOf(const int XY, bool &Before);
|
||||
int __fastcall GetDesignModeRowOf(const int XY);
|
||||
int __fastcall GetHighestRow(void);
|
||||
int __fastcall GetNumberOfToolbarsOnRow(const int Row, const TCustomToolWindow97* NotIncluding);
|
||||
void __fastcall RemoveBlankRows(void);
|
||||
void __fastcall InsertRowBefore(const int BeforeRow);
|
||||
void __fastcall BuildRowInfo(void);
|
||||
void __fastcall ChangeDockList(const bool Insert, const TCustomToolWindow97* Bar, const bool IsVisible
|
||||
);
|
||||
void __fastcall ChangeWidthHeight(const bool IsClientWidthAndHeight, int NewWidth, int NewHeight);
|
||||
void __fastcall ArrangeToolbars(void);
|
||||
void __fastcall DrawBackground(const HDC DC, const Windows::TRect &IntersectClippingRect, const Windows::PRect
|
||||
ExcludeClippingRect, const Windows::TRect &DrawRect);
|
||||
void __fastcall InvalidateBackgrounds(void);
|
||||
void __fastcall BackgroundChanged(System::TObject* Sender);
|
||||
bool __fastcall UsingBackground(void);
|
||||
HIDESBASE MESSAGE void __fastcall CMColorChanged(Messages::TMessage &Message);
|
||||
HIDESBASE MESSAGE void __fastcall CMSysColorChange(Messages::TMessage &Message);
|
||||
HIDESBASE MESSAGE void __fastcall WMMove(Messages::TWMMove &Message);
|
||||
HIDESBASE MESSAGE void __fastcall WMSize(Messages::TWMSize &Message);
|
||||
MESSAGE void __fastcall WMNCCalcSize(Messages::TWMNCCalcSize &Message);
|
||||
MESSAGE void __fastcall WMNCPaint(Messages::TMessage &Message);
|
||||
|
||||
protected:
|
||||
virtual void __fastcall AlignControls(Controls::TControl* AControl, Windows::TRect &Rect);
|
||||
DYNAMIC HPALETTE __fastcall GetPalette(void);
|
||||
virtual void __fastcall Loaded(void);
|
||||
virtual void __fastcall SetParent(Controls::TWinControl* AParent);
|
||||
virtual void __fastcall Paint(void);
|
||||
DYNAMIC void __fastcall VisibleChanging(void);
|
||||
|
||||
public:
|
||||
__fastcall virtual TDock97(Classes::TComponent* AOwner);
|
||||
virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
|
||||
__fastcall virtual ~TDock97(void);
|
||||
int __fastcall GetRowSize(const int Row, const TCustomToolWindow97* DefaultToolbar);
|
||||
__property int ToolbarCount = {read=GetToolbarCount, nodefault};
|
||||
__property TCustomToolWindow97* Toolbars[int Index] = {read=GetToolbars};
|
||||
|
||||
__published:
|
||||
__property bool AllowDrag = {read=FAllowDrag, write=SetAllowDrag, default=1};
|
||||
__property Graphics::TBitmap* Background = {read=FBkg, write=SetBackground};
|
||||
__property bool BackgroundOnToolbars = {read=FBkgOnToolbars, write=SetBackgroundOnToolbars, default=1
|
||||
};
|
||||
__property bool BackgroundTransparent = {read=FBkgTransparent, write=SetBackgroundTransparent, default=0
|
||||
};
|
||||
__property TDockBoundLines BoundLines = {read=FBoundLines, write=SetBoundLines, default=0};
|
||||
__property Color ;
|
||||
__property bool FixAlign = {read=FFixAlign, write=SetFixAlign, default=0};
|
||||
__property bool LimitToOneRow = {read=FLimitToOneRow, write=FLimitToOneRow, default=0};
|
||||
__property PopupMenu ;
|
||||
__property TDockPosition Position = {read=FPosition, write=SetPosition, default=0};
|
||||
__property TInsertRemoveEvent OnInsertRemoveBar = {read=FOnInsertRemoveBar, write=FOnInsertRemoveBar
|
||||
};
|
||||
__property TRequestDockEvent OnRequestDock = {read=FOnRequestDock, write=FOnRequestDock};
|
||||
__property Classes::TNotifyEvent OnResize = {read=FOnResize, write=FOnResize};
|
||||
public:
|
||||
/* TWinControl.CreateParented */ __fastcall TDock97(HWND ParentWindow) : Controls::TCustomControl(ParentWindow
|
||||
) { }
|
||||
|
||||
};
|
||||
|
||||
enum TToolWindowArrangeType { atNone, atMoveControls, atMoveControlsAndResize };
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct TToolWindowParams
|
||||
{
|
||||
bool CallAlignControls;
|
||||
bool ResizeEightCorner;
|
||||
bool ResizeClipCursor;
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
typedef int __fastcall (*TPositionReadIntProc)(const System::AnsiString ToolbarName, const System::AnsiString
|
||||
Value, const int Default, const void * ExtraData);
|
||||
|
||||
typedef System::AnsiString __fastcall (*TPositionReadStringProc)(const System::AnsiString ToolbarName
|
||||
, const System::AnsiString Value, const System::AnsiString Default, const void * ExtraData);
|
||||
|
||||
typedef void __fastcall (*TPositionWriteIntProc)(const System::AnsiString ToolbarName, const System::AnsiString
|
||||
Value, const int Data, const void * ExtraData);
|
||||
|
||||
typedef void __fastcall (*TPositionWriteStringProc)(const System::AnsiString ToolbarName, const System::AnsiString
|
||||
Value, const System::AnsiString Data, const void * ExtraData);
|
||||
|
||||
class PASCALIMPLEMENTATION TCustomToolWindow97 : public Controls::TCustomControl
|
||||
{
|
||||
typedef Controls::TCustomControl inherited;
|
||||
|
||||
private:
|
||||
int FDockPos;
|
||||
int FDockRow;
|
||||
bool FDocked;
|
||||
TDock97* FDockedTo;
|
||||
TDock97* FDefaultDock;
|
||||
Classes::TNotifyEvent FOnClose;
|
||||
Classes::TNotifyEvent FOnDockChanged;
|
||||
Classes::TNotifyEvent FOnDockChanging;
|
||||
Classes::TNotifyEvent FOnRecreated;
|
||||
Classes::TNotifyEvent FOnRecreating;
|
||||
Classes::TNotifyEvent FOnResize;
|
||||
Classes::TNotifyEvent FOnVisibleChanged;
|
||||
bool FActivateParent;
|
||||
bool FHideWhenInactive;
|
||||
bool FCloseButton;
|
||||
bool FFullSize;
|
||||
bool FResizable;
|
||||
bool FDragHandle;
|
||||
TDockableTo FDockableTo;
|
||||
TToolWindowParams FParams;
|
||||
int FUpdatingBounds;
|
||||
int FDisableArrangeControls;
|
||||
int FHidden;
|
||||
bool FArrangeNeeded;
|
||||
bool FInactiveCaption;
|
||||
tagPOINT FFloatingTopLeft;
|
||||
Controls::TWinControl* FloatParent;
|
||||
Forms::TForm* MDIParentForm;
|
||||
bool NotOnScreen;
|
||||
bool CloseButtonDown;
|
||||
void __fastcall SetCloseButton(bool Value);
|
||||
void __fastcall SetDefaultDock(TDock97* Value);
|
||||
void __fastcall SetDockedTo(TDock97* Value);
|
||||
void __fastcall SetDockPos(int Value);
|
||||
void __fastcall SetDockRow(int Value);
|
||||
void __fastcall SetDragHandle(bool Value);
|
||||
void __fastcall SetFullSize(bool Value);
|
||||
void __fastcall SetResizable(bool Value);
|
||||
void __fastcall MoveOnScreen(const bool OnlyIfFullyOffscreen);
|
||||
void __fastcall CustomArrangeControls(const TToolWindowArrangeType ArrangeType, const TDock97* WasDockedTo
|
||||
, const TDock97* DockingTo, tagPOINT &NewClientSize);
|
||||
void __fastcall ArrangeControls(void);
|
||||
void __fastcall DrawDraggingOutline(const HDC DC, const Windows::PRect NewRect, const Windows::PRect
|
||||
OldRect, const bool NewDocking, const bool OldDocking);
|
||||
/* class method */ static bool __fastcall NewMainWindowHook(System::TMetaClass* vmt, Messages::TMessage
|
||||
&Message);
|
||||
void __fastcall BeginMoving(const int InitX, const int InitY);
|
||||
void __fastcall BeginSizing(const int HitTestValue, bool &Accept, Windows::TRect &NewRect);
|
||||
void __fastcall DrawFloatingNCArea(const HRGN Clip, const bool RedrawBorder, const bool RedrawCaption
|
||||
, const bool RedrawCloseButton);
|
||||
void __fastcall DrawDockedNCArea(const HRGN Clip);
|
||||
void __fastcall InvalidateDockedNCArea(void);
|
||||
void __fastcall ValidateDockedNCArea(void);
|
||||
void __fastcall SetNotOnScreen(const bool Value);
|
||||
void __fastcall SetInactiveCaption(const bool Value);
|
||||
HIDESBASE MESSAGE void __fastcall CMColorChanged(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall CMTextChanged(Messages::TMessage &Message);
|
||||
HIDESBASE MESSAGE void __fastcall CMShowingChanged(Messages::TMessage &Message);
|
||||
HIDESBASE MESSAGE void __fastcall CMVisibleChanged(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall WMActivate(Messages::TWMActivate &Message);
|
||||
MESSAGE void __fastcall WMClose(Messages::TWMNoParams &Message);
|
||||
MESSAGE void __fastcall WMGetMinMaxInfo(Messages::TWMGetMinMaxInfo &Message);
|
||||
HIDESBASE MESSAGE void __fastcall WMMove(Messages::TWMMove &Message);
|
||||
MESSAGE void __fastcall WMMouseActivate(Messages::TWMMouseActivate &Message);
|
||||
MESSAGE void __fastcall WMNCCalcSize(Messages::TWMNCCalcSize &Message);
|
||||
HIDESBASE MESSAGE void __fastcall WMNCHitTest(Messages::TWMNCHitTest &Message);
|
||||
HIDESBASE MESSAGE void __fastcall WMNCLButtonDown(Messages::TWMNCHitMessage &Message);
|
||||
MESSAGE void __fastcall WMNCPaint(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall WMTB97PaintDockedNCArea(Messages::TMessage &Message);
|
||||
HIDESBASE MESSAGE void __fastcall WMSize(Messages::TWMSize &Message);
|
||||
|
||||
protected:
|
||||
__property bool ActivateParent = {read=FActivateParent, write=FActivateParent, default=1};
|
||||
__property Color ;
|
||||
__property bool CloseButton = {read=FCloseButton, write=SetCloseButton, default=1};
|
||||
__property TDock97* DefaultDock = {read=FDefaultDock, write=SetDefaultDock};
|
||||
__property TDockableTo DockableTo = {read=FDockableTo, write=FDockableTo, default=15};
|
||||
__property TDock97* DockedTo = {read=FDockedTo, write=SetDockedTo};
|
||||
__property int DockPos = {read=FDockPos, write=SetDockPos, default=-1};
|
||||
__property int DockRow = {read=FDockRow, write=SetDockRow, default=0};
|
||||
__property bool DragHandle = {read=FDragHandle, write=SetDragHandle, default=1};
|
||||
__property bool FullSize = {read=FFullSize, write=SetFullSize, default=0};
|
||||
__property bool HideWhenInactive = {read=FHideWhenInactive, write=FHideWhenInactive, default=1};
|
||||
__property TToolWindowParams Params = {read=FParams};
|
||||
__property bool Resizable = {read=FResizable, write=SetResizable, default=1};
|
||||
__property Classes::TNotifyEvent OnClose = {read=FOnClose, write=FOnClose};
|
||||
__property Classes::TNotifyEvent OnDockChanged = {read=FOnDockChanged, write=FOnDockChanged};
|
||||
__property Classes::TNotifyEvent OnDockChanging = {read=FOnDockChanging, write=FOnDockChanging};
|
||||
__property Classes::TNotifyEvent OnRecreated = {read=FOnRecreated, write=FOnRecreated};
|
||||
__property Classes::TNotifyEvent OnRecreating = {read=FOnRecreating, write=FOnRecreating};
|
||||
__property Classes::TNotifyEvent OnResize = {read=FOnResize, write=FOnResize};
|
||||
__property Classes::TNotifyEvent OnVisibleChanged = {read=FOnVisibleChanged, write=FOnVisibleChanged
|
||||
};
|
||||
virtual void __fastcall AlignControls(Controls::TControl* AControl, Windows::TRect &Rect);
|
||||
virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
|
||||
DYNAMIC HPALETTE __fastcall GetPalette(void);
|
||||
virtual void __fastcall Loaded(void);
|
||||
DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X,
|
||||
int Y);
|
||||
virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation
|
||||
);
|
||||
virtual void __fastcall Paint(void);
|
||||
DYNAMIC bool __fastcall PaletteChanged(bool Foreground);
|
||||
virtual void __fastcall SetParent(Controls::TWinControl* AParent);
|
||||
DYNAMIC void __fastcall ReadPositionData(const TPositionReadIntProc ReadIntProc, const TPositionReadStringProc
|
||||
ReadStringProc, const void * ExtraData);
|
||||
DYNAMIC void __fastcall DoneReadingPositionData(void);
|
||||
DYNAMIC void __fastcall WritePositionData(const TPositionWriteIntProc WriteIntProc, const TPositionWriteStringProc
|
||||
WriteStringProc, const void * ExtraData);
|
||||
DYNAMIC void __fastcall GetParams(TToolWindowParams &Params);
|
||||
DYNAMIC void __fastcall ResizeBegin(int HitTestValue);
|
||||
DYNAMIC void __fastcall ResizeTrack(Windows::TRect &Rect, const Windows::TRect &OrigRect);
|
||||
DYNAMIC void __fastcall ResizeEnd(bool Accept);
|
||||
virtual void __fastcall GetBarSize(int &ASize, const TDockType DockType) = 0;
|
||||
void __fastcall GetDockRowSize(int &AHeightOrWidth);
|
||||
virtual void __fastcall GetMinimumSize(int &AClientWidth, int &AClientHeight) = 0;
|
||||
DYNAMIC void __fastcall InitializeOrdering(void);
|
||||
virtual void __fastcall OrderControls(const bool CanMoveControls, const TDock97* WasDockedTo, const
|
||||
TDock97* DockingTo, tagPOINT &NewClientSize) = 0;
|
||||
virtual void __fastcall SizeChanging(const int AWidth, const int AHeight);
|
||||
|
||||
public:
|
||||
__property bool Docked = {read=FDocked, nodefault};
|
||||
__fastcall virtual TCustomToolWindow97(Classes::TComponent* AOwner);
|
||||
__fastcall virtual ~TCustomToolWindow97(void);
|
||||
virtual void __fastcall SetBounds(int ALeft, int ATop, int AWidth, int AHeight);
|
||||
void __fastcall BeginUpdate(void);
|
||||
void __fastcall EndUpdate(void);
|
||||
|
||||
__published:
|
||||
__property Height = {stored=false};
|
||||
__property Width = {stored=false};
|
||||
__property ClientHeight = {stored=true};
|
||||
__property ClientWidth = {stored=true};
|
||||
public:
|
||||
/* TWinControl.CreateParented */ __fastcall TCustomToolWindow97(HWND ParentWindow) : Controls::TCustomControl(
|
||||
ParentWindow) { }
|
||||
|
||||
};
|
||||
|
||||
class DELPHICLASS TCustomToolbar97;
|
||||
class PASCALIMPLEMENTATION TCustomToolbar97 : public Tb97::TCustomToolWindow97
|
||||
{
|
||||
typedef Tb97::TCustomToolWindow97 inherited;
|
||||
|
||||
private:
|
||||
int FFloatingRightX;
|
||||
void *SizeData;
|
||||
Classes::TList* SlaveInfo;
|
||||
Classes::TList* GroupInfo;
|
||||
Classes::TList* LineSeps;
|
||||
Classes::TList* OrderList;
|
||||
int __fastcall GetOrderIndex(Controls::TControl* Control);
|
||||
void __fastcall SetOrderIndex(Controls::TControl* Control, int Value);
|
||||
bool __fastcall ShouldBeVisible(const Controls::TControl* Control, const bool LeftOrRight, const bool
|
||||
SetIt);
|
||||
void __fastcall FreeGroupInfo(const Classes::TList* List);
|
||||
void __fastcall BuildGroupInfo(const Classes::TList* List, const bool TranslateSlave, const TDockType
|
||||
OldDockType, const TDockType NewDockType);
|
||||
HIDESBASE MESSAGE void __fastcall CMControlListChange(Controls::TCMControlListChange &Message);
|
||||
|
||||
protected:
|
||||
virtual void __fastcall Paint(void);
|
||||
DYNAMIC void __fastcall ReadPositionData(const TPositionReadIntProc ReadIntProc, const TPositionReadStringProc
|
||||
ReadStringProc, const void * ExtraData);
|
||||
DYNAMIC void __fastcall WritePositionData(const TPositionWriteIntProc WriteIntProc, const TPositionWriteStringProc
|
||||
WriteStringProc, const void * ExtraData);
|
||||
DYNAMIC void __fastcall GetParams(TToolWindowParams &Params);
|
||||
DYNAMIC void __fastcall ResizeBegin(int HitTestValue);
|
||||
DYNAMIC void __fastcall ResizeTrack(Windows::TRect &Rect, const Windows::TRect &OrigRect);
|
||||
DYNAMIC void __fastcall ResizeEnd(bool Accept);
|
||||
virtual void __fastcall GetBarSize(int &ASize, const TDockType DockType);
|
||||
virtual void __fastcall GetMinimumSize(int &AClientWidth, int &AClientHeight);
|
||||
DYNAMIC void __fastcall InitializeOrdering(void);
|
||||
virtual void __fastcall OrderControls(const bool CanMoveControls, const TDock97* WasDockedTo, const
|
||||
TDock97* DockingTo, tagPOINT &NewClientSize);
|
||||
|
||||
public:
|
||||
__property int OrderIndex[Controls::TControl* Control] = {read=GetOrderIndex, write=SetOrderIndex};
|
||||
|
||||
__fastcall virtual TCustomToolbar97(Classes::TComponent* AOwner);
|
||||
__fastcall virtual ~TCustomToolbar97(void);
|
||||
void __fastcall SetSlaveControl(const Controls::TControl* ATopBottom, const Controls::TControl* ALeftRight
|
||||
);
|
||||
|
||||
__published:
|
||||
__property ClientHeight = {stored=false};
|
||||
__property ClientWidth = {stored=false};
|
||||
public:
|
||||
/* TWinControl.CreateParented */ __fastcall TCustomToolbar97(HWND ParentWindow) : Tb97::TCustomToolWindow97(
|
||||
ParentWindow) { }
|
||||
|
||||
};
|
||||
|
||||
class DELPHICLASS TToolbar97;
|
||||
class PASCALIMPLEMENTATION TToolbar97 : public Tb97::TCustomToolbar97
|
||||
{
|
||||
typedef Tb97::TCustomToolbar97 inherited;
|
||||
|
||||
__published:
|
||||
__property ActivateParent ;
|
||||
__property Caption ;
|
||||
__property Color ;
|
||||
__property CloseButton ;
|
||||
__property DefaultDock ;
|
||||
__property DockableTo ;
|
||||
__property DockedTo ;
|
||||
__property DockPos ;
|
||||
__property DockRow ;
|
||||
__property DragHandle ;
|
||||
__property FullSize ;
|
||||
__property HideWhenInactive ;
|
||||
__property ParentShowHint ;
|
||||
__property PopupMenu ;
|
||||
__property ShowHint ;
|
||||
__property TabOrder ;
|
||||
__property Visible ;
|
||||
__property OnClose ;
|
||||
__property OnDragDrop ;
|
||||
__property OnDragOver ;
|
||||
__property OnRecreated ;
|
||||
__property OnRecreating ;
|
||||
__property OnDockChanged ;
|
||||
__property OnDockChanging ;
|
||||
__property OnResize ;
|
||||
__property OnVisibleChanged ;
|
||||
public:
|
||||
/* TCustomToolbar97.Create */ __fastcall virtual TToolbar97(Classes::TComponent* AOwner) : Tb97::TCustomToolbar97(
|
||||
AOwner) { }
|
||||
/* TCustomToolbar97.Destroy */ __fastcall virtual ~TToolbar97(void) { }
|
||||
|
||||
public:
|
||||
/* TWinControl.CreateParented */ __fastcall TToolbar97(HWND ParentWindow) : Tb97::TCustomToolbar97(
|
||||
ParentWindow) { }
|
||||
|
||||
};
|
||||
|
||||
class DELPHICLASS TToolWindow97;
|
||||
class PASCALIMPLEMENTATION TToolWindow97 : public Tb97::TCustomToolWindow97
|
||||
{
|
||||
typedef Tb97::TCustomToolWindow97 inherited;
|
||||
|
||||
private:
|
||||
int FMinClientWidth;
|
||||
int FMinClientHeight;
|
||||
int FBarHeight;
|
||||
int FBarWidth;
|
||||
|
||||
protected:
|
||||
virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
|
||||
DYNAMIC void __fastcall ReadPositionData(const TPositionReadIntProc ReadIntProc, const TPositionReadStringProc
|
||||
ReadStringProc, const void * ExtraData);
|
||||
DYNAMIC void __fastcall WritePositionData(const TPositionWriteIntProc WriteIntProc, const TPositionWriteStringProc
|
||||
WriteStringProc, const void * ExtraData);
|
||||
virtual void __fastcall GetBarSize(int &ASize, const TDockType DockType);
|
||||
virtual void __fastcall GetMinimumSize(int &AClientWidth, int &AClientHeight);
|
||||
virtual void __fastcall OrderControls(const bool CanMoveControls, const TDock97* WasDockedTo, const
|
||||
TDock97* DockingTo, tagPOINT &NewClientSize);
|
||||
virtual void __fastcall SizeChanging(const int AWidth, const int AHeight);
|
||||
|
||||
public:
|
||||
__fastcall virtual TToolWindow97(Classes::TComponent* AOwner);
|
||||
|
||||
__published:
|
||||
__property ActivateParent ;
|
||||
__property Caption ;
|
||||
__property Color ;
|
||||
__property CloseButton ;
|
||||
__property DefaultDock ;
|
||||
__property DockableTo ;
|
||||
__property DockedTo ;
|
||||
__property DockPos ;
|
||||
__property DockRow ;
|
||||
__property DragHandle ;
|
||||
__property FullSize ;
|
||||
__property HideWhenInactive ;
|
||||
__property int MinClientHeight = {read=FMinClientHeight, write=FMinClientHeight, default=32};
|
||||
__property int MinClientWidth = {read=FMinClientWidth, write=FMinClientWidth, default=32};
|
||||
__property ParentShowHint ;
|
||||
__property PopupMenu ;
|
||||
__property Resizable ;
|
||||
__property ShowHint ;
|
||||
__property TabOrder ;
|
||||
__property Visible ;
|
||||
__property OnClose ;
|
||||
__property OnDragDrop ;
|
||||
__property OnDragOver ;
|
||||
__property OnDockChanged ;
|
||||
__property OnDockChanging ;
|
||||
__property OnRecreated ;
|
||||
__property OnRecreating ;
|
||||
__property OnResize ;
|
||||
__property OnVisibleChanged ;
|
||||
public:
|
||||
/* TCustomToolWindow97.Destroy */ __fastcall virtual ~TToolWindow97(void) { }
|
||||
|
||||
public:
|
||||
/* TWinControl.CreateParented */ __fastcall TToolWindow97(HWND ParentWindow) : Tb97::TCustomToolWindow97(
|
||||
ParentWindow) { }
|
||||
|
||||
};
|
||||
|
||||
typedef int TToolbarSepSize;
|
||||
|
||||
class DELPHICLASS TToolbarSep97;
|
||||
class PASCALIMPLEMENTATION TToolbarSep97 : public Controls::TGraphicControl
|
||||
{
|
||||
typedef Controls::TGraphicControl inherited;
|
||||
|
||||
private:
|
||||
bool FBlank;
|
||||
TToolbarSepSize FSizeHorz;
|
||||
TToolbarSepSize FSizeVert;
|
||||
void __fastcall SetBlank(bool Value);
|
||||
void __fastcall SetSizeHorz(TToolbarSepSize Value);
|
||||
void __fastcall SetSizeVert(TToolbarSepSize Value);
|
||||
|
||||
protected:
|
||||
DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X,
|
||||
int Y);
|
||||
virtual void __fastcall Paint(void);
|
||||
virtual void __fastcall SetParent(Controls::TWinControl* AParent);
|
||||
|
||||
public:
|
||||
__fastcall virtual TToolbarSep97(Classes::TComponent* AOwner);
|
||||
|
||||
__published:
|
||||
__property Width = {stored=false};
|
||||
__property Height = {stored=false};
|
||||
__property bool Blank = {read=FBlank, write=SetBlank, default=0};
|
||||
__property TToolbarSepSize SizeHorz = {read=FSizeHorz, write=SetSizeHorz, default=6};
|
||||
__property TToolbarSepSize SizeVert = {read=FSizeVert, write=SetSizeVert, default=6};
|
||||
public:
|
||||
/* TGraphicControl.Destroy */ __fastcall virtual ~TToolbarSep97(void) { }
|
||||
|
||||
};
|
||||
|
||||
enum TButtonDisplayMode { dmBoth, dmGlyphOnly, dmTextOnly };
|
||||
|
||||
enum TButtonState97 { bsUp, bsDisabled, bsDown, bsExclusive, bsMouseIn };
|
||||
|
||||
typedef Shortint TNumGlyphs97;
|
||||
|
||||
class DELPHICLASS TToolbarButton97;
|
||||
class PASCALIMPLEMENTATION TToolbarButton97 : public Controls::TGraphicControl
|
||||
{
|
||||
typedef Controls::TGraphicControl inherited;
|
||||
|
||||
private:
|
||||
bool FAllowAllUp;
|
||||
TButtonDisplayMode FDisplayMode;
|
||||
bool FDown;
|
||||
bool FDropdownArrow;
|
||||
bool FDropdownCombo;
|
||||
Menus::TPopupMenu* FDropdownMenu;
|
||||
bool FFlat;
|
||||
void *FGlyph;
|
||||
int FGroupIndex;
|
||||
TButtonLayout FLayout;
|
||||
int FMargin;
|
||||
Forms::TModalResult FModalResult;
|
||||
bool FNoBorder;
|
||||
bool FOldDisabledStyle;
|
||||
bool FOpaque;
|
||||
bool FRepeating;
|
||||
int FRepeatDelay;
|
||||
int FRepeatInterval;
|
||||
bool FShowBorderWhenInactive;
|
||||
int FSpacing;
|
||||
bool FWordWrap;
|
||||
Classes::TNotifyEvent FOnMouseEnter;
|
||||
Classes::TNotifyEvent FOnMouseExit;
|
||||
bool FInClick;
|
||||
bool FMouseInControl;
|
||||
bool FMouseIsDown;
|
||||
bool FMenuIsDown;
|
||||
bool FHooked;
|
||||
bool FUsesDropdown;
|
||||
Extctrls::TTimer* FRepeatTimer;
|
||||
void __fastcall GlyphChanged(System::TObject* Sender);
|
||||
void __fastcall UpdateExclusive(void);
|
||||
void __fastcall SetAllowAllUp(bool Value);
|
||||
bool __fastcall GetCallDormant(void);
|
||||
void __fastcall SetCallDormant(bool Value);
|
||||
void __fastcall SetDown(bool Value);
|
||||
void __fastcall SetDisplayMode(TButtonDisplayMode Value);
|
||||
void __fastcall SetDropdownArrow(bool Value);
|
||||
void __fastcall SetDropdownCombo(bool Value);
|
||||
void __fastcall SetDropdownMenu(Menus::TPopupMenu* Value);
|
||||
void __fastcall SetFlat(bool Value);
|
||||
Graphics::TBitmap* __fastcall GetGlyph(void);
|
||||
void __fastcall SetGlyph(Graphics::TBitmap* Value);
|
||||
Graphics::TBitmap* __fastcall GetGlyphMask(void);
|
||||
void __fastcall SetGlyphMask(Graphics::TBitmap* Value);
|
||||
void __fastcall SetGroupIndex(int Value);
|
||||
void __fastcall SetLayout(Buttons::TButtonLayout Value);
|
||||
void __fastcall SetMargin(int Value);
|
||||
void __fastcall SetNoBorder(bool Value);
|
||||
TNumGlyphs97 __fastcall GetNumGlyphs(void);
|
||||
void __fastcall SetNumGlyphs(TNumGlyphs97 Value);
|
||||
void __fastcall SetOldDisabledStyle(bool Value);
|
||||
void __fastcall SetOpaque(bool Value);
|
||||
void __fastcall SetSpacing(int Value);
|
||||
void __fastcall SetWordWrap(bool Value);
|
||||
void __fastcall UpdateTracking(void);
|
||||
void __fastcall Redraw(const bool Erase);
|
||||
bool __fastcall PointInButton(int X, int Y);
|
||||
void __fastcall ButtonMouseTimerHandler(System::TObject* Sender);
|
||||
void __fastcall RepeatTimerHandler(System::TObject* Sender);
|
||||
/* class method */ static bool __fastcall DeactivateHook(System::TMetaClass* vmt, Messages::TMessage
|
||||
&Message);
|
||||
HIDESBASE MESSAGE void __fastcall WMLButtonDblClk(Messages::TWMMouse &Message);
|
||||
HIDESBASE MESSAGE void __fastcall CMEnabledChanged(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall CMButtonPressed(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall CMDialogChar(Messages::TWMKey &Message);
|
||||
HIDESBASE MESSAGE void __fastcall CMFontChanged(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall CMTextChanged(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall CMSysColorChange(Messages::TMessage &Message);
|
||||
HIDESBASE MESSAGE void __fastcall CMMouseLeave(Messages::TMessage &Message);
|
||||
HIDESBASE MESSAGE void __fastcall WMCancelMode(Messages::TWMNoParams &Message);
|
||||
|
||||
protected:
|
||||
TButtonState97 FState;
|
||||
DYNAMIC HPALETTE __fastcall GetPalette(void);
|
||||
virtual void __fastcall Loaded(void);
|
||||
virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation
|
||||
);
|
||||
DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X,
|
||||
int Y);
|
||||
DYNAMIC void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y);
|
||||
DYNAMIC void __fastcall MouseUp(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int
|
||||
Y);
|
||||
virtual void __fastcall Paint(void);
|
||||
|
||||
public:
|
||||
__property bool CallDormant = {read=GetCallDormant, write=SetCallDormant, nodefault};
|
||||
__fastcall virtual TToolbarButton97(Classes::TComponent* AOwner);
|
||||
__fastcall virtual ~TToolbarButton97(void);
|
||||
DYNAMIC void __fastcall Click(void);
|
||||
void __fastcall MouseEntered(void);
|
||||
void __fastcall MouseLeft(void);
|
||||
|
||||
__published:
|
||||
__property bool AllowAllUp = {read=FAllowAllUp, write=SetAllowAllUp, default=0};
|
||||
__property int GroupIndex = {read=FGroupIndex, write=SetGroupIndex, default=0};
|
||||
__property TButtonDisplayMode DisplayMode = {read=FDisplayMode, write=SetDisplayMode, default=0};
|
||||
__property bool Down = {read=FDown, write=SetDown, default=0};
|
||||
__property DragCursor ;
|
||||
__property DragMode ;
|
||||
__property bool DropdownArrow = {read=FDropdownArrow, write=SetDropdownArrow, default=1};
|
||||
__property bool DropdownCombo = {read=FDropdownCombo, write=SetDropdownCombo, default=0};
|
||||
__property Menus::TPopupMenu* DropdownMenu = {read=FDropdownMenu, write=SetDropdownMenu};
|
||||
__property Caption ;
|
||||
__property Enabled ;
|
||||
__property bool Flat = {read=FFlat, write=SetFlat, default=1};
|
||||
__property Font ;
|
||||
__property Graphics::TBitmap* Glyph = {read=GetGlyph, write=SetGlyph};
|
||||
__property Graphics::TBitmap* GlyphMask = {read=GetGlyphMask, write=SetGlyphMask};
|
||||
__property Buttons::TButtonLayout Layout = {read=FLayout, write=SetLayout, default=0};
|
||||
__property int Margin = {read=FMargin, write=SetMargin, default=-1};
|
||||
__property Forms::TModalResult ModalResult = {read=FModalResult, write=FModalResult, default=0};
|
||||
__property bool NoBorder = {read=FNoBorder, write=SetNoBorder, default=0};
|
||||
__property TNumGlyphs97 NumGlyphs = {read=GetNumGlyphs, write=SetNumGlyphs, default=1};
|
||||
__property bool OldDisabledStyle = {read=FOldDisabledStyle, write=SetOldDisabledStyle, default=0};
|
||||
__property bool Opaque = {read=FOpaque, write=SetOpaque, default=1};
|
||||
__property ParentFont ;
|
||||
__property ParentShowHint ;
|
||||
__property bool Repeating = {read=FRepeating, write=FRepeating, default=0};
|
||||
__property int RepeatDelay = {read=FRepeatDelay, write=FRepeatDelay, default=400};
|
||||
__property int RepeatInterval = {read=FRepeatInterval, write=FRepeatInterval, default=100};
|
||||
__property bool ShowBorderWhenInactive = {read=FShowBorderWhenInactive, write=FShowBorderWhenInactive
|
||||
, default=0};
|
||||
__property ShowHint ;
|
||||
__property int Spacing = {read=FSpacing, write=SetSpacing, default=4};
|
||||
__property Visible ;
|
||||
__property bool WordWrap = {read=FWordWrap, write=SetWordWrap, default=0};
|
||||
__property OnClick ;
|
||||
__property OnDblClick ;
|
||||
__property OnDragDrop ;
|
||||
__property OnDragOver ;
|
||||
__property OnEndDrag ;
|
||||
__property OnMouseDown ;
|
||||
__property Classes::TNotifyEvent OnMouseEnter = {read=FOnMouseEnter, write=FOnMouseEnter};
|
||||
__property Classes::TNotifyEvent OnMouseExit = {read=FOnMouseExit, write=FOnMouseExit};
|
||||
__property OnMouseMove ;
|
||||
__property OnMouseUp ;
|
||||
__property OnStartDrag ;
|
||||
};
|
||||
|
||||
class DELPHICLASS TEdit97;
|
||||
class PASCALIMPLEMENTATION TEdit97 : public Stdctrls::TCustomEdit
|
||||
{
|
||||
typedef Stdctrls::TCustomEdit inherited;
|
||||
|
||||
private:
|
||||
bool MouseInControl;
|
||||
void __fastcall RedrawBorder(const HRGN Clip);
|
||||
void __fastcall NewAdjustHeight(void);
|
||||
HIDESBASE MESSAGE void __fastcall CMEnabledChanged(Messages::TMessage &Message);
|
||||
HIDESBASE MESSAGE void __fastcall CMFontChanged(Messages::TMessage &Message);
|
||||
HIDESBASE MESSAGE void __fastcall CMMouseEnter(Messages::TMessage &Message);
|
||||
HIDESBASE MESSAGE void __fastcall CMMouseLeave(Messages::TMessage &Message);
|
||||
HIDESBASE MESSAGE void __fastcall WMSetFocus(Messages::TWMSetFocus &Message);
|
||||
HIDESBASE MESSAGE void __fastcall WMKillFocus(Messages::TWMKillFocus &Message);
|
||||
MESSAGE void __fastcall WMNCCalcSize(Messages::TWMNCCalcSize &Message);
|
||||
MESSAGE void __fastcall WMNCPaint(Messages::TMessage &Message);
|
||||
|
||||
protected:
|
||||
virtual void __fastcall Loaded(void);
|
||||
|
||||
public:
|
||||
__fastcall virtual TEdit97(Classes::TComponent* AOwner);
|
||||
|
||||
__published:
|
||||
__property CharCase ;
|
||||
__property DragCursor ;
|
||||
__property DragMode ;
|
||||
__property Enabled ;
|
||||
__property Font ;
|
||||
__property HideSelection ;
|
||||
__property ImeMode ;
|
||||
__property ImeName ;
|
||||
__property MaxLength ;
|
||||
__property OEMConvert ;
|
||||
__property ParentColor ;
|
||||
__property ParentCtl3D ;
|
||||
__property ParentFont ;
|
||||
__property ParentShowHint ;
|
||||
__property PasswordChar ;
|
||||
__property PopupMenu ;
|
||||
__property ReadOnly ;
|
||||
__property ShowHint ;
|
||||
__property TabOrder ;
|
||||
__property TabStop ;
|
||||
__property Text ;
|
||||
__property Visible ;
|
||||
__property OnChange ;
|
||||
__property OnClick ;
|
||||
__property OnDblClick ;
|
||||
__property OnDragDrop ;
|
||||
__property OnDragOver ;
|
||||
__property OnEndDrag ;
|
||||
__property OnEnter ;
|
||||
__property OnExit ;
|
||||
__property OnKeyDown ;
|
||||
__property OnKeyPress ;
|
||||
__property OnKeyUp ;
|
||||
__property OnMouseDown ;
|
||||
__property OnMouseMove ;
|
||||
__property OnMouseUp ;
|
||||
__property OnStartDrag ;
|
||||
public:
|
||||
/* TWinControl.CreateParented */ __fastcall TEdit97(HWND ParentWindow) : Stdctrls::TCustomEdit(ParentWindow
|
||||
) { }
|
||||
/* TWinControl.Destroy */ __fastcall virtual ~TEdit97(void) { }
|
||||
|
||||
};
|
||||
|
||||
//-- var, const, procedure ---------------------------------------------------
|
||||
#define Toolbar97Version "1.63"
|
||||
#define WM_TB97DoneCreating (Word)(6062)
|
||||
#define WM_TB97DoneCreating_Magic (int)(1940230388)
|
||||
#define WM_TB97PaintDockedNCArea (Word)(6063)
|
||||
extern PACKAGE TToolbarButton97* ButtonMouseInControl;
|
||||
extern PACKAGE void __fastcall Register(void);
|
||||
extern PACKAGE void __fastcall AddFloatingNCAreaToRect(Windows::TRect &R, const bool Resizable);
|
||||
extern PACKAGE TDockType __fastcall GetDockTypeOf(const TDock97* Control);
|
||||
extern PACKAGE void __fastcall CustomLoadToolbarPositions(const Forms::TForm* Form, const TPositionReadIntProc
|
||||
ReadIntProc, const TPositionReadStringProc ReadStringProc, const void * ExtraData);
|
||||
extern PACKAGE void __fastcall CustomSaveToolbarPositions(const Forms::TForm* Form, const TPositionWriteIntProc
|
||||
WriteIntProc, const TPositionWriteStringProc WriteStringProc, const void * ExtraData);
|
||||
extern PACKAGE void __fastcall IniLoadToolbarPositions(const Forms::TForm* Form, const System::AnsiString
|
||||
Filename);
|
||||
extern PACKAGE void __fastcall IniSaveToolbarPositions(const Forms::TForm* Form, const System::AnsiString
|
||||
Filename);
|
||||
extern PACKAGE void __fastcall RegLoadToolbarPositions(const Forms::TForm* Form, const System::AnsiString
|
||||
BaseRegistryKey);
|
||||
extern PACKAGE void __fastcall RegSaveToolbarPositions(const Forms::TForm* Form, const System::AnsiString
|
||||
BaseRegistryKey);
|
||||
|
||||
} /* namespace Tb97 */
|
||||
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||
using namespace Tb97;
|
||||
#endif
|
||||
//-- end unit ----------------------------------------------------------------
|
||||
#endif // TB97
|
272
CDopping/elastfrm.hpp
Normal file
272
CDopping/elastfrm.hpp
Normal file
@ -0,0 +1,272 @@
|
||||
// Borland C++ Builder
|
||||
// Copyright (c) 1995, 1998 by Borland International
|
||||
// All rights reserved
|
||||
|
||||
// (DO NOT EDIT: machine generated header) 'ElastFrm.pas' rev: 3.00
|
||||
|
||||
#ifndef ElastFrmHPP
|
||||
#define ElastFrmHPP
|
||||
#include <TypInfo.hpp>
|
||||
#include <FileCtrl.hpp>
|
||||
#include <Grids.hpp>
|
||||
#include <ComCtrls.hpp>
|
||||
#include <StdCtrls.hpp>
|
||||
#include <ExtCtrls.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
#include <Forms.hpp>
|
||||
#include <Controls.hpp>
|
||||
#include <Graphics.hpp>
|
||||
#include <Classes.hpp>
|
||||
#include <Messages.hpp>
|
||||
#include <Windows.hpp>
|
||||
#include <SysUtils.hpp>
|
||||
#include <SysInit.hpp>
|
||||
#include <System.hpp>
|
||||
|
||||
//-- user supplied -----------------------------------------------------------
|
||||
|
||||
namespace Elastfrm
|
||||
{
|
||||
//-- type declarations -------------------------------------------------------
|
||||
typedef int TArrayInteger[16383];
|
||||
|
||||
typedef TArrayInteger *pTArrayInteger;
|
||||
|
||||
class DELPHICLASS TFrame;
|
||||
class PASCALIMPLEMENTATION TFrame : public System::TObject
|
||||
{
|
||||
typedef System::TObject inherited;
|
||||
|
||||
public:
|
||||
int left;
|
||||
int width;
|
||||
int top;
|
||||
int height;
|
||||
Graphics::TFont* font;
|
||||
double fXResize;
|
||||
double fYResize;
|
||||
double fFResize;
|
||||
bool bStatusBar;
|
||||
TArrayInteger *ColumnWidths;
|
||||
int ColumnWidthsMax;
|
||||
TArrayInteger *PanelWidths;
|
||||
int PanelWidthsMax;
|
||||
int InitFontSize;
|
||||
int InitTitleFontSize;
|
||||
int FontSizeBeforeMax;
|
||||
int DefaultRowHeight;
|
||||
int ButtonHeight;
|
||||
int ButtonWidth;
|
||||
float BtnAspect;
|
||||
__fastcall TFrame(void);
|
||||
__fastcall virtual ~TFrame(void);
|
||||
void __fastcall preInitialize(Controls::TControl* aControl);
|
||||
void __fastcall DBGridInitialize(Controls::TControl* aControl, double ScreenCorrectionH, double ScreenCorrectionV
|
||||
);
|
||||
void __fastcall initialize(double ScreenCorrectionH, double ScreenCorrectionV, double PixelsCorrection
|
||||
, double PurePixelsCorrection, Controls::TControl* aControl);
|
||||
void __fastcall resize(bool ElasticH, bool ElasticV, bool ElasticF, int FormClientWidth, int FormClientHeight
|
||||
, int cW, int cH, int cF, double FontCorrection, double ScreenCorrectionH, double ScreenCorrectionV
|
||||
, double PixelsCorrection, Controls::TControl* aControl);
|
||||
};
|
||||
|
||||
typedef TFrame* TFrameArray[16383];
|
||||
|
||||
typedef TFrameArray *pTFrameArray;
|
||||
|
||||
class DELPHICLASS TMyControl;
|
||||
class PASCALIMPLEMENTATION TMyControl : public Controls::TControl
|
||||
{
|
||||
typedef Controls::TControl inherited;
|
||||
|
||||
public:
|
||||
/* TControl.Create */ __fastcall virtual TMyControl(Classes::TComponent* AOwner) : Controls::TControl(
|
||||
AOwner) { }
|
||||
/* TControl.Destroy */ __fastcall virtual ~TMyControl(void) { }
|
||||
|
||||
};
|
||||
|
||||
class DELPHICLASS TMyWinControl;
|
||||
class PASCALIMPLEMENTATION TMyWinControl : public Controls::TWinControl
|
||||
{
|
||||
typedef Controls::TWinControl inherited;
|
||||
|
||||
public:
|
||||
/* TWinControl.Create */ __fastcall virtual TMyWinControl(Classes::TComponent* AOwner) : Controls::
|
||||
TWinControl(AOwner) { }
|
||||
/* TWinControl.CreateParented */ __fastcall TMyWinControl(HWND ParentWindow) : Controls::TWinControl(
|
||||
ParentWindow) { }
|
||||
/* TWinControl.Destroy */ __fastcall virtual ~TMyWinControl(void) { }
|
||||
|
||||
};
|
||||
|
||||
class DELPHICLASS TMyCustomGrid;
|
||||
class PASCALIMPLEMENTATION TMyCustomGrid : public Grids::TCustomGrid
|
||||
{
|
||||
typedef Grids::TCustomGrid inherited;
|
||||
|
||||
public:
|
||||
/* TCustomGrid.Create */ __fastcall virtual TMyCustomGrid(Classes::TComponent* AOwner) : Grids::TCustomGrid(
|
||||
AOwner) { }
|
||||
/* TCustomGrid.Destroy */ __fastcall virtual ~TMyCustomGrid(void) { }
|
||||
|
||||
public:
|
||||
/* TWinControl.CreateParented */ __fastcall TMyCustomGrid(HWND ParentWindow) : Grids::TCustomGrid(ParentWindow
|
||||
) { }
|
||||
|
||||
};
|
||||
|
||||
class DELPHICLASS TElasticForm;
|
||||
class PASCALIMPLEMENTATION TElasticForm : public Classes::TComponent
|
||||
{
|
||||
typedef Classes::TComponent inherited;
|
||||
|
||||
private:
|
||||
void *OldWndProc;
|
||||
void *NewWndProc;
|
||||
void *OldMDIClientWndProc;
|
||||
void *NewMDIClientWndProc;
|
||||
bool FHorz;
|
||||
bool FVert;
|
||||
bool FElasticFont;
|
||||
int fResizeCounter;
|
||||
int cW;
|
||||
int cH;
|
||||
int cF;
|
||||
int cWc;
|
||||
int cHc;
|
||||
int cW0;
|
||||
int cH0;
|
||||
int cF0;
|
||||
int L0;
|
||||
int T0;
|
||||
bool bFirstTime;
|
||||
TFrameArray *fFrames;
|
||||
int fDesignScreenWidth;
|
||||
int fDesignScreenHeight;
|
||||
int fDesignPixelsPerInch;
|
||||
Extctrls::TTimer* fDesignTimer;
|
||||
int fDesignFormWidth;
|
||||
int fDesignFormHeight;
|
||||
int fDesignFormClientWidth;
|
||||
int fDesignFormClientHeight;
|
||||
int fDesignFormLeft;
|
||||
int fDesignFormTop;
|
||||
bool fManualPosition;
|
||||
double fManualLeft;
|
||||
double fManualTop;
|
||||
bool fManualSize;
|
||||
double fManualWidth;
|
||||
double fManualHeight;
|
||||
int fScreenWidth;
|
||||
int fScreenHeight;
|
||||
int fPixelsPerInch;
|
||||
double fScreenCorrectionH;
|
||||
double fScreenCorrectionV;
|
||||
double fPixelsCorrection;
|
||||
Classes::TList* fList;
|
||||
int FTotalControls;
|
||||
int FInitTotalControls;
|
||||
Extctrls::TImage* fBkGrndImage;
|
||||
bool FPictureAssigned;
|
||||
int fMaximizedWidth;
|
||||
int fMaximizedHeight;
|
||||
int fMaximizedPosX;
|
||||
int fMaximizedPosY;
|
||||
int fMinimumTrackWidth;
|
||||
int fMinimumTrackHeight;
|
||||
int fMaximumTrackWidth;
|
||||
int fMaximumTrackHeight;
|
||||
TPosition fOwnerFormPosition;
|
||||
bool bBeforeShow;
|
||||
bool bWasVisible[1001];
|
||||
bool bMustShow;
|
||||
bool bFirstFormResize;
|
||||
bool bOnTheScreen;
|
||||
TFormBorderStyle fBorderStyle;
|
||||
bool bFormStartsMaximized;
|
||||
bool bMaintainProportions;
|
||||
bool bIncreasing;
|
||||
Graphics::TFont* fFont;
|
||||
bool bDisableResize;
|
||||
bool bAfterMaximize;
|
||||
bool bDBGridSelfResize;
|
||||
void __fastcall FindAllControls(Controls::TControl* ofMyControl);
|
||||
int __fastcall FormHandle(void);
|
||||
int __fastcall MDIClientFormHandle(void);
|
||||
void __fastcall NewWndMethod(Messages::TMessage &Msg);
|
||||
void __fastcall NewMDIClientWndMethod(Messages::TMessage &Msg);
|
||||
bool __fastcall InList(Classes::TList* Container, Controls::TControl* aControl);
|
||||
void __fastcall Timer(System::TObject* Sender);
|
||||
int __fastcall DefinedMaxLeft(void);
|
||||
int __fastcall DefinedMaxTop(void);
|
||||
void __fastcall InitializeForm(void);
|
||||
void __fastcall ResizeFormMaintainingProportions(void);
|
||||
void __fastcall SetFont(Graphics::TFont* aFont);
|
||||
void __fastcall TilePicture(HDC DC);
|
||||
void __fastcall SetImage(Extctrls::TImage* value);
|
||||
|
||||
public:
|
||||
int GlobalInt;
|
||||
Classes::TList* ExcludeList;
|
||||
bool ShowMaximized;
|
||||
int MessageNumber;
|
||||
__fastcall virtual TElasticForm(Classes::TComponent* AOwner);
|
||||
__fastcall virtual ~TElasticForm(void);
|
||||
void __fastcall ReSizeForm(void);
|
||||
void __fastcall UpdateSize(Controls::TControl* aControl);
|
||||
void __fastcall EnforceMaximized(void);
|
||||
void __fastcall AddToExcludeList(Controls::TControl* aControl);
|
||||
void __fastcall DisableResize(void);
|
||||
void __fastcall EnableResize(void);
|
||||
void __fastcall ReInitializeResizing(void);
|
||||
__property bool ManualPosition = {read=fManualPosition, write=fManualPosition, nodefault};
|
||||
__property bool ManualSize = {read=fManualSize, write=fManualSize, nodefault};
|
||||
__property double ManualLeft = {read=fManualLeft, write=fManualLeft};
|
||||
__property double ManualTop = {read=fManualTop, write=fManualTop};
|
||||
__property double ManualWidth = {read=fManualWidth, write=fManualWidth};
|
||||
__property double ManualHeight = {read=fManualHeight, write=fManualHeight};
|
||||
|
||||
__published:
|
||||
__property bool ElasticHorizontal = {read=FHorz, write=FHorz, default=1};
|
||||
__property bool ElasticVertical = {read=FVert, write=FVert, default=1};
|
||||
__property bool ElasticFont = {read=FElasticFont, write=FElasticFont, default=1};
|
||||
__property int DesignScreenWidth = {read=fDesignScreenWidth, write=fDesignScreenWidth, nodefault};
|
||||
__property int DesignScreenHeight = {read=fDesignScreenHeight, write=fDesignScreenHeight, nodefault
|
||||
};
|
||||
__property int DesignPixelsPerInch = {read=fDesignPixelsPerInch, write=fDesignPixelsPerInch, nodefault
|
||||
};
|
||||
__property int MaximizedPosX = {read=fMaximizedPosX, write=fMaximizedPosX, default=0};
|
||||
__property int MaximizedPosY = {read=fMaximizedPosY, write=fMaximizedPosY, default=0};
|
||||
__property int MinimumTrackWidth = {read=fMinimumTrackWidth, write=fMinimumTrackWidth, default=0};
|
||||
__property int MinimumTrackHeight = {read=fMinimumTrackHeight, write=fMinimumTrackHeight, default=0
|
||||
};
|
||||
__property int MaximumTrackWidth = {read=fMaximumTrackWidth, write=fMaximumTrackWidth, default=0};
|
||||
__property int MaximumTrackHeight = {read=fMaximumTrackHeight, write=fMaximumTrackHeight, default=0
|
||||
};
|
||||
__property int DesignFormWidth = {read=fDesignFormWidth, write=fDesignFormWidth, nodefault};
|
||||
__property int DesignFormHeight = {read=fDesignFormHeight, write=fDesignFormHeight, nodefault};
|
||||
__property int DesignFormClientWidth = {read=fDesignFormClientWidth, write=fDesignFormClientWidth,
|
||||
nodefault};
|
||||
__property int DesignFormClientHeight = {read=fDesignFormClientHeight, write=fDesignFormClientHeight
|
||||
, nodefault};
|
||||
__property int DesignFormLeft = {read=fDesignFormLeft, write=fDesignFormLeft, nodefault};
|
||||
__property int DesignFormTop = {read=fDesignFormTop, write=fDesignFormTop, nodefault};
|
||||
__property bool MaintainProportions = {read=bMaintainProportions, write=bMaintainProportions, default=0
|
||||
};
|
||||
__property Graphics::TFont* Font = {read=fFont, write=SetFont};
|
||||
__property Extctrls::TImage* BkGrndImage = {read=fBkGrndImage, write=SetImage};
|
||||
__property bool DBGridSelfResize = {read=bDBGridSelfResize, write=bDBGridSelfResize, default=0};
|
||||
};
|
||||
|
||||
//-- var, const, procedure ---------------------------------------------------
|
||||
extern PACKAGE int LabelLines;
|
||||
extern PACKAGE bool fDBGridSelfResize;
|
||||
extern PACKAGE void __fastcall Register(void);
|
||||
|
||||
} /* namespace Elastfrm */
|
||||
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||
using namespace Elastfrm;
|
||||
#endif
|
||||
//-- end unit ----------------------------------------------------------------
|
||||
#endif // ElastFrm
|
1
CDopping/jpg3s/BUILDNO.TXT
Normal file
1
CDopping/jpg3s/BUILDNO.TXT
Normal file
@ -0,0 +1 @@
|
||||
This is build number 1525
|
BIN
CDopping/jpg3s/Copia de MWAJPGC3.BPL
Normal file
BIN
CDopping/jpg3s/Copia de MWAJPGC3.BPL
Normal file
Binary file not shown.
11
CDopping/jpg3s/CrackingLib.txt
Normal file
11
CDopping/jpg3s/CrackingLib.txt
Normal file
@ -0,0 +1,11 @@
|
||||
Libreria JPEG3s
|
||||
|
||||
// Comprobacion ? IDE FUNCIONANDO ? @4620C
|
||||
S 7521 6A00 668B0D[C86C4400] B202
|
||||
R EB...........................
|
||||
|
||||
!! Cambiar en el .BPL y .OBJ !!
|
||||
|
||||
Nota: Los corchetes indican que ese n<>mero es una referencia
|
||||
a algo en memoria/c<>digo, lo que significa que con seguridad,
|
||||
puede no ser el mismo.
|
530
CDopping/jpg3s/JPEGLIB.HPP
Normal file
530
CDopping/jpg3s/JPEGLIB.HPP
Normal file
@ -0,0 +1,530 @@
|
||||
// Borland C++ Builder
|
||||
// Copyright (c) 1995, 1998 by Borland International
|
||||
// All rights reserved
|
||||
|
||||
// (DO NOT EDIT: machine generated header) 'jpeglib.pas' rev: 3.00
|
||||
|
||||
#ifndef jpeglibHPP
|
||||
#define jpeglibHPP
|
||||
#include <SysUtils.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
#include <SysInit.hpp>
|
||||
#include <System.hpp>
|
||||
|
||||
//-- user supplied -----------------------------------------------------------
|
||||
|
||||
namespace Jpeglib
|
||||
{
|
||||
//-- type declarations -------------------------------------------------------
|
||||
typedef int Int;
|
||||
|
||||
typedef int *int_ptr;
|
||||
|
||||
typedef int size_t;
|
||||
|
||||
typedef Cardinal uInt;
|
||||
|
||||
typedef Cardinal *uint_ptr;
|
||||
|
||||
typedef short Short;
|
||||
|
||||
typedef Word ushort;
|
||||
|
||||
typedef int Long;
|
||||
|
||||
typedef int int8array[8];
|
||||
|
||||
typedef Byte JSAMPLE;
|
||||
|
||||
typedef short JCOEF;
|
||||
|
||||
typedef short *JCOEF_PTR;
|
||||
|
||||
typedef Byte JOCTET;
|
||||
|
||||
typedef Byte *JOCTET_PTR;
|
||||
|
||||
typedef Byte UINT8;
|
||||
|
||||
typedef Word UINT16;
|
||||
|
||||
typedef Shortint INT16;
|
||||
|
||||
typedef int INT32;
|
||||
|
||||
typedef int *INT32PTR;
|
||||
|
||||
typedef Cardinal JDIMENSION;
|
||||
|
||||
typedef Byte *JSAMPROW;
|
||||
|
||||
typedef JSAMPROW *JSAMPARRAY;
|
||||
|
||||
typedef JSAMPARRAY *JSAMPIMAGE;
|
||||
|
||||
typedef short JBLOCK[64];
|
||||
|
||||
typedef JBLOCK *JBLOCKROW;
|
||||
|
||||
typedef JBLOCKROW *JBLOCKARRAY;
|
||||
|
||||
typedef JBLOCKARRAY *JBLOCKIMAGE;
|
||||
|
||||
typedef short *JCOEFPTR;
|
||||
|
||||
struct JQUANT_TBL;
|
||||
typedef JQUANT_TBL *JQUANT_TBL_PTR;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct JQUANT_TBL
|
||||
{
|
||||
Word quantval[64];
|
||||
bool sent_table;
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
struct JHUFF_TBL;
|
||||
typedef JHUFF_TBL *JHUFF_TBL_PTR;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct JHUFF_TBL
|
||||
{
|
||||
Byte bits[17];
|
||||
Byte huffval[256];
|
||||
bool sent_table;
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
struct jpeg_component_info;
|
||||
typedef jpeg_component_info *jpeg_component_info_ptr;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct jpeg_component_info
|
||||
{
|
||||
int component_id;
|
||||
int component_index;
|
||||
int h_samp_factor;
|
||||
int v_samp_factor;
|
||||
int quant_tbl_no;
|
||||
int dc_tbl_no;
|
||||
int ac_tbl_no;
|
||||
Cardinal width_in_blocks;
|
||||
Cardinal height_in_blocks;
|
||||
int DCT_scaled_size;
|
||||
Cardinal downsampled_width;
|
||||
Cardinal downsampled_height;
|
||||
bool component_needed;
|
||||
int MCU_width;
|
||||
int MCU_height;
|
||||
int MCU_blocks;
|
||||
int MCU_sample_width;
|
||||
int last_col_width;
|
||||
int last_row_height;
|
||||
JQUANT_TBL *quant_table;
|
||||
void *dct_table;
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
struct jpeg_scan_info;
|
||||
typedef jpeg_scan_info *jpeg_scan_info_ptr;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct jpeg_scan_info
|
||||
{
|
||||
int comps_in_scan;
|
||||
int component_index[4];
|
||||
int Ss;
|
||||
int Se;
|
||||
int Ah;
|
||||
int Al;
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
enum J_COLOR_SPACE { JCS_UNKNOWN, JCS_GRAYSCALE, JCS_RGB, JCS_YCbCr, JCS_CMYK, JCS_YCCK };
|
||||
|
||||
enum J_DCT_METHOD { JDCT_ISLOW, JDCT_IFAST, JDCT_FLOAT };
|
||||
|
||||
enum J_DITHER_MODE { JDITHER_NONE, JDITHER_ORDERED, JDITHER_FS };
|
||||
|
||||
struct jpeg_error_mgr;
|
||||
typedef jpeg_error_mgr *jpeg_error_mgr_ptr;
|
||||
|
||||
struct jpeg_memory_mgr;
|
||||
typedef jpeg_memory_mgr *jpeg_memory_mgr_ptr;
|
||||
|
||||
struct jpeg_progress_mgr;
|
||||
typedef jpeg_progress_mgr *jpeg_progress_mgr_ptr;
|
||||
|
||||
struct jpeg_destination_mgr;
|
||||
typedef jpeg_destination_mgr *jpeg_destination_mgr_ptr;
|
||||
|
||||
struct jpeg_source_mgr;
|
||||
typedef jpeg_source_mgr *jpeg_source_mgr_ptr;
|
||||
|
||||
struct jpeg_common_struct;
|
||||
typedef jpeg_common_struct *j_common_ptr;
|
||||
|
||||
struct jpeg_compress_struct;
|
||||
typedef jpeg_compress_struct *j_compress_ptr;
|
||||
|
||||
struct jpeg_decompress_struct;
|
||||
typedef jpeg_decompress_struct *j_decompress_ptr;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct jpeg_common_struct
|
||||
{
|
||||
System::TObject* UserRef;
|
||||
jpeg_error_mgr *err;
|
||||
jpeg_memory_mgr *mem;
|
||||
jpeg_progress_mgr *progress;
|
||||
bool is_decompressor;
|
||||
int global_state;
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct jpeg_compress_struct
|
||||
{
|
||||
jpeg_common_struct common_fields;
|
||||
jpeg_destination_mgr *dest;
|
||||
Cardinal image_width;
|
||||
Cardinal image_height;
|
||||
int input_components;
|
||||
J_COLOR_SPACE in_color_space;
|
||||
double input_gamma;
|
||||
int data_precision;
|
||||
int num_components;
|
||||
J_COLOR_SPACE jpeg_color_space;
|
||||
jpeg_component_info *comp_info;
|
||||
JQUANT_TBL *quant_tbl_ptrs[4];
|
||||
JHUFF_TBL *dc_huff_tbl_ptrs[4];
|
||||
JHUFF_TBL *ac_huff_tbl_ptrs[4];
|
||||
Byte arith_dc_L[16];
|
||||
Byte arith_dc_U[16];
|
||||
Byte arith_ac_K[16];
|
||||
int num_scans;
|
||||
jpeg_scan_info *scan_info;
|
||||
bool raw_data_in;
|
||||
bool arith_code;
|
||||
bool optimize_coding;
|
||||
bool CCIR601_sampling;
|
||||
int smoothing_factor;
|
||||
J_DCT_METHOD dct_method;
|
||||
Cardinal restart_interval;
|
||||
int restart_in_rows;
|
||||
bool write_JFIF_header;
|
||||
Byte density_unit;
|
||||
Word X_density;
|
||||
Word Y_density;
|
||||
bool write_Adobe_marker;
|
||||
Cardinal next_scanline;
|
||||
bool progressive_mode;
|
||||
int max_h_samp_factor;
|
||||
int max_v_samp_factor;
|
||||
Cardinal total_iMCU_rows;
|
||||
int comps_in_scan;
|
||||
jpeg_component_info *cur_comp_info[4];
|
||||
Cardinal MCUs_per_row;
|
||||
Cardinal MCU_rows_in_scan;
|
||||
int blocks_in_MCU;
|
||||
int MCU_membership[10];
|
||||
int Ss;
|
||||
int Se;
|
||||
int Ah;
|
||||
int Al;
|
||||
void *master;
|
||||
void *main;
|
||||
void *prep;
|
||||
void *coef;
|
||||
void *marker;
|
||||
void *cconvert;
|
||||
void *downsample;
|
||||
void *fdct;
|
||||
void *entropy;
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
typedef int coef_bits_field[64];
|
||||
|
||||
typedef coef_bits_field *coef_bits_ptr;
|
||||
|
||||
typedef int coef_bits_ptrfield[4][64];
|
||||
|
||||
typedef coef_bits_ptrfield *coef_bits_ptrrow;
|
||||
|
||||
typedef Byte range_limit_table[1408];
|
||||
|
||||
typedef range_limit_table *range_limit_table_ptr;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct jpeg_decompress_struct
|
||||
{
|
||||
jpeg_common_struct common_fields;
|
||||
jpeg_source_mgr *src;
|
||||
Cardinal image_width;
|
||||
Cardinal image_height;
|
||||
int num_components;
|
||||
J_COLOR_SPACE jpeg_color_space;
|
||||
J_COLOR_SPACE out_color_space;
|
||||
Cardinal scale_num;
|
||||
Cardinal scale_denom;
|
||||
double output_gamma;
|
||||
bool buffered_image;
|
||||
bool raw_data_out;
|
||||
J_DCT_METHOD dct_method;
|
||||
bool do_fancy_upsampling;
|
||||
bool do_block_smoothing;
|
||||
bool quantize_colors;
|
||||
J_DITHER_MODE dither_mode;
|
||||
bool two_pass_quantize;
|
||||
int desired_number_of_colors;
|
||||
bool enable_1pass_quant;
|
||||
bool enable_external_quant;
|
||||
bool enable_2pass_quant;
|
||||
Cardinal output_width;
|
||||
Cardinal output_height;
|
||||
int out_color_components;
|
||||
int output_components;
|
||||
int rec_outbuf_height;
|
||||
int actual_number_of_colors;
|
||||
JSAMPROW *colormap;
|
||||
Cardinal output_scanline;
|
||||
int input_scan_number;
|
||||
Cardinal input_iMCU_row;
|
||||
int output_scan_number;
|
||||
int output_iMCU_row;
|
||||
coef_bits_field *coef_bits;
|
||||
JQUANT_TBL *quant_tbl_ptrs[4];
|
||||
JHUFF_TBL *dc_huff_tbl_ptrs[4];
|
||||
JHUFF_TBL *ac_huff_tbl_ptrs[4];
|
||||
int data_precision;
|
||||
jpeg_component_info *comp_info;
|
||||
bool progressive_mode;
|
||||
bool arith_code;
|
||||
Byte arith_dc_L[16];
|
||||
Byte arith_dc_U[16];
|
||||
Byte arith_ac_K[16];
|
||||
Cardinal restart_interval;
|
||||
bool saw_JFIF_marker;
|
||||
Byte density_unit;
|
||||
Word X_density;
|
||||
Word Y_density;
|
||||
bool saw_Adobe_marker;
|
||||
Byte Adobe_transform;
|
||||
bool CCIR601_sampling;
|
||||
int max_h_samp_factor;
|
||||
int max_v_samp_factor;
|
||||
int min_DCT_scaled_size;
|
||||
Cardinal total_iMCU_rows;
|
||||
range_limit_table *sample_range_limit;
|
||||
int comps_in_scan;
|
||||
jpeg_component_info *cur_comp_info[4];
|
||||
Cardinal MCUs_per_row;
|
||||
Cardinal MCU_rows_in_scan;
|
||||
Cardinal blocks_in_MCU;
|
||||
int MCU_membership[10];
|
||||
int Ss;
|
||||
int Se;
|
||||
int Ah;
|
||||
int Al;
|
||||
int unread_marker;
|
||||
void *master;
|
||||
void *main;
|
||||
void *coef;
|
||||
void *post;
|
||||
void *inputctl;
|
||||
void *marker;
|
||||
void *entropy;
|
||||
void *idct;
|
||||
void *upsample;
|
||||
void *cconvert;
|
||||
void *cquantize;
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct jpeglib__1
|
||||
{
|
||||
|
||||
union
|
||||
{
|
||||
char s[80];
|
||||
int i[8];
|
||||
|
||||
};
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct jpeg_error_mgr
|
||||
{
|
||||
void __stdcall (*error_exit)(j_common_ptr cinfo);
|
||||
void __stdcall (*emit_message)(j_common_ptr cinfo, int msg_level);
|
||||
void __stdcall (*output_message)(j_common_ptr cinfo);
|
||||
void __stdcall (*format_message)(j_common_ptr cinfo, char * buffer);
|
||||
void __stdcall (*reset_error_mgr)(j_common_ptr cinfo);
|
||||
int msg_code;
|
||||
jpeglib__1 msg_parm;
|
||||
int trace_level;
|
||||
int num_warnings;
|
||||
void *jpeg_message_table;
|
||||
int last_jpeg_message;
|
||||
void *addon_message_table;
|
||||
int first_addon_message;
|
||||
int last_addon_message;
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct jpeg_progress_mgr
|
||||
{
|
||||
void __stdcall (*progress_monitor)(j_common_ptr cinfo);
|
||||
int pass_counter;
|
||||
int pass_limit;
|
||||
int completed_passes;
|
||||
int total_passes;
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct jpeg_destination_mgr
|
||||
{
|
||||
Byte *next_output_byte;
|
||||
int free_in_buffer;
|
||||
void __stdcall (*init_destination)(j_compress_ptr cinfo);
|
||||
bool __stdcall (*empty_output_buffer)(j_compress_ptr cinfo);
|
||||
void __stdcall (*term_destination)(j_compress_ptr cinfo);
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct jpeg_source_mgr
|
||||
{
|
||||
Byte *next_input_byte;
|
||||
int bytes_in_buffer;
|
||||
void __stdcall (*init_source)(j_decompress_ptr cinfo);
|
||||
bool __stdcall (*fill_input_buffer)(j_decompress_ptr cinfo);
|
||||
void __stdcall (*skip_input_data)(j_decompress_ptr cinfo, int num_bytes);
|
||||
bool __stdcall (*resync_to_restart)(j_decompress_ptr cinfo, int desired);
|
||||
void __stdcall (*term_source)(j_decompress_ptr cinfo);
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
typedef void *jvirt_sarray_ptr;
|
||||
|
||||
typedef void *jvirt_barray_ptr;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct jpeg_memory_mgr
|
||||
{
|
||||
void * __stdcall (*alloc_small)(j_common_ptr cinfo, int pool_id, int sizeofobject);
|
||||
void * __stdcall (*alloc_large)(j_common_ptr cinfo, int pool_id, int sizeofobject);
|
||||
JSAMPARRAY __stdcall (*alloc_sarray)(j_common_ptr cinfo, int pool_id, Cardinal samplesperrow, Cardinal
|
||||
numrows);
|
||||
JBLOCKARRAY __stdcall (*alloc_barray)(j_common_ptr cinfo, int pool_id, Cardinal blocksperrow, Cardinal
|
||||
numrows);
|
||||
void * __stdcall (*request_virt_sarray)(j_common_ptr cinfo, int pool_id, bool pre_zero, Cardinal samplesperrow
|
||||
, Cardinal numrows, Cardinal maxaccess);
|
||||
void * __stdcall (*request_virt_barray)(j_common_ptr cinfo, int pool_id, bool pre_zero, Cardinal blocksperrow
|
||||
, Cardinal numrows, Cardinal maxaccess);
|
||||
void __stdcall (*realize_virt_arrays)(j_common_ptr cinfo);
|
||||
JSAMPARRAY __stdcall (*access_virt_sarray)(j_common_ptr cinfo, void * ptr, Cardinal start_row, Cardinal
|
||||
num_rows, bool writable);
|
||||
JBLOCKARRAY __stdcall (*access_virt_barray)(j_common_ptr cinfo, void * ptr, Cardinal start_row, Cardinal
|
||||
num_rows, bool writable);
|
||||
void __stdcall (*free_pool)(j_common_ptr cinfo, int pool_id);
|
||||
void __stdcall (*self_destruct)(j_common_ptr cinfo);
|
||||
int max_memory_to_use;
|
||||
} ;
|
||||
#pragma pack(pop)
|
||||
|
||||
typedef bool __stdcall (*jpeg_marker_parser_method)(j_decompress_ptr cinfo);
|
||||
|
||||
//-- var, const, procedure ---------------------------------------------------
|
||||
#define MAX_COMPONENTS (Byte)(10)
|
||||
#define MAXJSAMPLE (Byte)(255)
|
||||
#define CENTERJSAMPLE (Byte)(128)
|
||||
#define JPEG_MAX_DIMENSION (int)(65500)
|
||||
#define JPEG_LIB_VERSION (Byte)(61)
|
||||
#define JMSG_STR_PARM_MAX (Byte)(80)
|
||||
#define JMSG_LENGTH_MAX (Byte)(200)
|
||||
#define DCTSIZE (Byte)(8)
|
||||
#define DCTSIZE2 (Byte)(64)
|
||||
#define NUM_QUANT_TBLS (Byte)(4)
|
||||
#define NUM_HUFF_TBLS (Byte)(4)
|
||||
#define NUM_ARITH_TBLS (Byte)(16)
|
||||
#define MAX_COMPS_IN_SCAN (Byte)(4)
|
||||
#define MAX_SAMP_FACTOR (Byte)(4)
|
||||
#define C_MAX_BLOCKS_IN_MCU (Byte)(10)
|
||||
#define D_MAX_BLOCKS_IN_MCU (Byte)(10)
|
||||
#define JDCT_DEFAULT (J_DCT_METHOD)(0)
|
||||
#define JDCT_FASTEST (J_DCT_METHOD)(1)
|
||||
#define JPOOL_PERMANENT (Byte)(0)
|
||||
#define JPOOL_IMAGE (Byte)(1)
|
||||
#define JPOOL_NUMPOOLS (Byte)(2)
|
||||
#define JPEG_SUSPENDED (Byte)(0)
|
||||
#define JPEG_HEADER_OK (Byte)(1)
|
||||
#define JPEG_HEADER_TABLES_ONLY (Byte)(2)
|
||||
#define JPEG_REACHED_SOS (Byte)(1)
|
||||
#define JPEG_REACHED_EOI (Byte)(2)
|
||||
#define JPEG_ROW_COMPLETED (Byte)(3)
|
||||
#define JPEG_SCAN_COMPLETED (Byte)(4)
|
||||
#define JPEG_RST0 (Byte)(208)
|
||||
#define JPEG_EOI (Byte)(217)
|
||||
#define JPEG_APP0 (Byte)(224)
|
||||
#define JPEG_COM (Byte)(254)
|
||||
extern "C" void __stdcall jpeg_destroy_compress(j_compress_ptr cinfo);
|
||||
extern "C" void __stdcall jpeg_destroy_decompress(j_decompress_ptr cinfo);
|
||||
extern "C" void __stdcall jpeg_set_defaults(j_compress_ptr cinfo);
|
||||
extern "C" void __stdcall jpeg_set_colorspace(j_compress_ptr cinfo, J_COLOR_SPACE colorspace);
|
||||
extern "C" void __stdcall jpeg_default_colorspace(j_compress_ptr cinfo);
|
||||
extern "C" void __stdcall jpeg_set_quality(j_compress_ptr cinfo, int quality, bool force_baseline);
|
||||
extern "C" void __stdcall jpeg_set_linear_quality(j_compress_ptr cinfo, int scale_factor, bool force_baseline
|
||||
);
|
||||
extern "C" void __stdcall jpeg_add_quant_table(j_compress_ptr cinfo, int which_tbl, const uint_ptr basic_table
|
||||
, int scale_factor, bool force_baseline);
|
||||
extern "C" int __stdcall jpeg_quality_scaling(int quality);
|
||||
extern "C" void __stdcall jpeg_simple_progression(j_compress_ptr cinfo);
|
||||
extern "C" void __stdcall jpeg_suppress_tables(j_compress_ptr cinfo, bool suppress);
|
||||
extern "C" JQUANT_TBL_PTR __stdcall jpeg_alloc_quant_table(const jpeg_common_struct cinfo);
|
||||
extern "C" JHUFF_TBL_PTR __stdcall jpeg_alloc_huff_table(const jpeg_common_struct cinfo);
|
||||
extern "C" void __stdcall jpeg_start_compress(j_compress_ptr cinfo, bool write_all_tables);
|
||||
extern "C" Cardinal __stdcall jpeg_write_scanlines(j_compress_ptr cinfo, JSAMPARRAY scanlines, Cardinal
|
||||
num_lines);
|
||||
extern "C" void __stdcall jpeg_finish_compress(j_compress_ptr cinfo);
|
||||
extern "C" Cardinal __stdcall jpeg_write_raw_data(j_compress_ptr cinfo, JSAMPIMAGE data, Cardinal num_lines
|
||||
);
|
||||
extern "C" void __stdcall jpeg_write_marker(j_compress_ptr cinfo, int marker, const JOCTET_PTR dataptr
|
||||
, Cardinal datalen);
|
||||
extern "C" void __stdcall jpeg_write_tables(j_compress_ptr cinfo);
|
||||
extern "C" int __stdcall jpeg_read_header(j_decompress_ptr cinfo, bool require_image);
|
||||
extern "C" bool __stdcall jpeg_start_decompress(j_decompress_ptr cinfo);
|
||||
extern "C" Cardinal __stdcall jpeg_read_scanlines(j_decompress_ptr cinfo, JSAMPARRAY scanlines, Cardinal
|
||||
max_lines);
|
||||
extern "C" bool __stdcall jpeg_finish_decompress(j_decompress_ptr cinfo);
|
||||
extern "C" Cardinal __stdcall jpeg_read_raw_data(j_decompress_ptr cinfo, JSAMPIMAGE data, Cardinal max_lines
|
||||
);
|
||||
extern "C" bool __stdcall jpeg_has_multiple_scans(j_decompress_ptr cinfo);
|
||||
extern "C" bool __stdcall jpeg_start_output(j_decompress_ptr cinfo, int scan_number);
|
||||
extern "C" bool __stdcall jpeg_finish_output(j_decompress_ptr cinfo);
|
||||
extern "C" bool __stdcall jpeg_input_complete(j_decompress_ptr cinfo);
|
||||
extern "C" void __stdcall jpeg_new_colormap(j_decompress_ptr cinfo);
|
||||
extern "C" int __stdcall jpeg_consume_input(j_decompress_ptr cinfo);
|
||||
extern "C" void __stdcall jpeg_calc_output_dimensions(j_decompress_ptr cinfo);
|
||||
extern "C" void __stdcall jpeg_set_marker_processor(j_decompress_ptr cinfo, int marker_code, jpeg_marker_parser_method
|
||||
routine);
|
||||
extern "C" void __stdcall jpeg_abort_compress(j_compress_ptr cinfo);
|
||||
extern "C" void __stdcall jpeg_abort_decompress(j_decompress_ptr cinfo);
|
||||
extern "C" void __stdcall jpeg_abort(j_common_ptr cinfo);
|
||||
extern "C" void __stdcall jpeg_destroy(j_common_ptr cinfo);
|
||||
extern "C" bool __stdcall jpeg_resync_to_restart(j_decompress_ptr cinfo, int desired);
|
||||
extern "C" jpeg_error_mgr_ptr __stdcall jpeg_std_error(jpeg_error_mgr_ptr err);
|
||||
extern PACKAGE void __fastcall jpeg_Create_Compress(j_compress_ptr cinfo);
|
||||
extern PACKAGE void __fastcall jpeg_Create_Decompress(j_decompress_ptr cinfo);
|
||||
|
||||
} /* namespace Jpeglib */
|
||||
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||
using namespace Jpeglib;
|
||||
#endif
|
||||
//-- end unit ----------------------------------------------------------------
|
||||
#endif // jpeglib
|
BIN
CDopping/jpg3s/JPEGLIB.OBJ
Normal file
BIN
CDopping/jpg3s/JPEGLIB.OBJ
Normal file
Binary file not shown.
BIN
CDopping/jpg3s/JPEGREG1.DCR
Normal file
BIN
CDopping/jpg3s/JPEGREG1.DCR
Normal file
Binary file not shown.
BIN
CDopping/jpg3s/JPEGREG2.DCR
Normal file
BIN
CDopping/jpg3s/JPEGREG2.DCR
Normal file
Binary file not shown.
BIN
CDopping/jpg3s/JPEG_REG.OBJ
Normal file
BIN
CDopping/jpg3s/JPEG_REG.OBJ
Normal file
Binary file not shown.
126
CDopping/jpg3s/LICENCE.TXT
Normal file
126
CDopping/jpg3s/LICENCE.TXT
Normal file
@ -0,0 +1,126 @@
|
||||
SHAREWARE LICENCE
|
||||
|
||||
|
||||
LICENCE AGREEMENT
|
||||
Copyright 1997 McCallum Whyman Associates Limited trading as MWA Software
|
||||
|
||||
|
||||
|
||||
The copyright in the shareware version of this software ("the
|
||||
Software") is owned by McCallum Whyman Associates Limited trading
|
||||
as MWA Software ("the Owner"). You may not load the Software
|
||||
into any computer or copy it without the licence of the Owner.
|
||||
The Owner offers you a non-exclusive licence on the terms of this
|
||||
Agreement.
|
||||
|
||||
|
||||
|
||||
|
||||
LICENCE
|
||||
|
||||
You are permitted during the Term to:
|
||||
|
||||
(1) load the Software and use it only on a single computer (with
|
||||
a single input terminal) which is under your control;
|
||||
|
||||
(2) transfer the Software from one computer to another provided
|
||||
it is used on only one computer at a time;
|
||||
|
||||
(3) make copies of the Software. The copies must reproduce and
|
||||
include the Owner's copyright notice;
|
||||
|
||||
(4) transfer a copy of the Software (complete with all its
|
||||
associated documentation and this licence) to another person
|
||||
provided that the Software is not modified in any way and
|
||||
includes all files as originally supplied and that no charge
|
||||
is made for the transfer. If any transferee does not accept
|
||||
such terms then this licence shall automatically terminate.
|
||||
The transferor does not retain any rights under this
|
||||
Agreement in respect of the transferred Software or licence.
|
||||
|
||||
(5) use the Software as a component of another program provided
|
||||
that the purpose of using the Software is for evaluation only
|
||||
and provided that the evaluation is carried out on the same
|
||||
computer on which the Software is loaded and that such a
|
||||
program is under no circumstances transferred to another
|
||||
person.
|
||||
|
||||
You are not permitted:
|
||||
|
||||
(a) to rent, lease, sub-licence, loan, copy (except as expressly
|
||||
provided in this Agreement), modify, adapt, merge, translate,
|
||||
reverse engineer, decompile, disassemble or create derivative
|
||||
works based on the whole or any part of the Software or its
|
||||
associated documentation;
|
||||
|
||||
(b) except as expressly provided in this Agreement, to use,
|
||||
reproduce or deal in the Software in any way.
|
||||
|
||||
|
||||
ACCEPTANCE
|
||||
|
||||
You shall be deemed to have accepted the terms of this Agreement
|
||||
by loading the Software into any computer.
|
||||
|
||||
|
||||
TERM
|
||||
|
||||
Subject as set out below this licence is effective for a period
|
||||
of 30 days from the date of first use by you. This Licence will
|
||||
terminate if you fail to abide by its terms. Upon termination
|
||||
you agree to destroy all copies of the Software and its
|
||||
documentation including any Software stored on the hard disk of
|
||||
any computer under your control.
|
||||
|
||||
|
||||
REGISTRATION
|
||||
|
||||
If you wish to licence the Software beyond the period of 30 days
|
||||
aforesaid then please return the enclosed Licence Registration
|
||||
Form to the Owner within such period.
|
||||
|
||||
|
||||
OWNERSHIP
|
||||
|
||||
The Owner shall at all times retain ownership of the Software as
|
||||
recorded in the original file set or diskette and all subsequent
|
||||
copies thereof regardless of form. If the Software was supplied
|
||||
on diskette, you own only the diskette on which the Software is
|
||||
recorded. You may retain the diskette on termination provided
|
||||
the Software has been erased. This Agreement applies to the
|
||||
grant of the licence only and not to the contract of sale of the
|
||||
diskette.
|
||||
|
||||
|
||||
WARRANTIES
|
||||
|
||||
(1) The express terms of this Agreement are in lieu of all
|
||||
warranties, conditions, undertakings, terms and obligations
|
||||
implied by statute, common law, trade usage, course of
|
||||
dealing or otherwise all of which are hereby excluded to the
|
||||
fullest extent permitted by law.
|
||||
|
||||
(2) The Owner does not warrant that the Software will meet your
|
||||
requirements or that the operation of the Software will be
|
||||
uninterrupted or error-free or that defects in the Software
|
||||
will be corrected. You shall load and use the Software at
|
||||
your own risk and in no event will the Owner be liable to you
|
||||
for any loss or damage of any kind (except personal injury or
|
||||
death resulting from the Owner's negligence) including lost
|
||||
profits or consequential loss arising from your use of or
|
||||
inability to use the Software or from errors or deficiencies
|
||||
in it whether caused by negligence or otherwise.
|
||||
|
||||
(3) Any liability of the Owner pursuant to this licence shall be
|
||||
limited to the purchase price or registration fee paid.
|
||||
|
||||
|
||||
LAW
|
||||
|
||||
This Agreement shall be governed by English law.
|
||||
|
||||
|
||||
If you have any questions concerning this Agreement please
|
||||
write to McCallum Whyman Associates Limited trading as MWA
|
||||
Software at PO Box 37, Alresford, Hampshire, SO24 9ZF,
|
||||
England.
|
87
CDopping/jpg3s/MWADBJPG.HPP
Normal file
87
CDopping/jpg3s/MWADBJPG.HPP
Normal file
@ -0,0 +1,87 @@
|
||||
// Borland C++ Builder
|
||||
// Copyright (c) 1995, 1998 by Borland International
|
||||
// All rights reserved
|
||||
|
||||
// (DO NOT EDIT: machine generated header) 'mwadbjpg.pas' rev: 3.00
|
||||
|
||||
#ifndef mwadbjpgHPP
|
||||
#define mwadbjpgHPP
|
||||
#include <Controls.hpp>
|
||||
#include <mwajpeg.hpp>
|
||||
#include <Classes.hpp>
|
||||
#include <ExtCtrls.hpp>
|
||||
#include <Messages.hpp>
|
||||
#include <DBTables.hpp>
|
||||
#include <DBCtrls.hpp>
|
||||
#include <Db.hpp>
|
||||
#include <SysInit.hpp>
|
||||
#include <System.hpp>
|
||||
|
||||
//-- user supplied -----------------------------------------------------------
|
||||
|
||||
namespace Mwadbjpg
|
||||
{
|
||||
//-- type declarations -------------------------------------------------------
|
||||
class DELPHICLASS TDBJPEGImage;
|
||||
class PASCALIMPLEMENTATION TDBJPEGImage : public Extctrls::TImage
|
||||
{
|
||||
typedef Extctrls::TImage inherited;
|
||||
|
||||
private:
|
||||
Dbctrls::TFieldDataLink* FDataLink;
|
||||
Classes::TNotifyEvent FOldPictureChanged;
|
||||
bool FAutoDisplay;
|
||||
bool FLoading;
|
||||
bool FChanging;
|
||||
bool FPictureLoaded;
|
||||
Mwajpeg::TJPEGFileCompressor* FJPEGCompressor;
|
||||
Mwajpeg::TJPEGFileDecompressor* FJPEGDecompressor;
|
||||
System::AnsiString __fastcall GetDataField();
|
||||
Db::TDataSource* __fastcall GetDataSource(void);
|
||||
Db::TField* __fastcall GetField(void);
|
||||
bool __fastcall GetReadOnly(void);
|
||||
Mwajpeg::TJPEGFileDecompressor* __fastcall GetJPEGDecompressor(void);
|
||||
Mwajpeg::TJPEGFileCompressor* __fastcall GetJPEGCompressor(void);
|
||||
void __fastcall SetDataField(const System::AnsiString Value);
|
||||
void __fastcall SetDataSource(Db::TDataSource* Value);
|
||||
void __fastcall SetReadOnly(bool Value);
|
||||
void __fastcall ActiveChanged(System::TObject* Sender);
|
||||
void __fastcall DataChange(System::TObject* Sender);
|
||||
void __fastcall UpdateData(System::TObject* Sender);
|
||||
void __fastcall PictureChange(System::TObject* Sender);
|
||||
MESSAGE void __fastcall WMCut(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall WMCopy(Messages::TMessage &Message);
|
||||
MESSAGE void __fastcall WMPaste(Messages::TMessage &Message);
|
||||
|
||||
protected:
|
||||
virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation
|
||||
);
|
||||
|
||||
public:
|
||||
__fastcall virtual TDBJPEGImage(Classes::TComponent* AOwner);
|
||||
__fastcall virtual ~TDBJPEGImage(void);
|
||||
void __fastcall CopyToClipboard(void);
|
||||
void __fastcall CutToClipboard(void);
|
||||
void __fastcall PasteFromClipboard(void);
|
||||
void __fastcall LoadPicture(void);
|
||||
__property Db::TField* Field = {read=GetField};
|
||||
|
||||
__published:
|
||||
__property bool AutoDisplay = {read=FAutoDisplay, write=FAutoDisplay, default=1};
|
||||
__property System::AnsiString DataField = {read=GetDataField, write=SetDataField};
|
||||
__property Db::TDataSource* DataSource = {read=GetDataSource, write=SetDataSource};
|
||||
__property bool ReadOnly = {read=GetReadOnly, write=SetReadOnly, nodefault};
|
||||
__property Mwajpeg::TJPEGFileCompressor* JPEGCompressor = {read=FJPEGCompressor, write=FJPEGCompressor
|
||||
};
|
||||
__property Mwajpeg::TJPEGFileDecompressor* JPEGDecompressor = {read=FJPEGDecompressor, write=FJPEGDecompressor
|
||||
};
|
||||
};
|
||||
|
||||
//-- var, const, procedure ---------------------------------------------------
|
||||
|
||||
} /* namespace Mwadbjpg */
|
||||
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||
using namespace Mwadbjpg;
|
||||
#endif
|
||||
//-- end unit ----------------------------------------------------------------
|
||||
#endif // mwadbjpg
|
BIN
CDopping/jpg3s/MWADBJPG.OBJ
Normal file
BIN
CDopping/jpg3s/MWADBJPG.OBJ
Normal file
Binary file not shown.
498
CDopping/jpg3s/MWAJPEG.HPP
Normal file
498
CDopping/jpg3s/MWAJPEG.HPP
Normal file
@ -0,0 +1,498 @@
|
||||
// Borland C++ Builder
|
||||
// Copyright (c) 1995, 1998 by Borland International
|
||||
// All rights reserved
|
||||
|
||||
// (DO NOT EDIT: machine generated header) 'mwajpeg.pas' rev: 3.00
|
||||
|
||||
#ifndef mwajpegHPP
|
||||
#define mwajpegHPP
|
||||
#include <ExtCtrls.hpp>
|
||||
#include <Graphics.hpp>
|
||||
#include <Windows.hpp>
|
||||
#include <Classes.hpp>
|
||||
#include <jpeglib.hpp>
|
||||
#include <SysInit.hpp>
|
||||
#include <System.hpp>
|
||||
|
||||
//-- user supplied -----------------------------------------------------------
|
||||
|
||||
namespace Mwajpeg
|
||||
{
|
||||
//-- type declarations -------------------------------------------------------
|
||||
typedef void __fastcall (__closure *TWarningEvent)(const System::AnsiString warning_message);
|
||||
|
||||
class DELPHICLASS TJPEGBase;
|
||||
class PASCALIMPLEMENTATION TJPEGBase : public Classes::TComponent
|
||||
{
|
||||
typedef Classes::TComponent inherited;
|
||||
|
||||
private:
|
||||
Jpeglib::jpeg_common_struct *JPEGObject;
|
||||
bool FInAbort;
|
||||
bool FInProgress;
|
||||
bool FAbortRequested;
|
||||
Classes::TNotifyEvent FOnProgressReport;
|
||||
TWarningEvent FOnWarning;
|
||||
int __fastcall GetWarnings(void);
|
||||
int __fastcall GetTraceLevel(void);
|
||||
int __fastcall GetPercentDone(void);
|
||||
void __fastcall SetTraceLevel(int value);
|
||||
virtual void __fastcall CreateJPEGObject(Jpeglib::jpeg_error_mgr_ptr err) = 0;
|
||||
|
||||
protected:
|
||||
virtual void __fastcall Error(void);
|
||||
virtual void __fastcall Warning(int msg_level);
|
||||
virtual void __fastcall DoProgress(void);
|
||||
int __fastcall Round4(int i);
|
||||
|
||||
public:
|
||||
__fastcall virtual TJPEGBase(Classes::TComponent* AOwner);
|
||||
__fastcall virtual ~TJPEGBase(void);
|
||||
virtual void __fastcall Abort(void);
|
||||
__property int Warnings = {read=GetWarnings, nodefault};
|
||||
__property int Trace_Level = {read=GetTraceLevel, write=SetTraceLevel, nodefault};
|
||||
__property int PercentDone = {read=GetPercentDone, nodefault};
|
||||
__property Classes::TNotifyEvent OnProgressReport = {read=FOnProgressReport, write=FOnProgressReport
|
||||
};
|
||||
__property TWarningEvent OnWarning = {read=FOnWarning, write=FOnWarning};
|
||||
};
|
||||
|
||||
enum TBitmapResolution { bmDefault, bm16Colour, bm256Colour, bm24bit };
|
||||
|
||||
typedef int TImageSize;
|
||||
|
||||
class DELPHICLASS TJPEGCompressor;
|
||||
class PASCALIMPLEMENTATION TJPEGCompressor : public Mwajpeg::TJPEGBase
|
||||
{
|
||||
typedef Mwajpeg::TJPEGBase inherited;
|
||||
|
||||
private:
|
||||
System::AnsiString FComment;
|
||||
bool FProgressiveJPEG;
|
||||
bool FWriteAllTables;
|
||||
int FQuality;
|
||||
bool FGrayscaleOutput;
|
||||
Classes::TNotifyEvent FOnWriteMarkers;
|
||||
Jpeglib::JOCTET_PTR __fastcall GetNextOut(void);
|
||||
int __fastcall GetFreeIn(void);
|
||||
void __fastcall SetNextOut(Jpeglib::JOCTET_PTR value);
|
||||
void __fastcall SetFreeIn(int value);
|
||||
void __fastcall SetQuality(int Value);
|
||||
virtual void __fastcall CreateJPEGObject(Jpeglib::jpeg_error_mgr_ptr err);
|
||||
int __fastcall Getcinfoinput_components(void);
|
||||
Cardinal __fastcall Getcinfoimage_width(void);
|
||||
double __fastcall Getcinfoinput_gamma(void);
|
||||
int __fastcall Getcinfodata_precision(void);
|
||||
Jpeglib::J_COLOR_SPACE __fastcall Getcinfojpeg_color_space(void);
|
||||
Jpeglib::J_DCT_METHOD __fastcall Getcinfodct_method(void);
|
||||
bool __fastcall Getcinfooptimize_coding(void);
|
||||
Cardinal __fastcall Getcinforestart_interval(void);
|
||||
int __fastcall Getcinforestart_in_rows(void);
|
||||
int __fastcall Getcinfosmoothing_factor(void);
|
||||
bool __fastcall Getcinfowrite_JFIF_header(void);
|
||||
Byte __fastcall Getcinfodensity_unit(void);
|
||||
Word __fastcall GetcinfoX_density(void);
|
||||
Word __fastcall GetcinfoY_Density(void);
|
||||
bool __fastcall Getcinfowrite_Adobe_marker(void);
|
||||
Cardinal __fastcall Getcinfoimage_height(void);
|
||||
void __fastcall Setcinfoinput_components(int Value);
|
||||
void __fastcall Setcinfoimage_width(Cardinal Value);
|
||||
void __fastcall Setcinfoinput_gamma(double Value);
|
||||
void __fastcall Setcinfodata_precision(int Value);
|
||||
void __fastcall Setcinfojpeg_color_space(Jpeglib::J_COLOR_SPACE Value);
|
||||
void __fastcall Setcinfodct_method(Jpeglib::J_DCT_METHOD Value);
|
||||
void __fastcall Setcinfooptimize_coding(bool Value);
|
||||
void __fastcall Setcinforestart_interval(Cardinal Value);
|
||||
void __fastcall Setcinforestart_in_rows(int Value);
|
||||
void __fastcall Setcinfosmoothing_factor(int Value);
|
||||
void __fastcall Setcinfowrite_JFIF_header(bool Value);
|
||||
void __fastcall Setcinfodensity_unit(Byte Value);
|
||||
void __fastcall SetcinfoX_density(Word Value);
|
||||
void __fastcall SetcinfoY_Density(Word Value);
|
||||
void __fastcall Setcinfowrite_Adobe_marker(bool Value);
|
||||
void __fastcall Setcinfoimage_height(Cardinal Value);
|
||||
|
||||
protected:
|
||||
Jpeglib::jpeg_compress_struct cinfo;
|
||||
virtual void __fastcall InitDestination(void) = 0;
|
||||
virtual bool __fastcall EmptyOutputBuffer(void) = 0;
|
||||
virtual void __fastcall TermDestination(void) = 0;
|
||||
void __fastcall SetColorSpace(Jpeglib::J_COLOR_SPACE value);
|
||||
void __fastcall Bitmap2DIB(Graphics::TBitmap* Bitmap, TBitmapResolution Resolution, void *BitMapInfo
|
||||
, void *bits);
|
||||
void __fastcall GetBitmapInfoHeader(HBITMAP Bitmap, TBitmapResolution Resolution, tagBITMAPINFOHEADER
|
||||
&BitmapInfoHeader);
|
||||
void __fastcall GetDIBSizes(HBITMAP Bitmap, TBitmapResolution Resolution, int &InfoHeaderSize, int
|
||||
&ImageSize);
|
||||
void __fastcall WriteDIBitmap(const tagBITMAPINFO &BitmapInfo, char * bits);
|
||||
void __fastcall WriteBitmap(Graphics::TBitmap* bitmap);
|
||||
void __fastcall WriteStretchedBitmap(Graphics::TBitmap* bitmap, int width, int height);
|
||||
void __fastcall WriteMetaFile(Graphics::TMetafile* metafile, int width, int height);
|
||||
__property Jpeglib::JOCTET_PTR next_out = {read=GetNextOut, write=SetNextOut};
|
||||
__property int free_in = {read=GetFreeIn, write=SetFreeIn, nodefault};
|
||||
__property int InputComponents = {read=Getcinfoinput_components, write=Setcinfoinput_components, nodefault
|
||||
};
|
||||
__property Cardinal ImageWidth = {read=Getcinfoimage_width, write=Setcinfoimage_width, nodefault};
|
||||
__property Cardinal ImageHeight = {read=Getcinfoimage_height, write=Setcinfoimage_height, nodefault
|
||||
};
|
||||
|
||||
public:
|
||||
__fastcall virtual TJPEGCompressor(Classes::TComponent* AOwner);
|
||||
__fastcall virtual ~TJPEGCompressor(void);
|
||||
void __fastcall AddQuantTable(int which_tbl, const Jpeglib::uint_ptr basic_table, int scale_factor,
|
||||
bool force_baseline);
|
||||
void __fastcall WriteMarker(int Marker, const void *buf, int Count);
|
||||
__property bool GrayscaleOutput = {read=FGrayscaleOutput, write=FGrayscaleOutput, nodefault};
|
||||
__property System::AnsiString Comment = {read=FComment, write=FComment};
|
||||
__property int Quality = {read=FQuality, write=SetQuality, default=75};
|
||||
__property bool ProgressiveJPEG = {read=FProgressiveJPEG, write=FProgressiveJPEG, nodefault};
|
||||
__property double InputGamma = {read=Getcinfoinput_gamma, write=Setcinfoinput_gamma};
|
||||
__property int DataPrecision = {read=Getcinfodata_precision, write=Setcinfodata_precision, nodefault
|
||||
};
|
||||
__property Jpeglib::J_COLOR_SPACE OutputColorSpace = {read=Getcinfojpeg_color_space, write=Setcinfojpeg_color_space
|
||||
, nodefault};
|
||||
__property Jpeglib::J_DCT_METHOD DCTMethod = {read=Getcinfodct_method, write=Setcinfodct_method, nodefault
|
||||
};
|
||||
__property bool OptimizeCoding = {read=Getcinfooptimize_coding, write=Setcinfooptimize_coding, nodefault
|
||||
};
|
||||
__property Cardinal RestartInterval = {read=Getcinforestart_interval, write=Setcinforestart_interval
|
||||
, nodefault};
|
||||
__property int RestartInRows = {read=Getcinforestart_in_rows, write=Setcinforestart_in_rows, nodefault
|
||||
};
|
||||
__property int SmoothingFactor = {read=Getcinfosmoothing_factor, write=Setcinfosmoothing_factor, nodefault
|
||||
};
|
||||
__property bool WriteJFIFHeader = {read=Getcinfowrite_JFIF_header, write=Setcinfowrite_JFIF_header,
|
||||
nodefault};
|
||||
__property Byte DensityUnit = {read=Getcinfodensity_unit, write=Setcinfodensity_unit, nodefault};
|
||||
__property Word X_Density = {read=GetcinfoX_density, write=SetcinfoX_density, nodefault};
|
||||
__property Word Y_Density = {read=GetcinfoY_Density, write=SetcinfoY_Density, nodefault};
|
||||
__property bool WriteAdobeMarker = {read=Getcinfowrite_Adobe_marker, write=Setcinfowrite_Adobe_marker
|
||||
, nodefault};
|
||||
__property bool WriteAllTables = {read=FWriteAllTables, write=FWriteAllTables, default=1};
|
||||
__property Classes::TNotifyEvent OnWriteMarkers = {read=FOnWriteMarkers, write=FOnWriteMarkers};
|
||||
};
|
||||
|
||||
typedef void __fastcall (__closure *TJPEGCommentEvent)(TJPEGBase* sender, char * comment);
|
||||
|
||||
typedef void __fastcall (__closure *TJPEGMarkerEvent)(TJPEGBase* sender, int Marker, bool &done);
|
||||
|
||||
enum TJPEGOutputType { jp24bit, jp8bit, jp4bit, jpGrayscale };
|
||||
|
||||
class DELPHICLASS TJPEGDecompressor;
|
||||
class PASCALIMPLEMENTATION TJPEGDecompressor : public Mwajpeg::TJPEGBase
|
||||
{
|
||||
typedef Mwajpeg::TJPEGBase inherited;
|
||||
|
||||
private:
|
||||
TJPEGCommentEvent FOnJPEGComment;
|
||||
J_DCT_METHOD FDCT_METHOD;
|
||||
bool FDoFancyUpSampling;
|
||||
bool FDoBlockSmoothing;
|
||||
bool FGrayScaleOutput;
|
||||
bool FTwoPassQuantize;
|
||||
J_DITHER_MODE FDitherMode;
|
||||
int FColoursIn8bitMode;
|
||||
TJPEGMarkerEvent FOnJPEGMarker;
|
||||
virtual void __fastcall CreateJPEGObject(Jpeglib::jpeg_error_mgr_ptr err);
|
||||
Jpeglib::JOCTET_PTR __fastcall GetNextInputByte(void);
|
||||
int __fastcall GetBytesInBuffer(void);
|
||||
void __fastcall SetNextInputByte(Jpeglib::JOCTET_PTR value);
|
||||
void __fastcall SetBytesInBuffer(int value);
|
||||
bool __fastcall HandleJPEGComment(void);
|
||||
bool __fastcall HandleAPPMarker(void);
|
||||
Jpeglib::J_COLOR_SPACE __fastcall Getcinfoout_color_space(void);
|
||||
Cardinal __fastcall Getcinfoscale_num(void);
|
||||
Cardinal __fastcall Getcinfoscale_denom(void);
|
||||
double __fastcall Getcinfooutput_gamma(void);
|
||||
bool __fastcall Getcinfoquantize_colors(void);
|
||||
int __fastcall Getcinfodesired_number_of_colors(void);
|
||||
Jpeglib::JSAMPARRAY __fastcall Getcinfocolormap(void);
|
||||
int __fastcall Getcinfoactual_number_of_colors(void);
|
||||
Cardinal __fastcall Getcinfoimage_width(void);
|
||||
Cardinal __fastcall Getcinfoimage_height(void);
|
||||
Jpeglib::J_COLOR_SPACE __fastcall Getcinfojpeg_color_space(void);
|
||||
bool __fastcall Getcinfosaw_JFIF_marker(void);
|
||||
Byte __fastcall Getcinfodensity_unit(void);
|
||||
Word __fastcall GetcinfoX_density(void);
|
||||
Word __fastcall GetcinfoY_density(void);
|
||||
Byte __fastcall GetcinfoAdobe_transform(void);
|
||||
bool __fastcall Getcinfoenable_1pass_quant(void);
|
||||
bool __fastcall Getcinfoenable_external_quant(void);
|
||||
bool __fastcall Getcinfoenable_2pass_quant(void);
|
||||
Cardinal __fastcall Getcinfooutput_height(void);
|
||||
Cardinal __fastcall Getcinfooutput_width(void);
|
||||
void __fastcall Setcinfoout_color_space(Jpeglib::J_COLOR_SPACE Value);
|
||||
void __fastcall Setcinfoscale_num(Cardinal Value);
|
||||
void __fastcall Setcinfoscale_denom(Cardinal Value);
|
||||
void __fastcall Setcinfooutput_gamma(double Value);
|
||||
void __fastcall Setcinfoquantize_colors(bool Value);
|
||||
void __fastcall Setcinfodesired_number_of_colors(int Value);
|
||||
void __fastcall Setcinfocolormap(Jpeglib::JSAMPARRAY Value);
|
||||
void __fastcall Setcinfoactual_number_of_colors(int Value);
|
||||
void __fastcall Setcinfoimage_width(Cardinal Value);
|
||||
void __fastcall Setcinfoimage_height(Cardinal Value);
|
||||
void __fastcall Setcinfojpeg_color_space(Jpeglib::J_COLOR_SPACE Value);
|
||||
void __fastcall Setcinfosaw_JFIF_marker(bool Value);
|
||||
void __fastcall Setcinfodensity_unit(Byte Value);
|
||||
void __fastcall SetcinfoX_density(Word Value);
|
||||
void __fastcall SetcinfoY_density(Word Value);
|
||||
void __fastcall SetcinfoAdobe_transform(Byte Value);
|
||||
void __fastcall Setcinfoenable_1pass_quant(bool Value);
|
||||
void __fastcall Setcinfoenable_external_quant(bool Value);
|
||||
void __fastcall Setcinfoenable_2pass_quant(bool Value);
|
||||
void __fastcall Setcinfooutput_height(Cardinal Value);
|
||||
void __fastcall Setcinfooutput_width(Cardinal Value);
|
||||
|
||||
protected:
|
||||
Jpeglib::jpeg_decompress_struct cinfo;
|
||||
virtual void __fastcall InitSource(void) = 0;
|
||||
virtual bool __fastcall FillInputBuffer(void) = 0;
|
||||
virtual void __fastcall SkipInputBytes(int num_bytes) = 0;
|
||||
virtual bool __fastcall ResyncToRestart(int desired) = 0;
|
||||
virtual void __fastcall TermSource(void) = 0;
|
||||
virtual bool __fastcall DoJPEGComment(char * comment);
|
||||
void __fastcall ReadDIBitmap(tagBITMAPINFO &BitMapInfo, TJPEGOutputType OutputType, void * bits);
|
||||
Graphics::TBitmap* __fastcall ReadBitmap(void);
|
||||
void __fastcall ReadWinBitmap(HBITMAP &Bitmap, HPALETTE &Palette);
|
||||
virtual void __fastcall ReadHeader(void);
|
||||
__property Jpeglib::JOCTET_PTR NextInputByte = {read=GetNextInputByte, write=SetNextInputByte};
|
||||
__property int BytesInBuffer = {read=GetBytesInBuffer, write=SetBytesInBuffer, nodefault};
|
||||
__property Jpeglib::J_COLOR_SPACE OutputColorSpace = {read=Getcinfoout_color_space, write=Setcinfoout_color_space
|
||||
, nodefault};
|
||||
__property Cardinal ScaleNum = {read=Getcinfoscale_num, write=Setcinfoscale_num, nodefault};
|
||||
__property Cardinal ScaleDenom = {read=Getcinfoscale_denom, write=Setcinfoscale_denom, nodefault};
|
||||
__property double OutputGamma = {read=Getcinfooutput_gamma, write=Setcinfooutput_gamma};
|
||||
__property bool QuantizeColors = {read=Getcinfoquantize_colors, write=Setcinfoquantize_colors, nodefault
|
||||
};
|
||||
__property int NumColorsDesired = {read=Getcinfodesired_number_of_colors, write=Setcinfodesired_number_of_colors
|
||||
, nodefault};
|
||||
__property Jpeglib::JSAMPARRAY ColorMap = {read=Getcinfocolormap, write=Setcinfocolormap};
|
||||
__property int ActualColorsInMap = {read=Getcinfoactual_number_of_colors, write=Setcinfoactual_number_of_colors
|
||||
, nodefault};
|
||||
|
||||
public:
|
||||
__fastcall virtual TJPEGDecompressor(Classes::TComponent* AOwner);
|
||||
__fastcall virtual ~TJPEGDecompressor(void);
|
||||
int __fastcall GetBitmapInfoSize(TJPEGOutputType OutputType);
|
||||
int __fastcall GetDIBitsSize(TJPEGOutputType OutputType);
|
||||
Byte __fastcall GetByte(void);
|
||||
__property TJPEGCommentEvent OnJPEGComment = {read=FOnJPEGComment, write=FOnJPEGComment};
|
||||
__property TJPEGMarkerEvent OnJPEGMarker = {read=FOnJPEGMarker, write=FOnJPEGMarker};
|
||||
__property bool GrayScaleOutput = {read=FGrayScaleOutput, write=FGrayScaleOutput, nodefault};
|
||||
__property Cardinal Width = {read=Getcinfoimage_width, write=Setcinfoimage_width, nodefault};
|
||||
__property Cardinal Height = {read=Getcinfoimage_height, write=Setcinfoimage_height, nodefault};
|
||||
__property Jpeglib::J_COLOR_SPACE ColorSpace = {read=Getcinfojpeg_color_space, write=Setcinfojpeg_color_space
|
||||
, nodefault};
|
||||
__property bool JFIFMarkerPresent = {read=Getcinfosaw_JFIF_marker, write=Setcinfosaw_JFIF_marker, nodefault
|
||||
};
|
||||
__property Byte DensityUnit = {read=Getcinfodensity_unit, write=Setcinfodensity_unit, nodefault};
|
||||
__property Word X_Density = {read=GetcinfoX_density, write=SetcinfoX_density, nodefault};
|
||||
__property Word Y_Density = {read=GetcinfoY_density, write=SetcinfoY_density, nodefault};
|
||||
__property Byte AdobeTransform = {read=GetcinfoAdobe_transform, write=SetcinfoAdobe_transform, nodefault
|
||||
};
|
||||
__property bool TwoPassQuantize = {read=FTwoPassQuantize, write=FTwoPassQuantize, default=1};
|
||||
__property int ColoursIn8bitMode = {read=FColoursIn8bitMode, write=FColoursIn8bitMode, default=64};
|
||||
|
||||
__property Jpeglib::J_DITHER_MODE DitherMode = {read=FDitherMode, write=FDitherMode, default=2};
|
||||
__property Jpeglib::J_DCT_METHOD DCTMethod = {read=FDCT_METHOD, write=FDCT_METHOD, default=0};
|
||||
__property bool DoFancyUpSampling = {read=FDoFancyUpSampling, write=FDoFancyUpSampling, default=1};
|
||||
|
||||
__property bool DoBlockSmoothing = {read=FDoBlockSmoothing, write=FDoBlockSmoothing, default=1};
|
||||
__property bool Enable1PassQuant = {read=Getcinfoenable_1pass_quant, write=Setcinfoenable_1pass_quant
|
||||
, nodefault};
|
||||
__property bool EnableExternalQuant = {read=Getcinfoenable_external_quant, write=Setcinfoenable_external_quant
|
||||
, nodefault};
|
||||
__property bool Enable2PassQuant = {read=Getcinfoenable_2pass_quant, write=Setcinfoenable_2pass_quant
|
||||
, nodefault};
|
||||
__property Cardinal OutputHeight = {read=Getcinfooutput_height, write=Setcinfooutput_height, nodefault
|
||||
};
|
||||
__property Cardinal OutputWidth = {read=Getcinfooutput_width, write=Setcinfooutput_width, nodefault
|
||||
};
|
||||
};
|
||||
|
||||
class DELPHICLASS TJPEGStreamCompressor;
|
||||
class PASCALIMPLEMENTATION TJPEGStreamCompressor : public Mwajpeg::TJPEGCompressor
|
||||
{
|
||||
typedef Mwajpeg::TJPEGCompressor inherited;
|
||||
|
||||
private:
|
||||
Classes::TStream* FStream;
|
||||
void *FBuffer;
|
||||
int FBufSize;
|
||||
void __fastcall SetBufSize(int Value);
|
||||
|
||||
protected:
|
||||
virtual void __fastcall InitDestination(void);
|
||||
virtual bool __fastcall EmptyOutputBuffer(void);
|
||||
virtual void __fastcall TermDestination(void);
|
||||
void __fastcall OpenStream(Classes::TStream* Stream);
|
||||
void __fastcall CloseStream(void);
|
||||
|
||||
public:
|
||||
__fastcall virtual TJPEGStreamCompressor(Classes::TComponent* AOwner);
|
||||
__fastcall virtual ~TJPEGStreamCompressor(void);
|
||||
void __fastcall SavePictureToStream(Graphics::TPicture* Picture, Classes::TStream* Stream);
|
||||
void __fastcall SaveStretchedPictureToStream(Graphics::TPicture* Picture, int width, int height, Classes::TStream*
|
||||
Stream);
|
||||
void __fastcall SaveBitMapToStream(Graphics::TBitmap* bitmap, Classes::TStream* Stream);
|
||||
void __fastcall SaveStretchedBitMapToStream(Graphics::TBitmap* bitmap, int width, int height, Classes::TStream*
|
||||
Stream);
|
||||
void __fastcall SaveDIBitmapToStream(Classes::TStream* Stream, const tagBITMAPINFO &BitmapInfo, char *
|
||||
bits);
|
||||
void __fastcall SaveMetaFileToStream(Graphics::TMetafile* metafile, Classes::TStream* Stream, int width
|
||||
, int height);
|
||||
__property int BufSize = {read=FBufSize, write=SetBufSize, default=4096};
|
||||
};
|
||||
|
||||
class DELPHICLASS TJPEGStreamDecompressor;
|
||||
class PASCALIMPLEMENTATION TJPEGStreamDecompressor : public Mwajpeg::TJPEGDecompressor
|
||||
{
|
||||
typedef Mwajpeg::TJPEGDecompressor inherited;
|
||||
|
||||
private:
|
||||
Classes::TStream* FStream;
|
||||
char *FBuffer;
|
||||
int FBufSize;
|
||||
|
||||
protected:
|
||||
virtual void __fastcall InitSource(void);
|
||||
virtual bool __fastcall FillInputBuffer(void);
|
||||
virtual void __fastcall SkipInputBytes(int num_bytes);
|
||||
virtual bool __fastcall ResyncToRestart(int desired);
|
||||
void __fastcall SetBufSize(int Value);
|
||||
virtual void __fastcall TermSource(void);
|
||||
|
||||
public:
|
||||
void __fastcall OpenStream(Classes::TStream* Stream);
|
||||
void __fastcall CloseStream(void);
|
||||
__fastcall virtual TJPEGStreamDecompressor(Classes::TComponent* AOwner);
|
||||
__fastcall virtual ~TJPEGStreamDecompressor(void);
|
||||
void __fastcall ConvertToDIB(Classes::TStream* Source, Classes::TStream* Destination, TJPEGOutputType
|
||||
OutputType);
|
||||
void __fastcall LoadPictureFromStream(Graphics::TPicture* Picture, Classes::TStream* Stream);
|
||||
void __fastcall LoadPictureFromResource(Graphics::TPicture* Picture, int Instance, const System::AnsiString
|
||||
ResName);
|
||||
void __fastcall LoadPictureFromResID(Graphics::TPicture* Picture, int Instance, int ResID);
|
||||
Graphics::TBitmap* __fastcall ReadBitMapFromStream(Classes::TStream* Stream);
|
||||
void __fastcall ReadDIBitmapFromStream(Classes::TStream* Stream, tagBITMAPINFO &BitMapInfo, TJPEGOutputType
|
||||
OutputType, int &bits);
|
||||
__property int BufSize = {read=FBufSize, write=SetBufSize, default=4096};
|
||||
};
|
||||
|
||||
class DELPHICLASS TJPEGFileDecompressor;
|
||||
class PASCALIMPLEMENTATION TJPEGFileDecompressor : public Mwajpeg::TJPEGStreamDecompressor
|
||||
{
|
||||
typedef Mwajpeg::TJPEGStreamDecompressor inherited;
|
||||
|
||||
public:
|
||||
void __fastcall LoadPictureFromFile(Graphics::TPicture* Picture, const System::AnsiString FileName)
|
||||
;
|
||||
|
||||
__published:
|
||||
__property Warnings ;
|
||||
__property Trace_Level ;
|
||||
__property PercentDone ;
|
||||
__property ColoursIn8bitMode ;
|
||||
__property GrayScaleOutput ;
|
||||
__property OnJPEGComment ;
|
||||
__property OnJPEGMarker ;
|
||||
__property TwoPassQuantize ;
|
||||
__property DitherMode ;
|
||||
__property DCTMethod ;
|
||||
__property DoFancyUpSampling ;
|
||||
__property DoBlockSmoothing ;
|
||||
__property OnProgressReport ;
|
||||
__property OnWarning ;
|
||||
public:
|
||||
/* TJPEGStreamDecompressor.create */ __fastcall virtual TJPEGFileDecompressor(Classes::TComponent*
|
||||
AOwner) : Mwajpeg::TJPEGStreamDecompressor(AOwner) { }
|
||||
/* TJPEGStreamDecompressor.Destroy */ __fastcall virtual ~TJPEGFileDecompressor(void) { }
|
||||
|
||||
};
|
||||
|
||||
class DELPHICLASS TJPEGFileCompressor;
|
||||
class PASCALIMPLEMENTATION TJPEGFileCompressor : public Mwajpeg::TJPEGStreamCompressor
|
||||
{
|
||||
typedef Mwajpeg::TJPEGStreamCompressor inherited;
|
||||
|
||||
public:
|
||||
void __fastcall SavePictureToFile(Graphics::TPicture* Picture, const System::AnsiString FileName);
|
||||
void __fastcall SaveStretchedPictureToFile(Graphics::TPicture* Picture, int width, int height, const
|
||||
System::AnsiString FileName);
|
||||
void __fastcall SaveBitmapToFile(Graphics::TBitmap* bitmap, const System::AnsiString FileName);
|
||||
void __fastcall SaveStretchedBitmapToFile(Graphics::TBitmap* bitmap, int width, int height, const System::AnsiString
|
||||
FileName);
|
||||
void __fastcall SaveMetafileToFile(Graphics::TMetafile* metafile, int width, int height, const System::AnsiString
|
||||
FileName);
|
||||
|
||||
__published:
|
||||
__property Warnings ;
|
||||
__property Trace_Level ;
|
||||
__property PercentDone ;
|
||||
__property GrayscaleOutput ;
|
||||
__property Comment ;
|
||||
__property Quality ;
|
||||
__property InputGamma ;
|
||||
__property ProgressiveJPEG ;
|
||||
__property DCTMethod ;
|
||||
__property OptimizeCoding ;
|
||||
__property RestartInterval ;
|
||||
__property RestartInRows ;
|
||||
__property SmoothingFactor ;
|
||||
__property WriteJFIFHeader ;
|
||||
__property DensityUnit ;
|
||||
__property X_Density ;
|
||||
__property Y_Density ;
|
||||
__property WriteAllTables ;
|
||||
__property OnProgressReport ;
|
||||
__property OnWriteMarkers ;
|
||||
__property OnWarning ;
|
||||
public:
|
||||
/* TJPEGStreamCompressor.create */ __fastcall virtual TJPEGFileCompressor(Classes::TComponent* AOwner
|
||||
) : Mwajpeg::TJPEGStreamCompressor(AOwner) { }
|
||||
/* TJPEGStreamCompressor.Destroy */ __fastcall virtual ~TJPEGFileCompressor(void) { }
|
||||
|
||||
};
|
||||
|
||||
class DELPHICLASS TJPEGBitmap;
|
||||
class PASCALIMPLEMENTATION TJPEGBitmap : public Graphics::TBitmap
|
||||
{
|
||||
typedef Graphics::TBitmap inherited;
|
||||
|
||||
private:
|
||||
bool FSaveAsBitmap;
|
||||
TJPEGStreamDecompressor* FDecompressor;
|
||||
TJPEGStreamCompressor* FCompressor;
|
||||
Classes::TNotifyEvent FProgressEvent;
|
||||
void __fastcall HandleDecompressOnProgress(System::TObject* Sender);
|
||||
void __fastcall HandleCompressOnProgress(System::TObject* Sender);
|
||||
|
||||
public:
|
||||
virtual void __fastcall LoadFromStream(Classes::TStream* Stream);
|
||||
virtual void __fastcall SaveToStream(Classes::TStream* Stream);
|
||||
virtual void __fastcall SaveToFile(const System::AnsiString FileName);
|
||||
public:
|
||||
/* TBitmap.Create */ __fastcall virtual TJPEGBitmap(void) : Graphics::TBitmap() { }
|
||||
/* TBitmap.Destroy */ __fastcall virtual ~TJPEGBitmap(void) { }
|
||||
|
||||
};
|
||||
|
||||
//-- var, const, procedure ---------------------------------------------------
|
||||
#define DefaultBufSize (Word)(4096)
|
||||
#define DefaultQuality (Byte)(75)
|
||||
#define sJPEGResourceType "JPEG"
|
||||
#define DefaultColoursIn8bitMode (Byte)(64)
|
||||
extern PACKAGE bool UseIsIllegal;
|
||||
extern PACKAGE Graphics::TBitmap* __fastcall ReSizeBitmap(Graphics::TBitmap* bitmap, int width, int
|
||||
height);
|
||||
extern PACKAGE Graphics::TBitmap* __fastcall CropBitmap(Graphics::TBitmap* bitmap, int width, int height
|
||||
, const Windows::TRect &Clip);
|
||||
extern PACKAGE Graphics::TBitmap* __fastcall MetaToBitmap(Graphics::TMetafile* metafile, int Width,
|
||||
int Height);
|
||||
|
||||
} /* namespace Mwajpeg */
|
||||
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||
using namespace Mwajpeg;
|
||||
#endif
|
||||
//-- end unit ----------------------------------------------------------------
|
||||
#endif // mwajpeg
|
BIN
CDopping/jpg3s/MWAJPEG.OBJ
Normal file
BIN
CDopping/jpg3s/MWAJPEG.OBJ
Normal file
Binary file not shown.
BIN
CDopping/jpg3s/MWAJPGC3.BPL
Normal file
BIN
CDopping/jpg3s/MWAJPGC3.BPL
Normal file
Binary file not shown.
16
CDopping/jpg3s/MWAKEY.ASC
Normal file
16
CDopping/jpg3s/MWAKEY.ASC
Normal file
@ -0,0 +1,16 @@
|
||||
Type Bits/KeyID Date User ID
|
||||
pub 1024/1028B231 1997/02/17 MWA Software <sales@mwassocs.demon.co.uk>
|
||||
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: 2.6.3i
|
||||
|
||||
mQCNAzMIL8cAAAEEAPStAr1wfLNg9gb/U0siXl9vUDl/CQvPHyNBmNa+D+DCl4W5
|
||||
QFgxGwVBwXrUMbHY/iwDat1QRgt1KFk4iGpwLXK9IltWhzqk+jHJHEEdS401c1cF
|
||||
eCcsS2+DZHKbQ/Gk9VsuqZjpH2k4B86S0EPXMXtJDD2oyWl1ieDA0S0QKLIxAAUR
|
||||
tClNV0EgU29mdHdhcmUgPHNhbGVzQG13YXNzb2NzLmRlbW9uLmNvLnVrPokAlQMF
|
||||
EDMIL8fgwNEtECiyMQEBcHUEAL/B+MJ6ECnTOSbI5Ui5svpJwWV0PFvxUpS8nHCz
|
||||
VOA4lk7PasRGljJJrop7W25KG+kkrv/uaUo1X/gsiAczszOxN56cloaWK9lAs7lX
|
||||
Nvu9uapZDLSHyNlcxFnERRZAgeD0GBTDiMKgM1ZZm9pP3u/naKLf8OYNtOErr82N
|
||||
Gn/z
|
||||
=lusp
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
45
CDopping/jpg3s/MWAQRJPG.H
Normal file
45
CDopping/jpg3s/MWAQRJPG.H
Normal file
@ -0,0 +1,45 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef mwaQRjpgH
|
||||
#define mwaQRjpgH
|
||||
//---------------------------------------------------------------------------
|
||||
#include <SysUtils.hpp>
|
||||
#include <Controls.hpp>
|
||||
#include <Classes.hpp>
|
||||
#include <Forms.hpp>
|
||||
#include <Qrctrls.hpp>
|
||||
#include <quickrpt.hpp>
|
||||
#include <db.hpp>
|
||||
#include <dbctrls.hpp>
|
||||
#include "mwajpeg.hpp"
|
||||
|
||||
#if __TCPLUSPLUS__ == 0x0520
|
||||
#define PACKAGE
|
||||
#pragma link "mwajpeg.obj"
|
||||
#pragma link "jpeglib.obj"
|
||||
#endif
|
||||
//---------------------------------------------------------------------------
|
||||
class PACKAGE TQRDBJPEGImage : public TQRImage
|
||||
{
|
||||
private:
|
||||
bool FAutoStretch;
|
||||
Mwajpeg::TJPEGFileDecompressor *FJPEGDecompressor;
|
||||
System::AnsiString FDataField;
|
||||
Db::TDataSet *FDataSet;
|
||||
Mwajpeg::TJPEGFileDecompressor* __fastcall GetJPEGDecompressor(void);
|
||||
void __fastcall SetDataSet(TDataSet* Value);
|
||||
protected:
|
||||
virtual void __fastcall Print(int OfsX, int OfsY);
|
||||
public:
|
||||
__fastcall TQRDBJPEGImage(TComponent* Owner);
|
||||
void __fastcall LoadPicture(void);
|
||||
virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
|
||||
|
||||
__published:
|
||||
__property Db::TDataSet* DataSet = {read=FDataSet, write=SetDataSet};
|
||||
__property System::AnsiString DataField = {read=FDataField, write=FDataField};
|
||||
__property bool AutoStretch = {read=FAutoStretch, write=FAutoStretch, nodefault};
|
||||
__property Mwajpeg::TJPEGFileDecompressor* JPEGDecompressor = {read=FJPEGDecompressor, write=FJPEGDecompressor};
|
||||
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
BIN
CDopping/jpg3s/MWAQRJPG.OBJ
Normal file
BIN
CDopping/jpg3s/MWAQRJPG.OBJ
Normal file
Binary file not shown.
21
CDopping/jpg3s/MWJPEG.CNT
Normal file
21
CDopping/jpg3s/MWJPEG.CNT
Normal file
@ -0,0 +1,21 @@
|
||||
:Base mwjpeg.hlp
|
||||
:Title MWA JPEG Component Library (C++Builder V3.0)
|
||||
1 Contents
|
||||
2 About the Component Library=Topic_ABOUTTHECOMPONENTLIBRARY
|
||||
2 Installation Instructions=Topic_INSTALLATIONINSTRUCTIONS
|
||||
2 Example Applications=Topic_USINGTHEJPEGDEMOAPPLICATION
|
||||
2 Classes
|
||||
3 TJPEGFileCompressor=Topic_TJPEGFileCompressor
|
||||
3 TJPEGFileDecompressor=Topic_TJPEGFileDecompressor
|
||||
3 TDBJPEGImage=Topic_TDBJPEGImage
|
||||
3 TQRDBJPEGImage=Topic_TQRDBJPEGImage
|
||||
1 Units=Topic_Units
|
||||
2 Utility Functions
|
||||
3 ReSizeBitmap=Topic_ResizeBitmap
|
||||
3 CropBitmap=Topic_CropBitmap
|
||||
3 MetaToBitmap=Topic_MetaToBitmap
|
||||
2 Registration
|
||||
3 Pricing Information=Topic_PRICINGINFORMATION
|
||||
3 How to Register=Topic_HOWTOREGISTER
|
||||
3 Secure Registration=Topic_SECUREREGISTRATION
|
||||
3 Shareware Licence=JPEGLicence
|
BIN
CDopping/jpg3s/MWJPEG.HLP
Normal file
BIN
CDopping/jpg3s/MWJPEG.HLP
Normal file
Binary file not shown.
304
CDopping/jpg3s/README.TXT
Normal file
304
CDopping/jpg3s/README.TXT
Normal file
@ -0,0 +1,304 @@
|
||||
Readme file for the JPEG Component Library version 1.5
|
||||
=======================================================
|
||||
|
||||
This file contains documentation for the JPEG Component Library by MWA Software.
|
||||
This version is for Borland C++Builder 3.0. Versions for Delphi 1.0, 2.0, 3.0 and
|
||||
4.0, and C++Builder 1 are also available. For further information please contact
|
||||
MWA Software -
|
||||
|
||||
mailto:sales@mwassocs.demon.co.uk.
|
||||
http://www.demon.co.uk/mwa-soft
|
||||
|
||||
ONLINE HELP IS ALSO AVAILABLE IN THE FILE mwjpeg.hlp.
|
||||
|
||||
This file contains the following information:
|
||||
|
||||
1. ABOUT THE COMPONENT LIBRARY
|
||||
2. INSTALLATION INSTRUCTIONS
|
||||
3. USING THE JPEG DEMO APPLICATION
|
||||
4. PRELIMINARY SOFTWARE DOCUMENTATION
|
||||
5. PRICING INFORMATION
|
||||
6. HOW TO REGISTRATION
|
||||
7. SECURE REGISTRATION
|
||||
|
||||
1. ABOUT THE COMPONENT LIBRARY
|
||||
==============================
|
||||
|
||||
The JPEG Component Library provides two additional non-visual components for use
|
||||
under either Delphi 1.0, 2.0, 3.0 and C++Builder 1 and 3. It also provides a Data
|
||||
Aware JPEG Image component which may be used to save and access JPEG encoded
|
||||
images in a database blob field. A corresponding printable component is also
|
||||
provided so that you may print images from a database using Quick Reports.
|
||||
|
||||
This file contains the C++Builder 3 version. Please access
|
||||
http://www.demon.co.uk/mwa-soft for the remaining versions.
|
||||
|
||||
The two non-visual components are TJPEGFileCompressor and TJPEGFileDecompressor.
|
||||
These support compression of images to JPEG Format and decompression respectively.
|
||||
The data aware component is TDBJPEGImage, and the printable component is
|
||||
TQRDBJPEGImage.
|
||||
|
||||
Simply installing these components JPEG enables the Delphi IDE. The components
|
||||
register themselves as supporting .jpg files and the JPEG compression format and,
|
||||
when you come to load an image into a TImage Picture, the JPEG format will be
|
||||
found amongst the list of supported file formats. An image loaded from a JPEG
|
||||
source can also be saved back to JPEG. These components support the JPEG File
|
||||
Interchange Format (JFIF).
|
||||
|
||||
These two components also support TImage at run-time too. As at design time, if
|
||||
TJPEGFileDecompressor is included in your project, then calling
|
||||
TImage.Picture.LoadFromFile when the file extension is .jpg will automatically
|
||||
invoke the JPEG decompressor. You can also explicitly call TJPEGFileDecompressor
|
||||
to load a JPEG image from any file.
|
||||
|
||||
TJPEGFileCompressor can be used to save a TImage.Picture in JPEG format, and can
|
||||
handle pictures that are either bitmaps or metafiles. It can also compress a
|
||||
device independent bitmap, and change the size of bitmaps before compression.
|
||||
|
||||
TDBJPEGImage is linked to a database blob field and also uses
|
||||
TJPEGFileDecompressor and TJPEGFileCompressor to save and load JPEG encoded images
|
||||
from the Blob Field. Use of the JPEG compressor and decompressor components can be
|
||||
implicit if the default parameter settings are sufficient. On the other hand, the
|
||||
reference may be explicit to copies of these components with non-default parameter
|
||||
settings. TQRDBJPEGImage can be used to print a JPEG Image using Quick Reports 2.
|
||||
|
||||
This software uses original software for JPEG developed by the Independent JPEG
|
||||
Group (see ftp://ftp.uu.net/graphics/jpeg). The IDG have made available a library
|
||||
of generic 'C' code supporting JPEG compression and decompression and have
|
||||
permitted its free use provided the source is acknowledged. The IDG code has been
|
||||
modified for use with Delphi and MS Windows and is provided as compiled object
|
||||
files. Optionally, they may be separately compiled into a dll.
|
||||
|
||||
An interface to this software is provided by the unit jpeglib.pas. This is
|
||||
encapsulated as a set of Delphi components in the unit mwajpeg.pas, which also
|
||||
supports the mapping of the environment independent image format expected by the
|
||||
IJG code into MS Windows bitmap and metafile formats.
|
||||
|
||||
When you purchase a licence to this product, you purchase a licence for the source
|
||||
code to the mwajpeg and jpeglib units and the right to include binaries derived
|
||||
from them in your own products without having to pay additional royalties. You
|
||||
also have a right to freely distribute the mwjpeg and mwjpeg32 dlls (if used), and
|
||||
copies of the modified 'C' source is also included in the registered version.
|
||||
Support is also provided by EMail albeit without a guaranteed response time.
|
||||
|
||||
2. INSTALLATION INSTRUCTIONS
|
||||
============================
|
||||
|
||||
Installation is straightforward. The JPEG Component Library is distributed in a
|
||||
.zip archive; separate versions are provided for use with Delphi 1.0, 2.0 and 3.0,
|
||||
and C++Builder 1 and 3. Make sure you have the correct version and then:
|
||||
|
||||
i. Create a new sub-directory in your delphi directory called "jpeg" and copy the
|
||||
remaining files contained in the .zip file into this new subdirectory. You should
|
||||
aim to preserve the directory names held in the zip - if you are using pkunzip
|
||||
them use the -d option when unzipping the files. Note that if you do use a different
|
||||
directory from that suggested then you will have to modify the demo programs' .mak
|
||||
files to change the search path for the JPEG components.
|
||||
|
||||
iii. Start the C++Builder IDE and choose the Component|Install Packages menu item.
|
||||
Click on the "Add" button and browse for the mwjpegc3.bpl file you just copied to
|
||||
the new subdirectory. Click on OK. The package will now be installed. By
|
||||
default the JPEG components are placed on the "Additional" tab, TDBJPEGImage is on
|
||||
the Data Controls tab, and TQRDBJPEGImage is on the QReports tab.
|
||||
|
||||
iv. You should now add ";$(BCB)\jpeg" to the end of the library path in the
|
||||
Tools|Environment Options dialog box (it's on the Library tab). This is so that the
|
||||
jpeg components can be automatically found in any project of yours that uses them.
|
||||
|
||||
You should now restart C++Builder before trying to load a JPEG Image at Design
|
||||
Time.
|
||||
|
||||
---------------
|
||||
|
||||
The components are now installed. Use the demo application to learn how they are
|
||||
used.
|
||||
|
||||
3. USING THE JPEG DEMO APPLICATION
|
||||
==================================
|
||||
|
||||
Two demo applications are provided. A JPEG Viewer application demonstrates the
|
||||
opening and saving JPEG image files and conversion to and from bitmap files (.bmp)
|
||||
and from Windows Metafiles (.wmf). A database application demonstrates use of the
|
||||
data aware component.
|
||||
|
||||
The JPEG Viewer application may be found in the Examples\Viewer subdirectory
|
||||
created above. To activate, load the jpegdemo.bpr file into the IDE using the
|
||||
File|Open Project menu item. This provides a simple application that can open and
|
||||
save .jpg (JPEG), .bmp (Windows Bitmap) and .wmf (Windows metfaile) files, and
|
||||
copy and paste bitmaps and metafiles to and from the clipboard. To test out,
|
||||
simply compile and run the application.
|
||||
|
||||
To load and view a JPEG file, click on the open button and load the test.jpg file
|
||||
contained in the subdirectory created above. You can also try saving it to another
|
||||
file name (you can save it as either a JPEG or a bitmap). You can also use the
|
||||
demo application to convert windows bitmaps and metafiles to jpegs simply by
|
||||
opening the file containing them (or pasting from the clipboard) and saving them
|
||||
as jpegs. The viewer window can also be resized by simply dragging the bottom
|
||||
right hand corner with the mouse. Saving the image will save it at the new size.
|
||||
|
||||
The application also demonstrates a simple method for printing a JPEG Image using
|
||||
Quick Reports (even with no database).
|
||||
|
||||
You can also use the Object Inspector to see the properties published by the two
|
||||
JPEG components.
|
||||
|
||||
The JPEG database application may also be found in the Examples\db subdirectory
|
||||
created above. To activate, load the DBDemo.bpr file into the IDE using the
|
||||
File|Open Project menu item. This application is an extension of the Viewer and
|
||||
presents images held in an example database. The database records may be perused
|
||||
using the DBNavigator bar provided. It is still possible to save images from the
|
||||
database record and to replace/insert images from files or the clipboard. The
|
||||
application also demonstrates how to print a report including JPEG Images.
|
||||
|
||||
4. SOFTWARE DOCUMENTATION
|
||||
=========================
|
||||
|
||||
See the online help file "mwjpeg.hlp"
|
||||
|
||||
5. PRICING INFORMATION
|
||||
======================
|
||||
|
||||
JPEG Component Library Source Licence 12 pounds sterling (US$20)
|
||||
|
||||
US dollar prices are for indicative pricing only and assume an exchange rate of
|
||||
one pound = $1.66. All prices are VAT exclusive. UK VAT (currently 17.5%) will be
|
||||
|
||||
charged for all UK residents and EC residents that are not VAT registered or do
|
||||
provide a VAT number as proof of registration.
|
||||
|
||||
|
||||
6. HOW TO REGISTER
|
||||
==================
|
||||
|
||||
Registration may be made by FAX, Letter Post or EMail. For FAX and Letter Post
|
||||
registrations, a Registration Form is provided in the File "regform.txt" for you
|
||||
to EMail or print out (FAX or letter post), complete, and send to MWA Software.
|
||||
You can also register using the Compuserve Shareware Registration Service (GO
|
||||
SWREG). The software is registered under the name "MWA JPEG Component Library".
|
||||
|
||||
Visa, Mastercard, Eurocard and JCB are accepted as payment mechanisms.
|
||||
International money orders in pounds sterling and cheques drawn on UK Bank
|
||||
Accounts are also accepted. US Dollar denominated checks are also acceptable
|
||||
provided that an additional 10% is added to the purchase price to allow for the
|
||||
additional Bank Charge. Please make cheques payable to McCallum Whyman Associates
|
||||
Ltd.
|
||||
|
||||
EMail registrations should be sent to:
|
||||
Internet: sales@mwassocs.demon.co.uk, or
|
||||
Compuserve: 100041,315
|
||||
|
||||
FAX:
|
||||
UK: 01962 735581
|
||||
Int: +44 1962 735581
|
||||
|
||||
MWA Software,
|
||||
P.O.Box 37,
|
||||
Alresford,
|
||||
Hants,
|
||||
SO24 9ZF,
|
||||
ENGLAND
|
||||
|
||||
|
||||
All registrations are accepted on the basis that the registered user will be
|
||||
deemed to have accepted and be bound by the licence conditions for the registered
|
||||
versions of JPEG component library as recorded in the file reg-lnce.txt supplied
|
||||
with the evaluation version of the software.
|
||||
|
||||
7. Secure Registration by EMail
|
||||
================================
|
||||
|
||||
There are two routes by which you can EMail your credit card details to MWA
|
||||
Software without incurring the risk of sending a credit card number in clear
|
||||
across the Internet. One route is to use the encryption mechanism provided by
|
||||
pkzip. The other is to use PGP.
|
||||
|
||||
pkzip encryption will generally be good enough to avoid detection by the so called
|
||||
"sniffer" programs that are understood to monitor EMail communications, looking
|
||||
for numbers that look like credit cards. However, it is not believe to be good
|
||||
enough to resist a determined attack by someone who has access to the necessary
|
||||
skills in cryptography and a powerful enough computer. On the other hand PGP is
|
||||
understood to offer a very strong level of protection. MWA Software makes no
|
||||
recommendations as to which is the better approach. It is for you to decide based
|
||||
on your own location and concerns.
|
||||
|
||||
Secure Transmission using pkzip.
|
||||
================================
|
||||
|
||||
pkzip can encrypt files in a .zip archive using a simple password. To register for
|
||||
the JPEG Component Library by EMail when using pkzip as your encryption engine:
|
||||
|
||||
1. Using the file "regform.txt" as a template, complete a registration form for
|
||||
the JPEG Component Library. Remember to include your credit card details, billing
|
||||
address and your name as it appears on your credit card.
|
||||
|
||||
2. Choose a password. Opening a dictionary at some random page is often a good way
|
||||
to do this. For example, let's assume that you choose NERVOUS as your password.
|
||||
|
||||
3. Compress and encrypt the modified regform.txt using pkzip and the -s option to
|
||||
encrypt. For example, with NERVOUS as your password, use the command line:
|
||||
|
||||
pkzip -sNERVOUS regform regform.txt
|
||||
|
||||
This will create regform.zip containing your compressed and encryted registration
|
||||
details.
|
||||
|
||||
4. EMail regform.zip to MWA Software. Your own EMail utility will usually have a
|
||||
way to send binary attachments to an EMail message. If you do not have such a
|
||||
capability then you can use the J-Write Text Editor (also available from MWA
|
||||
Software) to uuencode a binary file into a text form suitable for attaching to an
|
||||
EMAil message. This feature is available from the File|Merge menu item.
|
||||
|
||||
The MWA Software EMail address is sales@mwassocs.demon.co.uk.
|
||||
Set the subject to "JPEG Registration"
|
||||
|
||||
5. Send the password you choose at step 2 in a separate EMail to MWA Software. For
|
||||
best protection, use our Compuserve EMail address:
|
||||
|
||||
100041.315@compuserve.com
|
||||
|
||||
Set the subject to "re: JPEG Registration"
|
||||
|
||||
Secure Transmission using PGP
|
||||
=============================
|
||||
|
||||
PGP is a powerful data encryption tool that has been made publicly available by
|
||||
its author "Phillip Zimmermann". It is sufficiently good to attract the attentions
|
||||
of various government's agency's and you should be aware that in certain countries
|
||||
the use of such encryption software is a criminal offence. MWA Software only uses
|
||||
PGP to decrypt registrations and does not send encrypted EMail. Having said that,
|
||||
the international version of PGP can be obtained from:
|
||||
|
||||
http://www.ifi.uio.no/pgp/
|
||||
|
||||
The following URL is also a good source of information about PGP, including
|
||||
information on how to get the more limited US version.
|
||||
|
||||
http://www.arc.unm.edu/~drosoff/pgp/pgp.html
|
||||
|
||||
To encrypt a registration using PGP, do the following:
|
||||
|
||||
1. Using the file "regform.txt" as a template, complete a registration form for
|
||||
the JPEG Component Library. Remember to include your credit card details, billing
|
||||
address and your name as it appears on your credit card.
|
||||
|
||||
2. Encrypt regform.txt using PGP and the MWA public key. This is provided in the
|
||||
file "mwakey.asc", which should be in the same archive as this file. This will
|
||||
typically be performed by the following commands (the ; indicates the start of a
|
||||
comment):
|
||||
|
||||
pgp -ka mwakey.asc ;add MWA key to your public keyring
|
||||
pgp -ea regform.txt "MWA Software" ;encrypt and encode for EMail
|
||||
pgp -kr "MWA Software" ;remove the MWA key from your keyring
|
||||
|
||||
The above will have created the encrypted file "regform.pgp". This is a text file
|
||||
and may be sent as part of a normal EMail to MWA Software:
|
||||
|
||||
sales@mwassocs.demon.co.uk
|
||||
|
||||
Set the subject to "JPEG Registration"
|
||||
|
||||
If you have any reason to doubt the validity of the MWA key, request an up-to-date
|
||||
version by EMail to the above address, with a subject of "Key Verification
|
||||
Request".
|
||||
|
||||
Thank you for registering forthe JPEG Component Library.
|
42
CDopping/jpg3s/REGFORM.TXT
Normal file
42
CDopping/jpg3s/REGFORM.TXT
Normal file
@ -0,0 +1,42 @@
|
||||
Registration Form for JPEG Component Library
|
||||
============================================
|
||||
|
||||
PLEASE SUPPLY ONE LICENCE FOR :
|
||||
|
||||
JPEG Component Library Source Licence 12 pounds sterling (US$20)
|
||||
|
||||
US dollar prices are for indicative pricing only and assume an exchange rate of
|
||||
one pound = $1.66. All credit cards will be billed in pounds and converted to your
|
||||
local currency by the credit company at current market rates. All prices are VAT
|
||||
exclusive. UK VAT (currently 17.5%) will be charged for all UK residents and EC
|
||||
residents that are not VAT registered or do not provide a VAT number as proof of
|
||||
registration.
|
||||
|
||||
PLEASE CHARGE MY CREDIT CARD FOR THE FULL PURCHASE PRICE INCLUDING VAT WHERE
|
||||
APPLICABLE AS FOLLOWS:
|
||||
|
||||
Credit Card No:
|
||||
Expiry Date:
|
||||
Name as it appears on credit card:
|
||||
Billing Address:
|
||||
EMail Address:
|
||||
|
||||
All registrations are accepted on the basis that the registered user will be
|
||||
deemed to have accepted and be bound by the licence conditions for the registered
|
||||
versions of the JPEG component library as recorded in the on-line
|
||||
help file supplied with the evaluation version of the software.
|
||||
|
||||
EMail registrations should be sent to:
|
||||
Internet: sales@mwassocs.demon.co.uk, or
|
||||
Compuserve: 100041,315
|
||||
|
||||
FAX:
|
||||
UK: 01962 735581
|
||||
Int: +44 1962 735581
|
||||
|
||||
MWA Software,
|
||||
P.O.Box 37,
|
||||
Alresford,
|
||||
Hants,
|
||||
SO24 9ZF,
|
||||
ENGLAND
|
81
CDopping/jpg3s/WHATS.NEW
Normal file
81
CDopping/jpg3s/WHATS.NEW
Normal file
@ -0,0 +1,81 @@
|
||||
JPEG Component Library Version 1.5 Release Notes
|
||||
================================================
|
||||
|
||||
This is version 1.5 of MWA Software's popular JPEG Component Library.
|
||||
New in this release:
|
||||
|
||||
1. This release is primarily for Delphi 4 support and to ensure a common
|
||||
software base is maintained.
|
||||
|
||||
2. Two new methods "LoadPictureFromResource" and "LoadPictureFromResID"
|
||||
are provided so that JPEG images can be packaged with a program as
|
||||
resources and then loaded at run-time. This can save considerable space
|
||||
compared with loading an image into TImage at run-time. See the help for
|
||||
information on how to use this feature and the Viewer Demo application,
|
||||
which includes a JPEG resource in its about box.
|
||||
|
||||
3. The Delphi 3 version should now install into the IDE without
|
||||
generating a "A Device Attached to the System is not Working" error
|
||||
message. This was due to the components having been compiled on a system
|
||||
with Quick Reports Professional installed. This error message was
|
||||
experienced by users that used the standard version shipped by Borland.
|
||||
|
||||
New features in Version 1.4:
|
||||
|
||||
1. Support for C++Builder 3.0. The component library now also supports
|
||||
C++Builder 3.0. The functionality is identical to the other versions
|
||||
and a common source base is still maintained.
|
||||
|
||||
2. No DLL required for Delphi 3, and all versions of C++Builder.
|
||||
Version 1.3 required a separate dll for the JPEG compression software.
|
||||
This is no longer true for Delphi 3 and C++Builder. By default the
|
||||
JPEG software is linked into your program - dll support is still
|
||||
available as a command line option.
|
||||
|
||||
3. Dynamic dll loading. The Delphi 1 and Delphi 2 versions now load
|
||||
the JPEG dll dynamically. This enables a more meaningful error message
|
||||
to be returned if the library cannot be found. The version 1.3 static
|
||||
load is still available as an option.
|
||||
|
||||
4. A new visual component - TDBJPEGImage has been provided. This is a
|
||||
data aware descendant of TImage that stores images in a database blob
|
||||
field using JPEG compression.
|
||||
|
||||
5. Quick Reports support: with Quick Reports version 1, the
|
||||
TDBJPEGImage may be included on a report. For version 2, a new
|
||||
component TQRJPEGImage is provided so that you can print JPEG images
|
||||
direct from a database.
|
||||
|
||||
Bug Fixes:
|
||||
---------
|
||||
|
||||
1. Parameters to TStream.Seek in TJPEGCompressor.SkipInputBytes now
|
||||
the correct way round :( Why didn't Borland make the "ORigin"
|
||||
parameter an enumerated type then this typo would have been a compile
|
||||
time error!
|
||||
|
||||
2. The error code returned from PlayEnhMetaFile is now returned in the
|
||||
error messsage
|
||||
|
||||
3. The decompressor now has a property (ColoursIn8bitMode) that allows
|
||||
the user to specify the actual numbers of discrete colours in the
|
||||
image when decoding to a 256 colour image. This used to be 256.
|
||||
However, a lower number can avoid a colour cast especially with Blank
|
||||
and White images encoded as full colour images. The default is now 64.
|
||||
|
||||
4. When the buffer size is changed the buffer will now be freed and
|
||||
reallocated.
|
||||
|
||||
5. An event handler for warning messages has been added.
|
||||
|
||||
6. You should now be able to correctly save JPEG images when working
|
||||
in the IDE and want to save an image as a JPEG at design time (but
|
||||
only when the image was loaded from a JPEG source - the IDE cannot be
|
||||
used to convert JPEG's to bitmaps, but it can be used to convert from
|
||||
JPEGs to bitmaps.
|
||||
|
||||
7. OnProgressReport now spelt correctly! Note that uses upgrading from
|
||||
earlier versions will experience an error message when loading
|
||||
projects that use the JPEG Component Library reporting that the mis-
|
||||
spelt property name cannot be found. Ignore this error and manually
|
||||
direct the "OnProgressReport" to its event handler.
|
BIN
CDopping/jpg3s/mwjpeg.GID
Normal file
BIN
CDopping/jpg3s/mwjpeg.GID
Normal file
Binary file not shown.
Reference in New Issue
Block a user