new winunits packages

This commit is contained in:
peter 2005-03-28 15:09:35 +00:00
parent 2326c2b62f
commit 676e194eea
18 changed files with 16643 additions and 1919 deletions

View File

@ -1,5 +1,5 @@
#
# Don't edit, this file is generated by FPCMake Version 1.9.8 [2005/02/09]
# Don't edit, this file is generated by FPCMake Version 1.9.8 [2005/03/28]
#
default: all
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
@ -237,7 +237,7 @@ ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_DIRS+=unzip
endif
ifeq ($(FULL_TARGET),i386-win32)
override TARGET_DIRS+=unzip opengl gtk gtk2 zlib mmsystem tcl cdrom fpgtk winver
override TARGET_DIRS+=unzip opengl gtk gtk2 zlib tcl cdrom fpgtk winunits
endif
ifeq ($(FULL_TARGET),i386-os2)
override TARGET_DIRS+=os2units rexx unzip zlib x11 gtk libpng tcl imlib fpgtk
@ -1026,7 +1026,7 @@ export UPXPROG
ZIPOPT=-9
ZIPEXT=.zip
ifeq ($(USETAR),bz2)
TAROPT=vI
TAROPT=vj
TAREXT=.tar.bz2
else
TAROPT=vz
@ -1372,11 +1372,10 @@ TARGET_DIRS_OPENGL=1
TARGET_DIRS_GTK=1
TARGET_DIRS_GTK2=1
TARGET_DIRS_ZLIB=1
TARGET_DIRS_MMSYSTEM=1
TARGET_DIRS_TCL=1
TARGET_DIRS_CDROM=1
TARGET_DIRS_FPGTK=1
TARGET_DIRS_WINVER=1
TARGET_DIRS_WINUNITS=1
endif
ifeq ($(FULL_TARGET),i386-os2)
TARGET_DIRS_OS2UNITS=1
@ -2789,95 +2788,50 @@ newt:
$(MAKE) -C newt all
.PHONY: newt_all newt_debug newt_smart newt_release newt_units newt_examples newt_shared newt_install newt_sourceinstall newt_exampleinstall newt_distinstall newt_zipinstall newt_zipsourceinstall newt_zipexampleinstall newt_zipdistinstall newt_clean newt_distclean newt_cleanall newt_info newt_makefiles newt
endif
ifdef TARGET_DIRS_MMSYSTEM
mmsystem_all:
$(MAKE) -C mmsystem all
mmsystem_debug:
$(MAKE) -C mmsystem debug
mmsystem_smart:
$(MAKE) -C mmsystem smart
mmsystem_release:
$(MAKE) -C mmsystem release
mmsystem_units:
$(MAKE) -C mmsystem units
mmsystem_examples:
$(MAKE) -C mmsystem examples
mmsystem_shared:
$(MAKE) -C mmsystem shared
mmsystem_install:
$(MAKE) -C mmsystem install
mmsystem_sourceinstall:
$(MAKE) -C mmsystem sourceinstall
mmsystem_exampleinstall:
$(MAKE) -C mmsystem exampleinstall
mmsystem_distinstall:
$(MAKE) -C mmsystem distinstall
mmsystem_zipinstall:
$(MAKE) -C mmsystem zipinstall
mmsystem_zipsourceinstall:
$(MAKE) -C mmsystem zipsourceinstall
mmsystem_zipexampleinstall:
$(MAKE) -C mmsystem zipexampleinstall
mmsystem_zipdistinstall:
$(MAKE) -C mmsystem zipdistinstall
mmsystem_clean:
$(MAKE) -C mmsystem clean
mmsystem_distclean:
$(MAKE) -C mmsystem distclean
mmsystem_cleanall:
$(MAKE) -C mmsystem cleanall
mmsystem_info:
$(MAKE) -C mmsystem info
mmsystem_makefiles:
$(MAKE) -C mmsystem makefiles
mmsystem:
$(MAKE) -C mmsystem all
.PHONY: mmsystem_all mmsystem_debug mmsystem_smart mmsystem_release mmsystem_units mmsystem_examples mmsystem_shared mmsystem_install mmsystem_sourceinstall mmsystem_exampleinstall mmsystem_distinstall mmsystem_zipinstall mmsystem_zipsourceinstall mmsystem_zipexampleinstall mmsystem_zipdistinstall mmsystem_clean mmsystem_distclean mmsystem_cleanall mmsystem_info mmsystem_makefiles mmsystem
endif
ifdef TARGET_DIRS_WINVER
winver_all:
$(MAKE) -C winver all
winver_debug:
$(MAKE) -C winver debug
winver_smart:
$(MAKE) -C winver smart
winver_release:
$(MAKE) -C winver release
winver_units:
$(MAKE) -C winver units
winver_examples:
$(MAKE) -C winver examples
winver_shared:
$(MAKE) -C winver shared
winver_install:
$(MAKE) -C winver install
winver_sourceinstall:
$(MAKE) -C winver sourceinstall
winver_exampleinstall:
$(MAKE) -C winver exampleinstall
winver_distinstall:
$(MAKE) -C winver distinstall
winver_zipinstall:
$(MAKE) -C winver zipinstall
winver_zipsourceinstall:
$(MAKE) -C winver zipsourceinstall
winver_zipexampleinstall:
$(MAKE) -C winver zipexampleinstall
winver_zipdistinstall:
$(MAKE) -C winver zipdistinstall
winver_clean:
$(MAKE) -C winver clean
winver_distclean:
$(MAKE) -C winver distclean
winver_cleanall:
$(MAKE) -C winver cleanall
winver_info:
$(MAKE) -C winver info
winver_makefiles:
$(MAKE) -C winver makefiles
winver:
$(MAKE) -C winver all
.PHONY: winver_all winver_debug winver_smart winver_release winver_units winver_examples winver_shared winver_install winver_sourceinstall winver_exampleinstall winver_distinstall winver_zipinstall winver_zipsourceinstall winver_zipexampleinstall winver_zipdistinstall winver_clean winver_distclean winver_cleanall winver_info winver_makefiles winver
ifdef TARGET_DIRS_WINUNITS
winunits_all:
$(MAKE) -C winunits all
winunits_debug:
$(MAKE) -C winunits debug
winunits_smart:
$(MAKE) -C winunits smart
winunits_release:
$(MAKE) -C winunits release
winunits_units:
$(MAKE) -C winunits units
winunits_examples:
$(MAKE) -C winunits examples
winunits_shared:
$(MAKE) -C winunits shared
winunits_install:
$(MAKE) -C winunits install
winunits_sourceinstall:
$(MAKE) -C winunits sourceinstall
winunits_exampleinstall:
$(MAKE) -C winunits exampleinstall
winunits_distinstall:
$(MAKE) -C winunits distinstall
winunits_zipinstall:
$(MAKE) -C winunits zipinstall
winunits_zipsourceinstall:
$(MAKE) -C winunits zipsourceinstall
winunits_zipexampleinstall:
$(MAKE) -C winunits zipexampleinstall
winunits_zipdistinstall:
$(MAKE) -C winunits zipdistinstall
winunits_clean:
$(MAKE) -C winunits clean
winunits_distclean:
$(MAKE) -C winunits distclean
winunits_cleanall:
$(MAKE) -C winunits cleanall
winunits_info:
$(MAKE) -C winunits info
winunits_makefiles:
$(MAKE) -C winunits makefiles
winunits:
$(MAKE) -C winunits all
.PHONY: winunits_all winunits_debug winunits_smart winunits_release winunits_units winunits_examples winunits_shared winunits_install winunits_sourceinstall winunits_exampleinstall winunits_distinstall winunits_zipinstall winunits_zipsourceinstall winunits_zipexampleinstall winunits_zipdistinstall winunits_clean winunits_distclean winunits_cleanall winunits_info winunits_makefiles winunits
endif
ifdef TARGET_DIRS_OS2UNITS
os2units_all:

View File

@ -19,7 +19,7 @@ dirs_openbsd=unzip zlib \
x11 opengl gtk syslog \
forms svgalib ggi libpng libgd \
utmp bfd gdbm ncurses fpgtk tcl imlib gnome1
dirs_win32=unzip opengl gtk gtk2 zlib mmsystem tcl cdrom fpgtk winver
dirs_win32=unzip opengl gtk gtk2 zlib tcl cdrom fpgtk winunits
dirs_os2=os2units \
rexx \
unzip zlib \

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +0,0 @@
#
# Makefile.fpc for CGI Units
#
[package]
name=mmsystem
version=1.9.8
[target]
units=mmsystem
[install]
fpcpackage=y
[default]
fpcdir=../../..

View File

@ -1,5 +1,5 @@
#
# Don't edit, this file is generated by FPCMake Version 1.9.8 [2005/02/09]
# Don't edit, this file is generated by FPCMake Version 1.9.8 [2005/03/28]
#
default: all
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
@ -230,205 +230,205 @@ ifeq ($(UNITSDIR),)
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
endif
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
override PACKAGE_NAME=winver
override PACKAGE_NAME=winunits
override PACKAGE_VERSION=1.9.8
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-win32)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-os2)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-freebsd)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-beos)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-netbsd)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-solaris)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-qnx)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-netware)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-openbsd)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-wdosx)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-emx)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-watcom)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),m68k-amiga)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),m68k-atari)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),m68k-palmos)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),powerpc-linux)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),powerpc-macos)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),sparc-solaris)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),x86_64-linux)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=winver
override TARGET_UNITS+=winver mmsystem comobj ole2 activex shellapi shlobj
endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-win32)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-os2)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-freebsd)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-beos)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-netbsd)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-solaris)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-qnx)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-netware)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-openbsd)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-wdosx)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-emx)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-watcom)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-amiga)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-atari)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-palmos)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc-linux)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc-macos)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),sparc-solaris)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),x86_64-linux)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_EXAMPLES+=testver
override TARGET_EXAMPLES+=examples
endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
@ -1153,7 +1153,7 @@ export UPXPROG
ZIPOPT=-9
ZIPEXT=.zip
ifeq ($(USETAR),bz2)
TAROPT=vI
TAROPT=vj
TAREXT=.tar.bz2
else
TAROPT=vz

View File

