Форум: "Потрепаться";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
ВнизКак работать с IDL файлами в Delphi? Найти похожие ветки
← →
Aldor_ (2004-07-13 15:40) [0]В MSDN нашел описание нужных мне интерфейсов, однако вместо привычных разделов "Header" и "Library" там стоит "Headers and IDL files - shappmgr.h, shappmgr.idl". У меня таких файлов на компе даже нет (WinXP). Что с ними по правилам нужно делать?
← →
Nikolay M. © (2004-07-13 15:47) [1]В Add/Remove programs свою программу прописываешь?
← →
Гаврила © (2004-07-13 15:48) [2]//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//--------------------------------------------------------------------------
cpp_quote("#ifndef _SHAPPMGR_H_")
cpp_quote("#define _SHAPPMGR_H_")
//
// shappmgr.idl : IDL source for shappmgr.h
//
import "oaidl.idl";
import "ocidl.idl";
import "appmgmt.h";
//
// IShellApp interface
//
[
uuid(A3E14960-935F-11D1-B8B8-006008059382), // IID_IShellApp
object
]
interface IShellApp : IUnknown
{
typedef enum _tagAppInfoFlags {
AIM_DISPLAYNAME = 0x00000001,
AIM_VERSION = 0x00000002,
AIM_PUBLISHER = 0x00000004,
AIM_PRODUCTID = 0x00000008,
AIM_REGISTEREDOWNER = 0x00000010,
AIM_REGISTEREDCOMPANY = 0x00000020,
AIM_LANGUAGE = 0x00000040,
AIM_SUPPORTURL = 0x00000080,
AIM_SUPPORTTELEPHONE = 0x00000100,
AIM_HELPLINK = 0x00000200,
AIM_INSTALLLOCATION = 0x00000400,
AIM_INSTALLSOURCE = 0x00000800,
AIM_INSTALLDATE = 0x00001000,
// AIM_REQUIREDBYPOLICY = 0x00002000, Obsolete. Do not reuse.
AIM_CONTACT = 0x00004000,
AIM_COMMENTS = 0x00008000,
AIM_IMAGE = 0x00020000,
AIM_READMEURL = 0x00040000,
AIM_UPDATEINFOURL = 0x00080000
} APPINFODATAFLAGS;
typedef struct _AppInfoData {
DWORD cbSize;
DWORD dwMask; // APPINFODATAFLAGS, IN/OUT
LPWSTR pszDisplayName;
LPWSTR pszVersion;
LPWSTR pszPublisher;
LPWSTR pszProductID;
LPWSTR pszRegisteredOwner;
LPWSTR pszRegisteredCompany;
LPWSTR pszLanguage;
LPWSTR pszSupportUrl;
LPWSTR pszSupportTelephone;
LPWSTR pszHelpLink;
LPWSTR pszInstallLocation;
LPWSTR pszInstallSource;
LPWSTR pszInstallDate;
LPWSTR pszContact;
LPWSTR pszComments;
LPWSTR pszImage;
LPWSTR pszReadmeUrl;
LPWSTR pszUpdateInfoUrl;
} APPINFODATA, *PAPPINFODATA;
HRESULT GetAppInfo([in, out] PAPPINFODATA pai);
typedef enum _tagAppActionFlags {
APPACTION_INSTALL = 0x00000001,
APPACTION_UNINSTALL = 0x00000002,
APPACTION_MODIFY = 0x00000004,
APPACTION_REPAIR = 0x00000008,
APPACTION_UPGRADE = 0x00000010,
APPACTION_CANGETSIZE = 0x00000020,
APPACTION_MODIFYREMOVE = 0x00000080,
APPACTION_ADDLATER = 0x00000100,
APPACTION_UNSCHEDULE = 0x00000200
} APPACTIONFLAGS;
HRESULT GetPossibleActions([out] DWORD * pdwActions);
//
// Synchronously obtains the slow info for the app. This method call
// can be very slow.
//
typedef struct _tagSlowAppInfo {
ULONGLONG ullSize;
FILETIME ftLastUsed;
int iTimesUsed;
LPWSTR pszImage;
} SLOWAPPINFO, *PSLOWAPPINFO;
HRESULT GetSlowAppInfo([in] PSLOWAPPINFO psaid);
//
// Obtain the cached slow info for the app, this will be fast.
//
HRESULT GetCachedSlowAppInfo([in] PSLOWAPPINFO psaid);
//
// Returns S_OK if installed S_FALSE if not installed
//
HRESULT IsInstalled(void);
};
//
// IPublishedApp interface
//
[
uuid(1BC752E0-9046-11D1-B8B3-006008059382), // IID_IPublishedApp
object
]
interface IPublishedApp : IShellApp
{
typedef enum _tagPublishedAppInfoFlags {
PAI_SOURCE = 0x00000001,
PAI_ASSIGNEDTIME = 0x00000002,
PAI_PUBLISHEDTIME = 0x00000004,
PAI_SCHEDULEDTIME = 0x00000008,
PAI_EXPIRETIME = 0x00000010
} PUBAPPINFOFLAGS;
typedef struct _PubAppInfo {
DWORD cbSize;
DWORD dwMask; // PUBAPPINFOFLAGS, IN/OUT
LPWSTR pszSource;
SYSTEMTIME stAssigned;
SYSTEMTIME stPublished;
SYSTEMTIME stScheduled;
SYSTEMTIME stExpire;
} PUBAPPINFO, *PPUBAPPINFO;
HRESULT Install([in]LPSYSTEMTIME pstInstall);
HRESULT GetPublishedAppInfo([in, out] PPUBAPPINFO ppai);
HRESULT Unschedule(void);
};
//
// IEnumPublishedApps interface
//
[
uuid(0B124F8C-91F0-11D1-B8B5-006008059382), // IID_IEnumPublishedApps
object
]
interface IEnumPublishedApps : IUnknown
{
HRESULT Next([out] IPublishedApp** pia);
HRESULT Reset(void);
};
//
// IAppPublisher interface
//
[
uuid(07250A10-9CF9-11D1-9076-006008059382), // IID_IAppPublisher
object
]
interface IAppPublisher : IUnknown
{
HRESULT GetNumberOfCategories(DWORD * pdwCat);
HRESULT GetCategories(APPCATEGORYINFOLIST * pAppCategoryList);
HRESULT GetNumberOfApps(DWORD * pdwApps);
HRESULT EnumApps(GUID * pAppCategoryId, IEnumPublishedApps ** ppepa);
}
cpp_quote("#endif // _SHAPPMGR_H_")
← →
Nikolay M. © (2004-07-13 15:52) [3]
> shappmgr.h, shappmgr.idl". У меня таких файлов на компе
> даже нет (WinXP).
А ты Visual Studio ставил, чтобы они были?
← →
Aldor_ (2004-07-14 04:08) [4]> Nikolay M. © (13.07.04 15:47) [1]
> В Add/Remove programs свою программу прописываешь?
Немного наоборот: список считываю :)
> А ты Visual Studio ставил, чтобы они были?
Насколько я понимаю, с VS поставляются _заголовки_, а вот сама библиотека (.idl???) должна ведь быть в винде, или я неправ?
Гаврила © (13.07.04 15:48) [2]
Спасибо большое, родные заголовки - то, что нужно :)
Только вот это смущает:
import "appmgmt.h";
import - это тоже самое что include? Если так, то какие из деклараций используют appmgmt.h? Если не трудно.
И все-таки главный вопрос - .idl - это библиотека? Можно писатьLoadLibrary("shappmgr.idl")
?
← →
Aldor_ (2004-07-14 06:04) [5]Хм, нашел библиотеку appmgr.dll, проверил функции из заголовков из [2]. Они там есть. Возможно, это и есть та самая библиотека. Тогда какой смысл в msdn не приводить ссылку на dll-файл,
← →
Aldor_ (2004-07-14 06:08) [6]Ошибся, нет там функций с такими названиями, "The specified procedure cannot be found". Почти впервый раз в жизни ставлю отрицательный смайлик :((
← →
Aldor_ (2004-07-14 11:55) [7]На всякий случай пример таких деклараций:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/iapppublisher/E numApps.asp
заодно ветку подниму...
← →
Оши (2004-07-14 12:15) [8]import "appmgmt.h";
это не тоже самое что include ...
← →
Aldor_ (2004-07-14 12:37) [9]Оши (14.07.04 12:15) [8]
Спасибо, ухожу в гугл ("import vs include") :)
← →
Aldor © (2004-07-16 23:16) [10]Еще раз Up. Последний.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.045 c