189 lines
4.3 KiB
C
189 lines
4.3 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1998 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
linkpif.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Implements routines to manage .LNK and .PIF files. This
|
||
|
is a complete redesign from the work that MikeCo did.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Calin Negreanu (calinn) 23-Sep-1998
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
<alias> <date> <comments>
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
typedef struct _LNK_EXTRA_DATAA {
|
||
|
BOOL FullScreen;
|
||
|
DWORD xSize;
|
||
|
DWORD ySize;
|
||
|
BOOL QuickEdit;
|
||
|
CHAR FontName [LF_FACESIZE];
|
||
|
DWORD xFontSize;
|
||
|
DWORD yFontSize;
|
||
|
DWORD FontWeight;
|
||
|
DWORD FontFamily;
|
||
|
WORD CurrentCodePage;
|
||
|
} LNK_EXTRA_DATAA, *PLNK_EXTRA_DATAA;
|
||
|
|
||
|
typedef struct _LNK_EXTRA_DATAW {
|
||
|
BOOL FullScreen;
|
||
|
DWORD xSize;
|
||
|
DWORD ySize;
|
||
|
BOOL QuickEdit;
|
||
|
WCHAR FontName [LF_FACESIZE];
|
||
|
DWORD xFontSize;
|
||
|
DWORD yFontSize;
|
||
|
DWORD FontWeight;
|
||
|
DWORD FontFamily;
|
||
|
WORD CurrentCodePage;
|
||
|
} LNK_EXTRA_DATAW, *PLNK_EXTRA_DATAW;
|
||
|
|
||
|
BOOL
|
||
|
InitCOMLinkA (
|
||
|
OUT IShellLinkA **ShellLink,
|
||
|
OUT IPersistFile **PersistFile
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
InitCOMLinkW (
|
||
|
OUT IShellLinkW **ShellLink,
|
||
|
OUT IPersistFile **PersistFile
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
FreeCOMLinkA (
|
||
|
IN OUT IShellLinkA **ShellLink,
|
||
|
IN OUT IPersistFile **PersistFile
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
FreeCOMLinkW (
|
||
|
IN OUT IShellLinkW **ShellLink,
|
||
|
IN OUT IPersistFile **PersistFile
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
ExtractPifInfoA(
|
||
|
OUT PSTR Target,
|
||
|
OUT PSTR Params,
|
||
|
OUT PSTR WorkDir,
|
||
|
OUT PSTR IconPath,
|
||
|
OUT PINT IconNumber,
|
||
|
OUT BOOL *MsDosMode,
|
||
|
OUT PLNK_EXTRA_DATAA ExtraData, OPTIONAL
|
||
|
IN PCSTR FileName
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
ExtractPifInfoW(
|
||
|
OUT PWSTR Target,
|
||
|
OUT PWSTR Params,
|
||
|
OUT PWSTR WorkDir,
|
||
|
OUT PWSTR IconPath,
|
||
|
OUT PINT IconNumber,
|
||
|
OUT BOOL *MsDosMode,
|
||
|
OUT PLNK_EXTRA_DATAW ExtraData, OPTIONAL
|
||
|
IN PCWSTR FileName
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
ExtractShellLinkInfoA (
|
||
|
OUT PSTR Target,
|
||
|
OUT PSTR Params,
|
||
|
OUT PSTR WorkDir,
|
||
|
OUT PSTR IconPath,
|
||
|
OUT PINT IconNumber,
|
||
|
OUT PWORD HotKey,
|
||
|
OUT PINT ShowMode, OPTIONAL
|
||
|
IN PCSTR FileName,
|
||
|
IN IShellLinkA *ShellLink,
|
||
|
IN IPersistFile *PersistFile
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
ExtractShellLinkInfoW (
|
||
|
OUT PWSTR Target,
|
||
|
OUT PWSTR Params,
|
||
|
OUT PWSTR WorkDir,
|
||
|
OUT PWSTR IconPath,
|
||
|
OUT PINT IconNumber,
|
||
|
OUT PWORD HotKey,
|
||
|
OUT PINT ShowMode, OPTIONAL
|
||
|
IN PCWSTR FileName,
|
||
|
IN IShellLinkW *ShellLink,
|
||
|
IN IPersistFile *PersistFile
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
ExtractShortcutInfoA (
|
||
|
OUT PSTR Target,
|
||
|
OUT PSTR Params,
|
||
|
OUT PSTR WorkDir,
|
||
|
OUT PSTR IconPath,
|
||
|
OUT PINT IconNumber,
|
||
|
OUT PWORD HotKey,
|
||
|
OUT BOOL *DosApp,
|
||
|
OUT BOOL *MsDosMode,
|
||
|
OUT PINT ShowMode, OPTIONAL
|
||
|
OUT PLNK_EXTRA_DATAA ExtraData, OPTIONAL
|
||
|
IN PCSTR FileName,
|
||
|
IN IShellLinkA *ShellLink,
|
||
|
IN IPersistFile *PersistFile
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
ExtractShortcutInfoW (
|
||
|
OUT PWSTR Target,
|
||
|
OUT PWSTR Params,
|
||
|
OUT PWSTR WorkDir,
|
||
|
OUT PWSTR IconPath,
|
||
|
OUT PINT IconNumber,
|
||
|
OUT PWORD HotKey,
|
||
|
OUT BOOL *DosApp,
|
||
|
OUT BOOL *MsDosMode,
|
||
|
OUT PINT ShowMode, OPTIONAL
|
||
|
OUT PLNK_EXTRA_DATAW ExtraData, OPTIONAL
|
||
|
IN PCWSTR FileName,
|
||
|
IN IShellLinkW *ShellLink,
|
||
|
IN IPersistFile *PersistFile
|
||
|
);
|
||
|
|
||
|
PVOID
|
||
|
FindEnhPifSignature (
|
||
|
IN PVOID FileImage,
|
||
|
IN PCSTR Signature
|
||
|
);
|
||
|
|
||
|
#ifdef UNICODE
|
||
|
|
||
|
#define InitCOMLink InitCOMLinkW
|
||
|
#define FreeCOMLink FreeCOMLinkW
|
||
|
#define ExtractPifInfo ExtractPifInfoW
|
||
|
#define ExtractShellLinkInfo ExtractShellLinkInfoW
|
||
|
#define ExtractShortcutInfo ExtractShortcutInfoW
|
||
|
#define LNK_EXTRA_DATA LNK_EXTRA_DATAW
|
||
|
#define PLNK_EXTRA_DATA PLNK_EXTRA_DATAW
|
||
|
|
||
|
#else
|
||
|
|
||
|
#define InitCOMLink InitCOMLinkA
|
||
|
#define FreeCOMLink FreeCOMLinkA
|
||
|
#define ExtractPifInfo ExtractPifInfoA
|
||
|
#define ExtractShellLinkInfo ExtractShellLinkInfoA
|
||
|
#define ExtractShortcutInfo ExtractShortcutInfoA
|
||
|
#define LNK_EXTRA_DATA LNK_EXTRA_DATAA
|
||
|
#define PLNK_EXTRA_DATA PLNK_EXTRA_DATAA
|
||
|
|
||
|
#endif
|