@ -0,0 +1,17 @@
#
# Makefile.fpc for WinUnits
#
[package]
name=winunits
version=1.9.8
[target]
units=winver mmsystem comobj ole2 activex shellapi shlobj
examples=examples
[install]
fpcpackage=y
[default]
fpcdir=../../..

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,88 @@
{
$Id$
This file is part of the Free Pascal run time library.
Copyright (c) 2002 by Florian Klaempfl
member of the Free Pascal development team.
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
{$mode objfpc}
{$H+}
unit comobj;
interface
{$ifndef VER1_0}
function CreateClassID : ansistring;
function CreateComObject(const ClassID: TGUID) : IUnknown;
function CreateRemoteComObject(const MachineName : WideString;const ClassID : TGUID) : IUnknown;
function CreateOleObject(const ClassName : string) : IDispatch;
function GetActiveOleObject(const ClassName: string) : IDispatch;
{$endif VER1_0}
implementation
{$ifndef VER1_0}
uses
windows,activex;
{$define FPC_COMOBJ_HAS_CREATE_CLASS_ID}
function CreateClassID : ansistring;
var
ClassID : TCLSID;
p : PWideChar;
begin
CoCreateGuid(ClassID);
StringFromCLSID(ClassID,p);
result:=p;
CoTaskMemFree(p);
end;
function CreateComObject(const ClassID : TGUID) : IUnknown;
begin
{!!!!!!!}
runerror(211);
end;
function CreateRemoteComObject(const MachineName : WideString;const ClassID : TGUID) : IUnknown;
begin
{!!!!!!!}
runerror(211);
end;
function CreateOleObject(const ClassName : string) : IDispatch;
begin
{!!!!!!!}
runerror(211);
end;
function GetActiveOleObject(const ClassName : string) : IDispatch;
begin
{!!!!!!!}
runerror(211);
end;
{$endif VER1_0}
end.
{
$Log$
Revision 1.1 2005-03-28 15:09:35 peter
new winunits packages
Revision 1.3 2005/02/14 17:13:32 peter
* truncate log
}

View File

@ -2858,7 +2858,10 @@ function DIBINDEX(n: longint): longint;
end.
{
$Log$
Revision 1.7 2005-02-14 17:13:21 peter
Revision 1.1 2005-03-28 15:09:35 peter
new winunits packages
Revision 1.7 2005/02/14 17:13:21 peter
* truncate log
}

View File

@ -0,0 +1,215 @@
{
$Id$
This file is part of the Free Pascal run time library.
Contains the corresponding declarations to objbase.h
Used objbase.h, file date 2001-09-14 from MingW-C
This file is heavily edited after conversion!
**********************************************************************}
{$ifdef read_interface}
function CoBuildVersion:DWORD;stdcall; external 'ole32.dll' name 'CoBuildVersion';
function CoInitialize(_para1:PVOID):HRESULT;stdcall; external 'ole32.dll' name 'CoInitialize';
function CoInitializeEx(_para1:LPVOID; _para2:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoInitializeEx';
procedure CoUninitialize;stdcall; external 'ole32.dll' name 'CoUninitialize';
function CoGetMalloc(_para1:DWORD; out _para2:IMalloc):HRESULT;stdcall; external 'ole32.dll' name 'CoGetMalloc';
function CoGetCurrentProcess:DWORD;stdcall; external 'ole32.dll' name 'CoGetCurrentProcess';
function CoRegisterMallocSpy(_para1:IMallocSpy):HRESULT;stdcall; external 'ole32.dll' name 'CoRegisterMallocSpy';
function CoRevokeMallocSpy:HRESULT;stdcall; external 'ole32.dll' name 'CoRevokeMallocSpy';
function CoCreateStandardMalloc(_para1:DWORD; out _para2:IMalloc):HRESULT;stdcall; external 'ole32.dll' name 'CoGetMalloc';
function CoGetClassObject(const _para1:TCLSID; _para2:DWORD; _para3:PVOID; const _para4:TIID; out _para5):HRESULT;stdcall; external 'ole32.dll' name 'CoGetClassObject';
function CoRegisterClassObject(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD; _para4:DWORD; _para5:PDWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoRegisterClassObject';
function CoRevokeClassObject(_para1:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoRevokeClassObject';
function CoGetMarshalSizeMax(_para1:PULONG;const _para2:TIID; _para3:IUnknown; _para4:DWORD; _para5:PVOID;
_para6:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoGetMarshalSizeMax';
function CoMarshalInterface(_para1:IStream;const _para2:TIID; _para3:IUnknown; _para4:DWORD; _para5:PVOID;
_para6:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoMarshalInterface';
function CoUnmarshalInterface(_para1:IStream;const _para2:TIID; out _para3):HRESULT;stdcall; external 'ole32.dll' name 'CoUnmarshalInterface';
function CoMarshalHresult(_para1:IStream; _para2:HRESULT):HRESULT;stdcall; external 'ole32.dll' name 'CoMarshalHresult';
function CoUnmarshalHresult(_para1:IStream; _para2:HRESULT):HRESULT;stdcall; external 'ole32.dll' name 'CoUnmarshalHresult';
function CoReleaseMarshalData(_para1:IStream):HRESULT;stdcall; external 'ole32.dll' name 'CoReleaseMarshalData';
function CoDisconnectObject(_para1:IUnknown; _para2:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoDisconnectObject';
function CoLockObjectExternal(_para1:IUnknown; _para2:BOOL; _para3:BOOL):HRESULT;stdcall; external 'ole32.dll' name 'CoLockObjectExternal';
function CoGetStandardMarshal(const _para1:TIID; _para2:IUnknown; _para3:DWORD; _para4:PVOID; _para5:DWORD;
out _para6:IMarshal):HRESULT;stdcall; external 'ole32.dll' name 'CoGetStandardMarshal';
function CoGetStdMarshalEx(_para1:IUnknown; _para2:DWORD; out _para3:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoGetStdMarshalEx';
function CoIsHandlerConnected(_para1:IUnknown):BOOL;stdcall; external 'ole32.dll' name 'CoIsHandlerConnected';
function CoHasStrongExternalConnections(_para1:IUnknown):BOOL;stdcall; external 'ole32.dll' name 'CoHasStrongExternalConnections';
function CoMarshalInterThreadInterfaceInStream(const _para1:TIID; _para2:IUnknown; out _para3:IStream):HRESULT;stdcall; external 'ole32.dll' name 'CoMarshalInterThreadInterfaceInStream';
function CoGetInterfaceAndReleaseStream(_para1:IStream;const _para2:TIID; out _para3):HRESULT;stdcall; external 'ole32.dll' name 'CoGetInterfaceAndReleaseStream';
function CoCreateFreeThreadedMarshaler(_para1:IUnknown; out _para2:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateFreeThreadedMarshaler';
function CoLoadLibrary(_para1:LPOLESTR; _para2:BOOL):THandle;stdcall; external 'ole32.dll' name 'CoLoadLibrary';
procedure CoFreeLibrary(_para1:THandle);stdcall; external 'ole32.dll' name 'CoFreeLibrary';
procedure CoFreeAllLibraries;stdcall; external 'ole32.dll' name 'CoFreeAllLibraries';
procedure CoFreeUnusedLibraries;stdcall; external 'ole32.dll' name 'CoFreeUnusedLibraries';
function CoCreateInstance(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD;const _para4:TIID;out _para5):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateInstance';
function CoCreateInstanceEx(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD; _para4:PCOSERVERINFO; _para5:DWORD;
_para6:PMULTI_QI):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateInstanceEx';
function StringFromCLSID(const _para1:TCLSID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'StringFromCLSID';
function CLSIDFromString(_para1:LPOLESTR; _para2:LPCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CLSIDFromString';
function StringFromIID(const _para1:TIID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'StringFromIID';
function IIDFromString(_para1:LPOLESTR; out _para2:TIID):HRESULT;stdcall; external 'ole32.dll' name 'IIDFromString';
function CoIsOle1Class(const _para1:TCLSID):BOOL;stdcall; external 'ole32.dll' name 'CoIsOle1Class';
function ProgIDFromCLSID(const _para1:TCLSID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'ProgIDFromCLSID';
function CLSIDFromProgID(_para1:POLESTR; _para2:LPCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CLSIDFromProgID';
function StringFromGUID2(const _para1:TGUID; _para2:LPOLESTR; _para3:longint):longint;stdcall; external 'ole32.dll' name 'StringFromGUID2';
function CoCreateGuid(_para1:PGUID):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateGuid';
function CoFileTimeToDosDateTime(_para1:PFILETIME; _para2:LPWORD; _para3:LPWORD):BOOL;stdcall; external 'ole32.dll' name 'CoFileTimeToDosDateTime';
function CoDosDateTimeToFileTime(_para1:WORD; _para2:WORD; _para3:PFILETIME):BOOL;stdcall; external 'ole32.dll' name 'CoDosDateTimeToFileTime';
function CoFileTimeNow(_para1:PFILETIME):HRESULT;stdcall; external 'ole32.dll' name 'CoFileTimeNow';
function CoRegisterMessageFilter(_para1:IMessageFilter;out _para2:IMessageFilter):HRESULT;stdcall; external 'ole32.dll' name 'CoRegisterMessageFilter';
function CoGetTreatAsClass(const _para1:TCLSID; _para2:LPCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CoGetTreatAsClass';
function CoTreatAsClass(const _para1:TCLSID; const _para2:TCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CoTreatAsClass';
type
LPFNGETCLASSOBJECT = function (const _para1:TCLSID; const _para2:TIID;out _para3):HRESULT;stdcall;
LPFNCANUNLOADNOW = function:HRESULT;stdcall;
function DllGetClassObject(const _para1:TCLSID; const _para2:TIID; out _para3):HRESULT;stdcall; external 'ole32.dll' name 'DllGetClassObject';
function DllCanUnloadNow:HRESULT;stdcall; external 'ole32.dll' name 'DllCanUnloadNow';
function CoTaskMemAlloc(_para1:ULONG):PVOID;stdcall; external 'ole32.dll' name 'CoTaskMemAlloc';
function CoTaskMemRealloc(_para1:PVOID; _para2:ULONG):PVOID;stdcall; external 'ole32.dll' name 'CoTaskMemRealloc';
procedure CoTaskMemFree(_para1:PVOID);stdcall; external 'ole32.dll' name 'CoTaskMemFree';
function CreateDataAdviseHolder(_para1:IDataAdviseHolder):HRESULT;stdcall; external 'ole32.dll' name 'CreateDataAdviseHolder';
function CreateDataCache(_para1:IUnknown; const _para2:TCLSID; const _para3:TIID; out _para4):HRESULT;stdcall; external 'ole32.dll' name 'CreateDataCache';
(* Const before type ignored *)
function StgCreateDocfile(_para1:POLESTR; _para2:DWORD; _para3:DWORD; out _para4:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgCreateDocfile';
function StgCreateDocfileOnILockBytes(_para1:ILockBytes; _para2:DWORD; _para3:DWORD; out _para4:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgCreateDocfileOnILockBytes';
(* Const before type ignored *)
function StgOpenStorage(_para1:POLESTR; _para2:IStorage; _para3:DWORD; _para4:SNB; _para5:DWORD;
out _para6:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgOpenStorage';
function StgOpenStorageOnILockBytes(_para1:ILockBytes; _para2:IStorage; _para3:DWORD; _para4:SNB; _para5:DWORD;
out _para6:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgOpenStorageOnILockBytes';
function StgIsStorageFile(_para1:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'StgIsStorageFile';
function StgIsStorageILockBytes(_para1:ILockBytes):HRESULT;stdcall; external 'ole32.dll' name 'StgIsStorageILockBytes';
function StgSetTimes(_para1:POLESTR; _para2:PFILETIME; _para3:PFILETIME; _para4:PFILETIME):HRESULT;stdcall; external 'ole32.dll' name 'StgSetTimes';
function BindMoniker(_para1:IMoniker; _para2:DWORD; _para3:TIID; out _para4):HRESULT;stdcall; external 'ole32.dll' name 'BindMoniker';
function MkParseDisplayName(_para1:IBindCtx; _para2:POLESTR; out _para3:PULONG; out _para4:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'MkParseDisplayName';
function MonikerRelativePathTo(_para1:IMoniker; _para2:IMoniker; out _para3:IMoniker; _para4:BOOL):HRESULT;stdcall; external 'ole32.dll' name 'MonikerRelativePathTo';
function MonikerCommonPrefixWith(_para1:IMoniker; _para2:IMoniker; _para3:PIMoniker):HRESULT;stdcall; external 'ole32.dll' name 'MonikerCommonPrefixWith';
function CreateBindCtx(_para1:DWORD;out _para2:IBindCtx):HRESULT;stdcall; external 'ole32.dll' name 'CreateBindCtx';
function CreateGenericComposite(_para1:IMoniker; _para2:IMoniker; out _para3:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateGenericComposite';
function GetClassFile(_para1:POLESTR; out _para2:TCLSID):HRESULT;stdcall; external 'ole32.dll' name 'GetClassFile';
function CreateFileMoniker(_para1:POLESTR; out _para2:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateFileMoniker';
function CreateItemMoniker(_para1:POLESTR; _para2:POLESTR;out _para3:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateItemMoniker';
function CreateAntiMoniker(_para1:PIMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateAntiMoniker';
function CreatePointerMoniker(_para1:IUnknown; out _para2:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreatePointerMoniker';
function GetRunningObjectTable(_para1:DWORD; _para2:IRunningObjectTable):HRESULT;stdcall; external 'ole32.dll' name 'GetRunningObjectTable';
function CoInitializeSecurity(_para1:PSECURITY_DESCRIPTOR; _para2:LONG; _para3:PSOLE_AUTHENTICATION_SERVICE; _para4:pointer; _para5:DWORD;
_para6:DWORD; _para7:pointer; _para8:DWORD; _para9:pointer):HRESULT;stdcall; external 'ole32.dll' name 'CoInitializeSecurity';
function CoGetCallContext(const _para1:TIID; _para2:Ppointer):HRESULT;stdcall; external 'ole32.dll' name 'CoGetCallContext';
function CoQueryProxyBlanket(_para1:IUnknown; _para2:PDWORD; _para3:PDWORD; _para4:POLESTR; _para5:PDWORD;
_para6:PDWORD; _para7:Pointer; _para8:PDWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoQueryProxyBlanket';
function CoSetProxyBlanket(_para1:IUnknown; _para2:DWORD; _para3:DWORD; _para4:POLESTR; _para5:DWORD;
_para6:DWORD; _para7:pointer; _para8:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoSetProxyBlanket';
function CoCopyProxy(_para1:IUnknown; var _para2:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoCopyProxy';
function CoQueryClientBlanket(_para1:PDWORD; _para2:PDWORD; _para3:POLESTR; _para4:PDWORD; _para5:PDWORD;
_para6:pointer; _para7:PDWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoQueryClientBlanket';
function CoImpersonateClient:HRESULT;stdcall; external 'ole32.dll' name 'CoImpersonateClient';
function CoRevertToSelf:HRESULT;stdcall; external 'ole32.dll' name 'CoRevertToSelf';
function CoQueryAuthenticationServices(_para1:PDWORD; _para2:PSOLE_AUTHENTICATION_SERVICE):HRESULT;stdcall; external 'ole32.dll' name 'CoQueryAuthenticationServices';
function CoSwitchCallContext(_para1:IUnknown; var _para2:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoSwitchCallContext';
function CoGetInstanceFromFile(_para1:PCOSERVERINFO; _para2:PCLSID; _para3:IUnknown; _para4:DWORD; _para5:DWORD;
_para6:POLESTR; _para7:DWORD; _para8:PMULTI_QI):HRESULT;stdcall; external 'ole32.dll' name 'CoGetInstanceFromFile';
function CoGetInstanceFromIStorage(_para1:PCOSERVERINFO; _para2:PCLSID; _para3:IUnknown; _para4:DWORD; _para5:IStorage;
_para6:DWORD; _para7:PMULTI_QI):HRESULT;stdcall; external 'ole32.dll' name 'CoGetInstanceFromIStorage';
{$endif read_interface}
{
$Log$
Revision 1.1 2005-03-28 15:09:35 peter
new winunits packages
Revision 1.4 2005/02/14 17:13:32 peter
* truncate log
}

View File

@ -0,0 +1,44 @@
{
$Id$
This file is part of the Free Pascal run time library.
Copyright (c) 1999-2000 by the Free Pascal development team.
Implemtents some stuff of OLE2, tries to be Delphi compatible
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
unit ole2;
{$Mode ObjFpc}
interface
uses
windows;
type
IUnknown = class
public
function QueryInterface(const iid: TIID; var obj): HResult; virtual; {$ifndef VER0_99_10}stdcall;{$endif} abstract;
function AddRef: Longint; virtual; {$ifndef VER0_99_10}stdcall;{$endif} abstract;
function Release: Longint; virtual; {$ifndef VER0_99_10}stdcall;{$endif} abstract;
end;
implementation
end.
{
$Log$
Revision 1.1 2005-03-28 15:09:35 peter
new winunits packages
Revision 1.4 2005/02/14 17:13:32 peter
* truncate log
}

View File

@ -0,0 +1,955 @@
{
$Id$
This file is part of the Free Pascal run time library.
This unit contains the record definition for the Win32 API
Copyright (c) 1999-2002 by Marco van de Voort,
member of the Free Pascal development team.
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
************************************************************************}
{ leave out unused functions so the unit can be used on win2000 as well }
{$ifndef NO_SMART_LINK}
{$smartlink on}
{$endif}
{$PACKRECORDS C}
{$calling stdcall}
{$mode objfpc}
Unit ShellApi;
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// File: shellapi.h
//
// Header translation by Marco van de Voort for Free Pascal Platform
// SDK dl'ed January 2002
//
//--------------------------------------------------------------------------
Interface
Uses Windows;
{
shellapi.h - SHELL.DLL functions, types, and definitions
Copyright (c) Microsoft Corporation. All rights reserved. }
Type HDROP = THandle;
UINT_PTR = ^UINT;
DWORD_PTR= ^DWORD;
pHICON = ^HICON;
pBool = ^BOOL;
STARTUPINFOW = record // a guess. Omission should get fixed in Windows.
cb : DWORD;
lpReserved : LPTSTR;
lpDesktop : LPTSTR;
lpTitle : LPTSTR;
dwX : DWORD;
dwY : DWORD;
dwXSize : DWORD;
dwYSize : DWORD;
dwXCountChars : DWORD;
dwYCountChars : DWORD;
dwFillAttribute : DWORD;
dwFlags : DWORD;
wShowWindow : WORD;
cbReserved2 : WORD;
lpReserved2 : LPBYTE;
hStdInput : HANDLE;
hStdOutput : HANDLE;
hStdError : HANDLE;
end;
LPSTARTUPINFOW = ^STARTUPINFOW;
_STARTUPINFOW = STARTUPINFOW;
TSTARTUPINFOW = STARTUPINFOW;
PSTARTUPINFOW = ^STARTUPINFOW;
{unicode}
Function DragQueryFileA(arg1 : HDROP; arg2 : UINT;arg3 : LPSTR ; arg4 : UINT):UINT;external 'shell32.dll' name 'DragQueryFileA';
Function DragQueryFileW(arg1 : HDROP; arg2 : UINT;arg3 : LPWSTR; arg4 : UINT):UINT;external 'shell32.dll' name 'DragQueryFileW';
Function DragQueryFile(arg1 : HDROP; arg2 : UINT;arg3 : LPSTR ; arg4 : UINT):UINT;external 'shell32.dll' name 'DragQueryFileA';
Function DragQueryFile(arg1 : HDROP; arg2 : UINT;arg3 : LPWSTR; arg4 : UINT):UINT;external 'shell32.dll' name 'DragQueryFileW';
Function DragQueryPoint(arg1 : HDROP; arg2 :LPPOINT):BOOL; external 'shell32.dll' name 'DragQueryPoint';
Procedure DragFinish(arg1 : HDROP); external 'shell32.dll' name 'DragFinish';
Procedure DragAcceptFiles(hwnd : HWND;arg2: BOOL); external 'shell32.dll' name 'DragAcceptFiles';
Function ShellExecuteA(HWND: hwnd;lpOperation : LPCSTR ; lpFile : LPCSTR ; lpParameters : LPCSTR; lpDirectory: LPCSTR; nShowCmd:LONGINT):HInst; external 'shell32.dll' name 'ShellExecuteA';
Function ShellExecuteW(hwnd: HWND;lpOperation : LPCWSTR ; lpFile : LPCWSTR ; lpParameters : LPCWSTR; lpDirectory: LPCWSTR; nShowCmd:LONGINT):HInst; external 'shell32.dll' name 'ShellExecuteW';
Function ShellExecute(HWND: hwnd;lpOperation : LPCSTR ; lpFile : LPCSTR ; lpParameters : LPCSTR; lpDirectory: LPCSTR; nShowCmd:LONGINT):HInst; external 'shell32.dll' name 'ShellExecuteA';
Function ShellExecute(hwnd: HWND;lpOperation : LPCWSTR ; lpFile : LPCWSTR ; lpParameters : LPCWSTR; lpDirectory: LPCWSTR; nShowCmd:LONGINT):HInst; external 'shell32.dll' name 'ShellExecuteW';
Function FindExecutableA(lpFile : LPCSTR ;lpDirectory : LPCSTR ; lpResult : LPSTR):HInst;external 'shell32.dll' name 'FindExecutableA';
Function FindExecutableW(lpFile : LPCWSTR;lpDirectory : LPCWSTR; lpResult : LPWSTR):HInst;external 'shell32.dll' name 'FindExecutableW';
Function FindExecutable(lpFile : LPCSTR ;lpDirectory : LPCSTR ; lpResult : LPSTR):HInst;external 'shell32.dll' name 'FindExecutableA';
Function FindExecutable(lpFile : LPCWSTR;lpDirectory : LPCWSTR; lpResult : LPWSTR):HInst;external 'shell32.dll' name 'FindExecutableW';
Function CommandLineToArgvW(lpCmdLine : LPCWSTR;pNumArgs : plongint):pLPWSTR;external 'shell32.dll' name 'CommandLineToArgvW';
Function ShellAboutA(HWND: hWnd; szApp : LPCSTR; szOtherStuff : LPCSTR; HICON : hIcon):Longint; external 'shell32.dll' name 'ShellAboutA';
Function ShellAboutW(HWND: hWnd; szApp : LPCWSTR; szOtherStuff : LPCWSTR; HICON : hIcon):Longint; external 'shell32.dll' name 'ShellAboutW';
Function ShellAbout(HWND: hWnd; szApp : LPCSTR; szOtherStuff : LPCSTR; HICON : hIcon):Longint; external 'shell32.dll' name 'ShellAboutA';
Function ShellAbout(HWND: hWnd; szApp : LPCWSTR; szOtherStuff : LPCWSTR; HICON : hIcon):Longint; external 'shell32.dll' name 'ShellAboutW';
Function DuplicateIcon(hinst : HINST; HICON: hIcon):HIcon; external 'shell32.dll' name 'DuplicateIcon';
Function ExtractAssociatedIconA(hInst : HINST; lpIconPath : LPSTR; lpiIcon : LPWORD):HICON;external 'shell32.dll' name 'ExtractAssociatedIconA';
Function ExtractAssociatedIconW(hInst : HINST; lpIconPath : LPWSTR; lpiIcon : LPWORD):HICON;external 'shell32.dll' name 'ExtractAssociatedIconW';
Function ExtractAssociatedIcon(hInst : HINST; lpIconPath : LPSTR; lpiIcon : LPWORD):HICON;external 'shell32.dll' name 'ExtractAssociatedIconA';
Function ExtractAssociatedIcon(hInst : HINST; lpIconPath : LPWSTR; lpiIcon : LPWORD):HICON;external 'shell32.dll' name 'ExtractAssociatedIconW';
Function ExtractIconA(hInst: HINST; lpszExeFileName :LPCSTR ; nIconIndex : UINT):HICON;external 'shell32.dll' name 'ExtractIconA';
Function ExtractIconW(hInst: HINST; lpszExeFileName :LPCWSTR ; nIconIndex : UINT):HICON;external 'shell32.dll' name 'ExtractIconW';
Function ExtractIcon(hInst: HINST; lpszExeFileName :LPCSTR ; nIconIndex : UINT):HICON;external 'shell32.dll' name 'ExtractIconA';
Function ExtractIcon(hInst: HINST; lpszExeFileName :LPCWSTR ; nIconIndex : UINT):HICON;external 'shell32.dll' name 'ExtractIconW';
// if(WINVER >= 0x0400)
Type
{ init with sizeof(DRAGINFO) }
_DRAGINFOA = Record
uSize : UINT;
pt : POINT;
fNC : BOOL;
lpFileList : LPSTR;
grfKeyState : DWORD;
end;
DRAGINFOA = _DRAGINFOA;
TDRAGINFOA = _DRAGINFOA;
LPDRAGINFOA = ^_DRAGINFOA;
{ init with sizeof(DRAGINFO) }
_DRAGINFOW = Record
uSize : UINT;
pt : POINT;
fNC : BOOL;
lpFileList : LPWSTR;
grfKeyState : DWORD;
end;
DRAGINFOW = _DRAGINFOW;
TDRAGINFOW = _DRAGINFOW;
LPDRAGINFOW = ^_DRAGINFOW;
{$ifdef UNICODE}
DRAGINFO = DRAGINFOW;
TDRAGINFO = DRAGINFOW;
LPDRAGINFO = LPDRAGINFOW;
{$else}
DRAGINFO = DRAGINFOA;
TDRAGINFO = DRAGINFOW;
LPDRAGINFO = LPDRAGINFOA;
{$endif}
Const
ABM_NEW = $00000000;
ABM_REMOVE = $00000001;
ABM_QUERYPOS = $00000002;
ABM_SETPOS = $00000003;
ABM_GETSTATE = $00000004;
ABM_GETTASKBARPOS = $00000005;
ABM_ACTIVATE = $00000006; { lParam == TRUE/FALSE means activate/deactivate }
ABM_GETAUTOHIDEBAR = $00000007;
ABM_SETAUTOHIDEBAR = $00000008; { this can fail at any time. MUST check the result }
{ lParam = TRUE/FALSE Set/Unset }
{ uEdge = what edge }
ABM_WINDOWPOSCHANGED = $0000009;
ABM_SETSTATE = $0000000a;
ABN_STATECHANGE = $0000000; { these are put in the wparam of callback messages }
ABN_POSCHANGED = $0000001;
ABN_FULLSCREENAPP = $0000002;
ABN_WINDOWARRANGE = $0000003; { lParam == TRUE means hide }
{ flags for get state }
ABS_AUTOHIDE = $0000001;
ABS_ALWAYSONTOP = $0000002;
ABE_LEFT = 0;
ABE_TOP = 1;
ABE_RIGHT = 2;
ABE_BOTTOM = 3;
Type
_AppBarData = Record
cbSize : DWORD;
hWnd : HWND;
uCallbackMessage : UINT;
uEdge : UINT;
rc : RECT;
lParam : LPARAM; { message specific }
end;
APPBARDATA = _AppBarData;
TAPPBARDATA = _AppBarData;
PAPPBARDATA = ^_AppBarData;
Function SHAppBarMessage(dwMessage : DWORD; pData : APPBARDATA):UINT_PTR;external 'shell32.dll' name 'SHAppBarMessage';
//
// EndAppBar
//
Function DoEnvironmentSubstA(szString: LPSTR; cchString:UINT):DWORD;external 'shell32.dll' name 'DoEnvironmentSubstA';
Function DoEnvironmentSubstW(szString: LPWSTR; cchString:UINT):DWORD;external 'shell32.dll' name 'DoEnvironmentSubstW';
Function DoEnvironmentSubst(szString: LPSTR; cchString:UINT):DWORD;external 'shell32.dll' name 'DoEnvironmentSubstA';
Function DoEnvironmentSubst(szString: LPWSTR; cchString:UINT):DWORD;external 'shell32.dll' name 'DoEnvironmentSubstW';
{Macro}
function EIRESID(x : longint) : longint;
Function ExtractIconExA(lpszFile : LPCSTR; nIconIndex:Longint; phiconLarge:pHICON; phiconSmall:pHIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExA';
Function ExtractIconExW(lpszFile : LPCWSTR; nIconIndex:Longint; phiconLarge:pHICON; phiconSmall:pHIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExW';
Function ExtractIconExA(lpszFile : LPCSTR; nIconIndex:Longint; var phiconLarge:HICON;var phiconSmall:HIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExA';
Function ExtractIconExW(lpszFile : LPCWSTR; nIconIndex:Longint; var phiconLarge:HICON;var phiconSmall:HIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExW';
Function ExtractIconEx (lpszFile : LPCSTR; nIconIndex:Longint; phiconLarge:pHICON; phiconSmall:pHIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExA';
Function ExtractIconEx (lpszFile : LPCWSTR; nIconIndex:Longint; phiconLarge:pHICON; phiconSmall:pHIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExW';
Function ExtractIconEx (lpszFile : LPCSTR; nIconIndex:Longint; var phiconLarge:HICON;var phiconSmall:HIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExA';
Function ExtractIconEx (lpszFile : LPCWSTR; nIconIndex:Longint; var phiconLarge:HICON;var phiconSmall:HIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExW';
//
// Shell File Operations
//
//ifndef FO_MOVE //these need to be kept in sync with the ones in shlobj.h}
Const
FO_MOVE = $0001;
FO_COPY = $0002;
FO_DELETE = $0003;
FO_RENAME = $0004;
FOF_MULTIDESTFILES = $0001;
FOF_CONFIRMMOUSE = $0002;
FOF_SILENT = $0004; { don't create progress/report }
FOF_RENAMEONCOLLISION = $0008;
FOF_NOCONFIRMATION = $0010; { Don't prompt the user. }
FOF_WANTMAPPINGHANDLE = $0020; { Fill in SHFILEOPSTRUCT.hNameMappings }
FOF_ALLOWUNDO = $0040; { Must be freed using SHFreeNameMappings }
FOF_FILESONLY = $0080; { on *.*, do only files }
FOF_SIMPLEPROGRESS = $0100; { means don't show names of files }
FOF_NOCONFIRMMKDIR = $0200; { don't confirm making any needed dirs }
FOF_NOERRORUI = $0400; { don't put up error UI }
FOF_NOCOPYSECURITYATTRIBS= $0800; { dont copy NT file Security Attributes }
FOF_NORECURSION = $1000; { don't recurse into directories. }
//if (_WIN32_IE >= 0x0500)
FOF_NO_CONNECTED_ELEMENTS= $2000; { don't operate on connected elements. }
FOF_WANTNUKEWARNING = $4000; { during delete operation, warn if nuking instead of recycling (partially overrides FOF_NOCONFIRMATION) }
//endif
//if (_WIN32_WINNT >= 0x0501)
FOF_NORECURSEREPARSE = $8000; { treat reparse points as objects, not containers }
//endif
Type
FILEOP_FLAGS = WORD;
Const
PO_DELETE = $0013; { printer is being deleted }
PO_RENAME = $0014; { printer is being renamed }
PO_PORTCHANGE = $0020; { port this printer connected to is being changed }
{ if this id is set, the strings received by }
{ the copyhook are a doubly-null terminated }
{ list of strings. The first is the printer }
{ name and the second is the printer port. }
PO_REN_PORT = $0034; { PO_RENAME and PO_PORTCHANGE at same time. }
{ no POF_ flags currently defined }
Type
PRINTEROP_FLAGS = WORD;
//endif}
{ FO_MOVE }
{ implicit parameters are: }
{ if pFrom or pTo are unqualified names the current directories are }
{ taken from the global current drive/directory settings managed }
{ by Get/SetCurrentDrive/Directory }
{ }
{ the global confirmation settings }
{ only used if FOF_SIMPLEPROGRESS }
Type
_SHFILEOPSTRUCTA = Record
hwnd : HWND;
wFunc : UINT;
pFrom : LPCSTR;
pTo : LPCSTR;
fFlags : FILEOP_FLAGS;
fAnyOperationsAborted : BOOL;
hNameMappings : LPVOID;
lpszProgressTitle : LPCSTR; { only used if FOF_SIMPLEPROGRESS }
end;
SHFILEOPSTRUCTA = _SHFILEOPSTRUCTA;
TSHFILEOPSTRUCTA = _SHFILEOPSTRUCTA;
LPSHFILEOPSTRUCTA = ^_SHFILEOPSTRUCTA;
_SHFILEOPSTRUCTW = record
hwnd : HWND;
wFunc : UINT;
pFrom : LPCWSTR;
pTo : LPCWSTR;
fFlags : FILEOP_FLAGS;
fAnyOperationsAborted : BOOL;
hNameMappings : LPVOID;
lpszProgressTitle : LPCWSTR;
end;
SHFILEOPSTRUCTW = _SHFILEOPSTRUCTW;
TSHFILEOPSTRUCTW = _SHFILEOPSTRUCTW;
LPSHFILEOPSTRUCTW = ^_SHFILEOPSTRUCTW;
{$ifdef UNICODE}
SHFILEOPSTRUCT = SHFILEOPSTRUCTW;
TSHFILEOPSTRUCT = SHFILEOPSTRUCTW;
LPSHFILEOPSTRUCT = LPSHFILEOPSTRUCTW;
{$else}
SHFILEOPSTRUCT = SHFILEOPSTRUCTA;
TSHFILEOPSTRUCT = SHFILEOPSTRUCTA;
LPSHFILEOPSTRUCT = LPSHFILEOPSTRUCTA;
{$endif}
Function SHFileOperationA(lpFileOp:LPSHFILEOPSTRUCTA ):Longint;external 'shell32.dll' name 'SHFileOperationA';
Function SHFileOperationW(lpFileOp:LPSHFILEOPSTRUCTW ):Longint;external 'shell32.dll' name 'SHFileOperationW';
Function SHFileOperation(lpFileOp:LPSHFILEOPSTRUCTA ):Longint;external 'shell32.dll' name 'SHFileOperationA';
Function SHFileOperation(lpFileOp:LPSHFILEOPSTRUCTW ):Longint;external 'shell32.dll' name 'SHFileOperationW';
Procedure SHFreeNameMappings(hNameMappings : THandle);external 'shell32.dll' name 'SHFreeNameMappings';
Type
_SHNAMEMAPPINGA = Record
pszOldPath : LPSTR;
pszNewPath : LPSTR;
cchOldPath : longint;
cchNewPath : longint;
end;
SHNAMEMAPPINGA = _SHNAMEMAPPINGA;
TSHNAMEMAPPINGA = _SHNAMEMAPPINGA;
LPSHNAMEMAPPINGA = ^_SHNAMEMAPPINGA;
_SHNAMEMAPPINGW = Record
pszOldPath : LPWSTR;
pszNewPath : LPWSTR;
cchOldPath : longint;
cchNewPath : longint;
end;
SHNAMEMAPPINGW = _SHNAMEMAPPINGW;
TSHNAMEMAPPINGW = _SHNAMEMAPPINGW;
LPSHNAMEMAPPINGW = ^_SHNAMEMAPPINGW;
{$ifndef UNICODE}
SHNAMEMAPPING = SHNAMEMAPPINGW;
TSHNAMEMAPPING = SHNAMEMAPPINGW;
LPSHNAMEMAPPING = LPSHNAMEMAPPINGW;
{$else}
SHNAMEMAPPING = SHNAMEMAPPINGA;
TSHNAMEMAPPING = SHNAMEMAPPINGA;
LPSHNAMEMAPPING = LPSHNAMEMAPPINGA;
{$endif}
//
// End Shell File Operations
//
//
// Begin ShellExecuteEx and family
//
{ ShellExecute() and ShellExecuteEx() error codes }
{ regular WinExec() codes }
const
SE_ERR_FNF = 2; { file not found }
SE_ERR_PNF = 3; { path not found }
SE_ERR_ACCESSDENIED = 5; { access denied }
SE_ERR_OOM = 8; { out of memory }
SE_ERR_DLLNOTFOUND = 32;
// endif WINVER >= 0x0400
{ error values for ShellExecute() beyond the regular WinExec() codes }
SE_ERR_SHARE = 26;
SE_ERR_ASSOCINCOMPLETE = 27;
SE_ERR_DDETIMEOUT = 28;
SE_ERR_DDEFAIL = 29;
SE_ERR_DDEBUSY = 30;
SE_ERR_NOASSOC = 31;
//if(WINVER >= 0x0400)}
{ Note CLASSKEY overrides CLASSNAME }
SEE_MASK_CLASSNAME = $00000001;
SEE_MASK_CLASSKEY = $00000003;
{ Note INVOKEIDLIST overrides IDLIST }
SEE_MASK_IDLIST = $00000004;
SEE_MASK_INVOKEIDLIST = $0000000c;
SEE_MASK_ICON = $00000010;
SEE_MASK_HOTKEY = $00000020;
SEE_MASK_NOCLOSEPROCESS = $00000040;
SEE_MASK_CONNECTNETDRV = $00000080;
SEE_MASK_FLAG_DDEWAIT = $00000100;
SEE_MASK_DOENVSUBST = $00000200;
SEE_MASK_FLAG_NO_UI = $00000400;
SEE_MASK_UNICODE = $00004000;
SEE_MASK_NO_CONSOLE = $00008000;
SEE_MASK_ASYNCOK = $00100000;
SEE_MASK_HMONITOR = $00200000;
//if (_WIN32_IE >= 0x0500)
SEE_MASK_NOQUERYCLASSSTORE= $01000000;
SEE_MASK_WAITFORINPUTIDLE= $02000000;
//endif (_WIN32_IE >= 0x500)
//if (_WIN32_IE >= 0x0560)
SEE_MASK_FLAG_LOG_USAGE = $04000000;
//endif
{ (_WIN32_IE >= 0x560) }
type
_SHELLEXECUTEINFOA = record
cbSize : DWORD;
fMask : ULONG;
hwnd : HWND;
lpVerb : LPCSTR;
lpFile : LPCSTR;
lpParameters : LPCSTR;
lpDirectory : LPCSTR;
nShow : longint;
hInstApp : HINST;
lpIDList : LPVOID;
lpClass : LPCSTR;
hkeyClass : HKEY;
dwHotKey : DWORD;
DUMMYUNIONNAME : record
case longint of
0 : ( hIcon : HANDLE );
1 : ( hMonitor : HANDLE );
end;
hProcess : HANDLE;
end;
SHELLEXECUTEINFOA = _SHELLEXECUTEINFOA;
TSHELLEXECUTEINFOA = _SHELLEXECUTEINFOA;
LPSHELLEXECUTEINFOA = ^_SHELLEXECUTEINFOA;
_SHELLEXECUTEINFOW = record
cbSize : DWORD;
fMask : ULONG;
hwnd : HWND;
lpVerb : lpcwstr;
lpFile : lpcwstr;
lpParameters : lpcwstr;
lpDirectory : lpcwstr;
nShow : longint;
hInstApp : HINST;
lpIDList : LPVOID;
lpClass : LPCWSTR;
hkeyClass : HKEY;
dwHotKey : DWORD;
DUMMYUNIONNAME : record
case longint of
0 : ( hIcon : HANDLE );
1 : ( hMonitor : HANDLE );
end;
hProcess : HANDLE;
end;
SHELLEXECUTEINFOW = _SHELLEXECUTEINFOW;
TSHELLEXECUTEINFOW = _SHELLEXECUTEINFOW;
LPSHELLEXECUTEINFOW = ^_SHELLEXECUTEINFOW;
{$ifdef UNICODE}
SHELLEXECUTEINFO = SHELLEXECUTEINFOW;
TSHELLEXECUTEINFO = SHELLEXECUTEINFOW;
LPSHELLEXECUTEINFO = LPSHELLEXECUTEINFOW;
{$else}
SHELLEXECUTEINFO = SHELLEXECUTEINFOA;
TSHELLEXECUTEINFO = SHELLEXECUTEINFOA;
LPSHELLEXECUTEINFO = LPSHELLEXECUTEINFOA;
{$endif}
Function ShellExecuteExA(lpExecInfo: LPSHELLEXECUTEINFOA):Bool;external 'shell32.dll' name 'ShellExecuteExA';
Function ShellExecuteExW(lpExecInfo: LPSHELLEXECUTEINFOW):Bool;external 'shell32.dll' name 'ShellExecuteExW';
Function ShellExecuteEx(lpExecInfo: LPSHELLEXECUTEINFOA):Bool;external 'shell32.dll' name 'ShellExecuteExA';
Function ShellExecuteEx(lpExecInfo: LPSHELLEXECUTEINFOW):Bool;external 'shell32.dll' name 'ShellExecuteExW';
Procedure WinExecErrorA(HWND : hwnd; error : Longint;lpstrFileName:LPCSTR; lpstrTitle:LPCSTR); external 'shell32.dll' name 'WinExecErrorA';
Procedure WinExecErrorW(HWND : hwnd; error : Longint;lpstrFileName:LPCWSTR; lpstrTitle:LPCWSTR); external 'shell32.dll' name 'WinExecErrorW';
Procedure WinExecError(HWND : hwnd; error : Longint;lpstrFileName:LPCSTR; lpstrTitle:LPCSTR); external 'shell32.dll' name 'WinExecErrorA';
Procedure WinExecError(HWND : hwnd; error : Longint;lpstrFileName:LPCWSTR; lpstrTitle:LPCWSTR); external 'shell32.dll' name 'WinExecErrorW';
type
_SHCREATEPROCESSINFOW = record
cbSize : DWORD;
fMask : ULONG;
hwnd : HWND;
pszFile : LPCWSTR;
pszParameters : LPCWSTR;
pszCurrentDirectory : LPCWSTR;
{in} hUserToken : HANDLE;
{in} lpProcessAttributes : LPSECURITY_ATTRIBUTES;
{in} lpThreadAttributes : LPSECURITY_ATTRIBUTES;
{in} bInheritHandles : BOOL;
{in} dwCreationFlags : DWORD;
{in} lpStartupInfo : LPSTARTUPINFOW;
{out} lpProcessInformation : LPPROCESS_INFORMATION;
end;
SHCREATEPROCESSINFOW = _SHCREATEPROCESSINFOW;
TSHCREATEPROCESSINFOW = _SHCREATEPROCESSINFOW;
PSHCREATEPROCESSINFOW = ^_SHCREATEPROCESSINFOW;
Function SHCreateProcessAsUserW(pscpi : PSHCREATEPROCESSINFOW):Bool;external 'shell32.dll' name 'SHCreateProcessAsUserW';
//
// End ShellExecuteEx and family }
//
//
// RecycleBin
//
{ struct for query recycle bin info }
Type
_SHQUERYRBINFO = record
cbSize : DWORD;
i64Size : int64;
i64NumItems : int64;
end;
SHQUERYRBINFO = _SHQUERYRBINFO;
TSHQUERYRBINFO = _SHQUERYRBINFO;
LPSHQUERYRBINFO = ^_SHQUERYRBINFO;
{ flags for SHEmptyRecycleBin }
const
SHERB_NOCONFIRMATION = $00000001;
SHERB_NOPROGRESSUI = $00000002;
SHERB_NOSOUND = $00000004;
function SHQueryRecycleBinA(pszRootPath:LPCSTR; pSHQueryRBInfo:LPSHQUERYRBINFO):HRESULT;external 'shell32.dll' name 'SHQueryRecycleBinA';
function SHQueryRecycleBinW(pszRootPath:LPCWSTR; pSHQueryRBInfo:LPSHQUERYRBINFO):HRESULT;external 'shell32.dll' name 'SHQueryRecycleBinW';
function SHQueryRecycleBin(pszRootPath:LPCSTR; pSHQueryRBInfo:LPSHQUERYRBINFO):HRESULT;external 'shell32.dll' name 'SHQueryRecycleBinA';
function SHQueryRecycleBin(pszRootPath:LPCWSTR; pSHQueryRBInfo:LPSHQUERYRBINFO):HRESULT;external 'shell32.dll' name 'SHQueryRecycleBinW';
function SHEmptyRecycleBinA(hwnd:HWND; pszRootPath:LPCSTR; dwFlags:DWORD):HRESULT;external 'shell32.dll' name 'SHEmptyRecycleBinA';
function SHEmptyRecycleBinW(hwnd:HWND; pszRootPath:LPCWSTR; dwFlags:DWORD):HRESULT;external 'shell32.dll' name 'SHEmptyRecycleBinW';
function SHEmptyRecycleBin(hwnd:HWND; pszRootPath:LPCSTR; dwFlags:DWORD):HRESULT;external 'shell32.dll' name 'SHEmptyRecycleBinA';
function SHEmptyRecycleBin(hwnd:HWND; pszRootPath:LPCWSTR; dwFlags:DWORD):HRESULT;external 'shell32.dll' name 'SHEmptyRecycleBinW';
//
// end of RecycleBin
//
//
// Tray notification definitions
//
Type
_NOTIFYICONDATAA = record
cbSize : DWORD;
hWnd : HWND;
uID : UINT;
uFlags : UINT;
uCallbackMessage : UINT;
hIcon : HICON;
{$ifdef IELower5}
szTip : array[0..63] of CHAR;
{$else}
szTip : array[0..127] of CHAR;
{$endif}
{$ifdef IEhigherEqual5}
dwState : DWORD;
dwStateMask : DWORD;
szInfo : array[0..255] of CHAR;
DUMMYUNIONNAME : record
case longint of
0 : ( uTimeout : UINT );
1 : ( uVersion : UINT );
end;
szInfoTitle : array[0..63] of CHAR;
dwInfoFlags : DWORD;
{$endif}
{$ifdef IEHighEq6}
guidItem : GUID;
{$endif}
end;
NOTIFYICONDATAA = _NOTIFYICONDATAA;
TNOTIFYICONDATAA = _NOTIFYICONDATAA;
PNOTIFYICONDATAA = ^_NOTIFYICONDATAA;
_NOTIFYICONDATAW = record
cbSize : DWORD;
hWnd : HWND;
uID : UINT;
uFlags : UINT;
uCallbackMessage : UINT;
hIcon : HICON;
{$ifdef IELower5}
szTip : array[0..63] of WCHAR;
{$else}
szTip : array[0..127] of WCHAR;
{$endif}
{$ifdef IEhigherEqual5}
dwState : DWORD;
dwStateMask : DWORD;
szInfo : array[0..255] of WCHAR;
DUMMYUNIONNAME : record
case longint of
0 : ( uTimeout : UINT );
1 : ( uVersion : UINT );
end;
szInfoTitle : array[0..63] of CHAR;
dwInfoFlags : DWORD;
{$endif}
{$ifdef IEHighEq6}
guidItem : GUID;
{$endif}
end;
NOTIFYICONDATAW = _NOTIFYICONDATAW;
TNOTIFYICONDATAW = _NOTIFYICONDATAW;
PNOTIFYICONDATAW = ^_NOTIFYICONDATAW;
{$ifdef UNICODE}
NOTIFYICONDATA = NOTIFYICONDATAW;
TNOTIFYICONDATA = NOTIFYICONDATAW;
PNOTIFYICONDATA = PNOTIFYICONDATAW;
{$else}
NOTIFYICONDATA = NOTIFYICONDATAA;
TNOTIFYICONDATA = NOTIFYICONDATAA;
PNOTIFYICONDATA = PNOTIFYICONDATAA;
{$endif}
{ UNICODE }
{
#define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64])
#define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
#ifdef UNICODE
#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE
#else
#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAA_V1_SIZE
#endif
#define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
#define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
#ifdef UNICODE
#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE
#else
#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAA_V2_SIZE
#endif
}
const
NIN_SELECT = WM_USER + 0;
NINF_KEY = $1;
NIN_KEYSELECT = NIN_SELECT or NINF_KEY;
// if (_WIN32_IE >= 0x0501)}
NIN_BALLOONSHOW = WM_USER + 2;
NIN_BALLOONHIDE = WM_USER + 3;
NIN_BALLOONTIMEOUT = WM_USER + 4;
NIN_BALLOONUSERCLICK = WM_USER + 5;
NIM_ADD = $00000000;
NIM_MODIFY = $00000001;
NIM_DELETE = $00000002;
//if (_WIN32_IE >= 0x0500)}
NIM_SETFOCUS = $00000003;
NIM_SETVERSION = $00000004;
NOTIFYICON_VERSION = 3;
NIF_MESSAGE = $00000001;
NIF_ICON = $00000002;
NIF_TIP = $00000004;
// if (_WIN32_IE >= 0x0500)}
NIF_STATE = $00000008;
NIF_INFO = $00000010;
//if (_WIN32_IE >= 0x600)}
NIF_GUID = $00000020;
//if (_WIN32_IE >= 0x0500)}
NIS_HIDDEN = $00000001;
NIS_SHAREDICON = $00000002;
{ says this is the source of a shared icon }
{ Notify Icon Infotip flags }
NIIF_NONE = $00000000;
{ icon flags are mutually exclusive }
{ and take only the lowest 2 bits }
NIIF_INFO = $00000001;
NIIF_WARNING = $00000002;
NIIF_ERROR = $00000003;
NIIF_ICON_MASK = $0000000F;
//if (_WIN32_IE >= 0x0501)}
NIIF_NOSOUND = $00000010;
Function Shell_NotifyIconA( dwMessage: Dword;lpData: PNOTIFYICONDATAA):Bool;external 'shell32.dll' name 'Shell_NotifyIconA';
Function Shell_NotifyIconW( dwMessage: Dword;lpData: PNOTIFYICONDATAW):Bool;external 'shell32.dll' name 'Shell_NotifyIconW';
Function Shell_NotifyIcon( dwMessage: Dword;lpData: PNOTIFYICONDATAA):Bool;external 'shell32.dll' name 'Shell_NotifyIconA';
Function Shell_NotifyIcon( dwMessage: Dword;lpData: PNOTIFYICONDATAW):Bool;external 'shell32.dll' name 'Shell_NotifyIconW';
//
// End Tray Notification Icons
//
//
// Begin SHGetFileInfo
//
{
The SHGetFileInfo API provides an easy way to get attributes
for a file given a pathname.
PARAMETERS
pszPath file name to get info about
dwFileAttributes file attribs, only used with SHGFI_USEFILEATTRIBUTES
psfi place to return file info
cbFileInfo size of structure
uFlags flags
RETURN
TRUE if things worked
}
{ out: icon }
{ out: icon index }
{ out: SFGAO_ flags }
{ out: display name (or path) }
{ out: type name }
type
_SHFILEINFOA = record
hIcon : HICON; { out: icon }
iIcon : longint; { out: icon index }
dwAttributes : DWORD; { out: SFGAO_ flags }
szDisplayName : array[0..(MAX_PATH)-1] of CHAR; { out: display name (or path) }
szTypeName : array[0..79] of CHAR; { out: type name }
end;
SHFILEINFOA = _SHFILEINFOA;
TSHFILEINFOA = _SHFILEINFOA;
pSHFILEINFOA = ^_SHFILEINFOA;
_SHFILEINFOW = record
hIcon : HICON; { out: icon }
iIcon : longint; { out: icon index }
dwAttributes : DWORD; { out: SFGAO_ flags }
szDisplayName : array[0..(MAX_PATH)-1] of WCHAR;{ out: display name (or path) }
szTypeName : array[0..79] of WCHAR; { out: type name }
end;
SHFILEINFOW = _SHFILEINFOW;
TSHFILEINFOW = _SHFILEINFOW;
pSHFILEINFOW = ^_SHFILEINFOW;
{$ifdef UNICODE}
SHFILEINFO = SHFILEINFOW;
TSHFILEINFO = SHFILEINFOW;
pFILEINFO = SHFILEINFOW;
{$else}
SHFILEINFO = SHFILEINFOA;
TSHFILEINFO = SHFILEINFOA;
pFILEINFO = SHFILEINFOA;
{$endif}
{ NOTE: This is also in shlwapi.h. Please keep in synch. }
const
SHGFI_ICON = $000000100; { get Icon}
SHGFI_DISPLAYNAME = $000000200; { get display name }
SHGFI_TYPENAME = $000000400; { get type name }
SHGFI_ATTRIBUTES = $000000800; { get attributes }
SHGFI_ICONLOCATION = $000001000; { get icon location}
SHGFI_EXETYPE = $000002000; { return exe type }
SHGFI_SYSICONINDEX = $000004000; { get system icon index }
SHGFI_LINKOVERLAY = $000008000; { put a link overlay on icon }
SHGFI_SELECTED = $000010000; { show icon in selected state }
SHGFI_ATTR_SPECIFIED = $000020000; { get only specified attributes }
SHGFI_LARGEICON = $000000000; { get large icon }
SHGFI_SMALLICON = $000000001; { get small icon }
SHGFI_OPENICON = $000000002; { get open icon }
SHGFI_SHELLICONSIZE = $000000004; { get shell size icon }
SHGFI_PIDL = $000000008; { pszPath is a pidl }
SHGFI_USEFILEATTRIBUTES = $000000010; { use passed dwFileAttribute }
//if (_WIN32_IE >= 0x0500)}
SHGFI_ADDOVERLAYS = $000000020; { apply the appropriate overlays }
SHGFI_OVERLAYINDEX = $000000040; { Get the index of the overlay }
{ in the upper 8 bits of the iIcon }
Function SHGetFileInfoA(pszPath: LPCSTR; dwFileAttributes : DWORD; psfi: pSHFILEINFOA; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoA';
Function SHGetFileInfoW(pszPath: LPCWSTR; dwFileAttributes : DWORD; psfi: pSHFILEINFOW; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoW';
Function SHGetFileInfo(pszPath: LPCSTR; dwFileAttributes : DWORD; psfi: pSHFILEINFOA; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoA';
Function SHGetFileInfoA(pszPath: LPCSTR; dwFileAttributes : DWORD; var psfi: TSHFILEINFOA; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoA';
Function SHGetFileInfoW(pszPath: LPCWSTR; dwFileAttributes : DWORD; var psfi: TSHFILEINFOW; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoW';
Function SHGetFileInfo(pszPath: LPCSTR; dwFileAttributes : DWORD; var psfi: TSHFILEINFOA; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoA';
Function SHGetFileInfo(pszPath: LPCWSTR; dwFileAttributes : DWORD; var psfi: TSHFILEINFOW; cbFileInfo,UFlags: UINT):DWORD;external 'shell32.dll' name 'SHGetFileInfoW';
Function SHGetDiskFreeSpaceExA( pszDirectoryName : LPCSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExA';
Function SHGetDiskFreeSpaceExW( pszDirectoryName : LPCWSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExW';
Function SHGetDiskFreeSpaceEx( pszDirectoryName : LPCSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExA';
Function SHGetDiskFreeSpace( pszDirectoryName : LPCSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExA';
Function SHGetDiskFreeSpaceEx( pszDirectoryName : LPCWSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExW';
Function SHGetDiskFreeSpace( pszDirectoryName : LPCWSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExW';
Function SHGetNewLinkInfoA(pszLinkTo:LPCSTR;pszDir:LPCSTR; pszName:LPSTR; pfMustCopy: pBool; uFlags:UINT):Bool;external 'shell32.dll' name 'SHGetNewLinkInfoA';
Function SHGetNewLinkInfoW(pszLinkTo:LPCWSTR;pszDir:LPCWSTR; pszName:LPWSTR; pfMustCopy: pBool; uFlags:UINT):Bool;external 'shell32.dll' name 'SHGetNewLinkInfoW';
Function SHGetNewLinkInfo (pszLinkTo:LPCSTR;pszDir:LPCSTR; pszName:LPSTR; pfMustCopy: pBool; uFlags:UINT):Bool;external 'shell32.dll' name 'SHGetNewLinkInfoA';
Function SHGetNewLinkInfo (pszLinkTo:LPCWSTR;pszDir:LPCWSTR; pszName:LPWSTR; pfMustCopy: pBool; uFlags:UINT):Bool;external 'shell32.dll' name 'SHGetNewLinkInfoW';
const
SHGNLI_PIDL = $000000001; { pszLinkTo is a pidl }
SHGNLI_PREFIXNAME = $000000002; { Make name "Shortcut to xxx" }
SHGNLI_NOUNIQUE = $000000004; { don't do the unique name generation }
// {if (_WIN32_IE >= 0x0501)}
SHGNLI_NOLNK = $000000008; { don't add ".lnk" extension }
// {$endif}
{ _WIN2_IE >= 0x0501 }
//
// End SHGetFileInfo
//
{ Printer stuff }
PRINTACTION_OPEN = 0;
PRINTACTION_PROPERTIES = 1;
PRINTACTION_NETINSTALL = 2;
PRINTACTION_NETINSTALLLINK = 3;
PRINTACTION_TESTPAGE = 4;
PRINTACTION_OPENNETPRN = 5;
{$ifdef WINNT}
PRINTACTION_DOCUMENTDEFAULTS = 6;
PRINTACTION_SERVERPROPERTIES = 7;
{$endif}
Function SHInvokePrinterCommandA(HWND: hwnd; uAction:UINT; lpBuf1: LPCSTR; lpBuf2: LPCSTR; fModal:Bool):Bool;external 'shell32.dll' name 'SHInvokePrinterCommandA';
Function SHInvokePrinterCommandW(HWND: hwnd; uAction:UINT; lpBuf1: LPCWSTR; lpBuf2: LPCWSTR; fModal:Bool):Bool;external 'shell32.dll' name 'SHInvokePrinterCommandW';
Function SHInvokePrinterCommand(HWND: hwnd; uAction:UINT; lpBuf1: LPCSTR; lpBuf2: LPCSTR; fModal:Bool):Bool;external 'shell32.dll' name 'SHInvokePrinterCommandA';
Function SHInvokePrinterCommand(HWND: hwnd; uAction:UINT; lpBuf1: LPCWSTR; lpBuf2: LPCWSTR; fModal:Bool):Bool;external 'shell32.dll' name 'SHInvokePrinterCommandW';
// WINVER >= 0x0400
//if (_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0500)
//
// The SHLoadNonloadedIconOverlayIdentifiers API causes the shell's
// icon overlay manager to load any registered icon overlay
// identifers that are not currently loaded. This is useful if an
// overlay identifier did not load at shell startup but is needed
// and can be loaded at a later time. Identifiers already loaded
// are not affected. Overlay identifiers implement the
// IShellIconOverlayIdentifier interface.
//
// Returns:
// S_OK
//
function SHLoadNonloadedIconOverlayIdentifiers:HResult; external 'shell32.dll' name 'SHInvokePrinterCommandW';
//
// The SHIsFileAvailableOffline API determines whether a file
// or folder is available for offline use.
//
// Parameters:
// pwszPath file name to get info about
// pdwStatus (optional) OFFLINE_STATUS_* flags returned here
//
// Returns:
// S_OK File/directory is available offline, unless
// OFFLINE_STATUS_INCOMPLETE is returned.
// E_INVALIDARG Path is invalid, or not a net path
// E_FAIL File/directory is not available offline
//
// Notes:
// OFFLINE_STATUS_INCOMPLETE is never returned for directories.
// Both OFFLINE_STATUS_LOCAL and OFFLINE_STATUS_REMOTE may be returned,
// indicating "open in both places." This is common when the server is online.
//
function SHIsFileAvailableOffline(pwszPath:LPCWSTR; pdwStatus:LPDWORD):HRESULT; external 'shell32.dll' name 'SHIsFileAvailableOffline';
const
OFFLINE_STATUS_LOCAL = $0001; { If open, it's open locally }
OFFLINE_STATUS_REMOTE = $0002; { If open, it's open remotely }
OFFLINE_STATUS_INCOMPLETE = $0004; { The local copy is currently incomplete. }
{ The file will not be available offline }
{ until it has been synchronized. }
{ sets the specified path to use the string resource }
{ as the UI instead of the file system name }
function SHSetLocalizedName(pszPath:LPWSTR; pszResModule:LPCWSTR; idsRes:longint):HRESULT;external 'shell32.dll' name 'SHSetLocalizedName';
//if _WIN32_IE >= 0x0600}
function SHEnumerateUnreadMailAccountsA(hKeyUser:HKEY; dwIndex:DWORD; pszMailAddress:LPSTR; cchMailAddress:longint):HRESULT;external 'shell32.dll' name 'SHEnumerateUnreadMailAccountsA';
function SHEnumerateUnreadMailAccountsW(hKeyUser:HKEY; dwIndex:DWORD; pszMailAddress:LPWSTR; cchMailAddress:longint):HRESULT;external 'shell32.dll' name 'SHEnumerateUnreadMailAccountsW';
function SHEnumerateUnreadMailAccounts(hKeyUser:HKEY; dwIndex:DWORD; pszMailAddress:LPWSTR; cchMailAddress:longint):HRESULT;external 'shell32.dll' name 'SHEnumerateUnreadMailAccountsW';
function SHGetUnreadMailCountA(hKeyUser:HKEY; pszMailAddress:LPCSTR; pdwCount:PDWORD; pFileTime:PFILETIME; pszShellExecuteCommand:LPSTR;cchShellExecuteCommand:longint):HRESULT;external 'shell32.dll' name 'SHGetUnreadMailCountA';
function SHGetUnreadMailCountW(hKeyUser:HKEY; pszMailAddress:LPCWSTR; pdwCount:PDWORD; pFileTime:PFILETIME; pszShellExecuteCommand:LPWSTR;cchShellExecuteCommand:longint):HRESULT;external 'shell32.dll' name 'SHGetUnreadMailCountW';
function SHGetUnreadMailCount(hKeyUser:HKEY; pszMailAddress:LPCSTR; pdwCount:PDWORD; pFileTime:PFILETIME; pszShellExecuteCommand:LPSTR;cchShellExecuteCommand:longint):HRESULT;external 'shell32.dll' name 'SHGetUnreadMailCountA';
function SHGetUnreadMailCount(hKeyUser:HKEY; pszMailAddress:LPCWSTR; pdwCount:PDWORD; pFileTime:PFILETIME; pszShellExecuteCommand:LPWSTR;cchShellExecuteCommand:longint):HRESULT;external 'shell32.dll' name 'SHGetUnreadMailCountW';
function SHSetUnreadMailCountA(pszMailAddress:LPCSTR; dwCount:DWORD; pszShellExecuteCommand:LPCSTR):HRESULT;external 'shell32.dll' name 'SHSetUnreadMailCountA';
function SHSetUnreadMailCountW(pszMailAddress:LPCWSTR; dwCount:DWORD; pszShellExecuteCommand:LPCWSTR):HRESULT;external 'shell32.dll' name 'SHSetUnreadMailCountW';
function SHSetUnreadMailCount(pszMailAddress:LPCSTR; dwCount:DWORD; pszShellExecuteCommand:LPCSTR):HRESULT;external 'shell32.dll' name 'SHSetUnreadMailCountA';
function SHSetUnreadMailCount(pszMailAddress:LPCWSTR; dwCount:DWORD; pszShellExecuteCommand:LPCWSTR):HRESULT;external 'shell32.dll' name 'SHSetUnreadMailCountW';
// _WIN32_IE >= 0x0600 }
// if _WIN32_IE >= 0x0600}
function SHGetImageList(iImageList:longint;CONST riid:TIID; ppvObj:Ppointer):HRESULT;external 'shell32.dll' name 'SHGetImageList';
Const
SHIL_LARGE = 0; { normally 32x32 }
SHIL_SMALL = 1; { normally 16x16 }
SHIL_EXTRALARGE = 2;
SHIL_SYSSMALL = 3; { like SHIL_SMALL, but tracks system small icon metric correctly }
SHIL_LAST = SHIL_SYSSMALL;
{ Function call types for ntshrui folder sharing helpers }
//typedef HRESULT (STDMETHODCALLTYPE *PFNSHOWSHAREFOLDERUIW)(IN HWND hwndParent, IN LPCSTR pszPath);
//typedef HRESULT (STDMETHODCALLTYPE *PFNSHOWSHAREFOLDERUIW)(IN HWND hwndParent, IN LPCWSTR pszPath);
implementation
function EIRESID(x : longint) : longint;
Begin
EIRESID:=-x;
End;
end.
{
$Log$
Revision 1.1 2005-03-28 15:09:35 peter
new winunits packages
Revision 1.8 2005/02/14 17:13:32 peter
* truncate log
Revision 1.7 2005/02/03 20:48:56 florian
* fixed SHGetFileInfo
}

View File

@ -0,0 +1,118 @@
{
$Id$
This file is part of the Free Pascal run time library.
Copyright (c) 1999-2000 by the Free Pascal development team
Interface to shfolder.dll
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
{ ---------------------------------------------------------------------
shfolder.dll is distributed standard with IE5.5, so it should ship
with 2000/XP or higher but is likely to be installed on NT/95/98 or
ME as well. It works on all these systems.
The info found here is also in the registry:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\
Note that not all CSIDL_* constants are supported by shlfolder.dll,
they should be supported by the shell32.dll, though again not on all
systems.
---------------------------------------------------------------------}
Unit shfolder;
Interface
Uses
windows;
Const
LibName = 'SHFolder.dll';
Const
CSIDL_PROGRAMS = $0002; { %SYSTEMDRIVE%\Program Files }
CSIDL_PERSONAL = $0005; { %USERPROFILE%\My Documents }
CSIDL_FAVORITES = $0006; { %USERPROFILE%\Favorites }
CSIDL_STARTUP = $0007; { %USERPROFILE%\Start menu\Programs\Startup }
CSIDL_RECENT = $0008; { %USERPROFILE%\Recent }
CSIDL_SENDTO = $0009; { %USERPROFILE%\Sendto }
CSIDL_STARTMENU = $000B; { %USERPROFILE%\Start menu }
CSIDL_MYMUSIC = $000D; { %USERPROFILE%\Documents\My Music }
CSIDL_MYVIDEO = $000E; { %USERPROFILE%\Documents\My Videos }
CSIDL_DESKTOPDIRECTORY = $0010; { %USERPROFILE%\Desktop }
CSIDL_NETHOOD = $0013; { %USERPROFILE%\NetHood }
CSIDL_TEMPLATES = $0015; { %USERPROFILE%\Templates }
CSIDL_COMMON_STARTMENU = $0016; { %PROFILEPATH%\All users\Start menu }
CSIDL_COMMON_PROGRAMS = $0017; { %PROFILEPATH%\All users\Start menu\Programs }
CSIDL_COMMON_STARTUP = $0018; { %PROFILEPATH%\All users\Start menu\Programs\Startup }
CSIDL_COMMON_DESKTOPDIRECTORY = $0019; { %PROFILEPATH%\All users\Desktop }
CSIDL_APPDATA = $001A; { %USERPROFILE%\Application Data (roaming) }
CSIDL_PRINTHOOD = $001B; { %USERPROFILE%\Printhood }
CSIDL_LOCAL_APPDATA = $001C; { %USERPROFILE%\Local Settings\Application Data (non roaming) }
CSIDL_COMMON_FAVORITES = $001F; { %PROFILEPATH%\All users\Favorites }
CSIDL_INTERNET_CACHE = $0020; { %USERPROFILE%\Local Settings\Temporary Internet Files }
CSIDL_COOKIES = $0021; { %USERPROFILE%\Cookies }
CSIDL_HISTORY = $0022; { %USERPROFILE%\Local settings\History }
CSIDL_COMMON_APPDATA = $0023; { %PROFILESPATH%\All Users\Application Data }
CSIDL_WINDOWS = $0024; { %SYSTEMROOT% }
CSIDL_SYSTEM = $0025; { %SYSTEMROOT%\SYSTEM32 (may be system on 95/98/ME) }
CSIDL_PROGRAM_FILES = $0026; { %SYSTEMDRIVE%\Program Files }
CSIDL_MYPICTURES = $0027; { %USERPROFILE%\My Documents\My Pictures }
CSIDL_PROFILE = $0028; { %USERPROFILE% }
CSIDL_PROGRAM_FILES_COMMON = $002B; { %SYSTEMDRIVE%\Program Files\Common }
CSIDL_COMMON_TEMPLATES = $002D; { %PROFILEPATH%\All Users\Templates }
CSIDL_COMMON_DOCUMENTS = $002E; { %PROFILEPATH%\All Users\Documents }
CSIDL_COMMON_ADMINTOOLS = $002F; { %PROFILEPATH%\All Users\Start Menu\Programs\Administrative Tools }
CSIDL_ADMINTOOLS = $0030; { %USERPROFILE%\Start Menu\Programs\Administrative Tools }
CSIDL_COMMON_MUSIC = $0035; { %PROFILEPATH%\All Users\Documents\my music }
CSIDL_COMMON_PICTURES = $0036; { %PROFILEPATH%\All Users\Documents\my pictures }
CSIDL_COMMON_VIDEO = $0037; { %PROFILEPATH%\All Users\Documents\my videos }
CSIDL_CDBURN_AREA = $003B; { %USERPROFILE%\Local Settings\Application Data\Microsoft\CD Burning }
CSIDL_PROFILES = $003E; { %PROFILEPATH% }
CSIDL_FLAG_CREATE = $8000; { (force creation of requested folder if it doesn't exist yet) }
{ Original entry points }
Function SHGetFolderPathA(Ahwnd: HWND; Csidl: Integer; Token: THandle; Flags: DWord; Path: PChar): HRESULT; stdcall; external LibName name 'SHGetFolderPathA';
Function SHGetFolderPathW(Ahwnd: HWND; Csidl: Integer; Token: THandle; Flags: DWord; Path: PChar): HRESULT; stdcall; external LibName name 'SHGetFolderPathW';
Function SHGetFolderPath (Ahwnd: HWND; Csidl: Integer; Token: THandle; Flags: DWord; Path: PChar): HRESULT; stdcall; external LibName name 'SHGetFolderPathA';
{ For Delphi compatibility }
type
PFNSHGetFolderPathA = Function(Ahwnd: HWND; Csidl: Integer; Token: THandle; Flags: DWord; Path: PChar): HRESULT; stdcall;
PFNSHGetFolderPathW = Function(Ahwnd: HWND; Csidl: Integer; Token: THandle; Flags: DWord; Path: PChar): HRESULT; stdcall;
PFNSHGetFolderPath = PFNSHGetFolderPathA;
TSHGetFolderPathA = PFNSHGetFolderPathA;
TSHGetFolderPathW = PFNSHGetFolderPathW;
TSHGetFolderPath = TSHGetFolderPathA;
implementation
const
SHFolderDll = 'SHFolder.dll';
end.
{
$Log$
Revision 1.1 2005-03-28 15:09:35 peter
new winunits packages
Revision 1.4 2005/02/14 17:13:32 peter
* truncate log
}

View File

@ -0,0 +1,19 @@
{
$Id$
}
unit shlobj;
interface
implementation
end.
{
$Log$
Revision 1.1 2005-03-28 15:09:35 peter
new winunits packages
Revision 1.2 2005/02/14 17:13:32 peter
* truncate log
}

View File

@ -1,17 +0,0 @@
#
# Makefile.fpc for Winver unit
#
[package]
name=winver
version=1.9.8
[target]
units=winver
examples=testver
[install]
fpcpackage=y
[default]
fpcdir=../../..