Файл с установочной информацией для Pocket PC является стандартным информационным файлом Windows с несколько редуцированной структурой. В файле могут быть находиться секции и ключи, описанные в следующем списке. Если рядом с ключом не указывается его описание, то значение ключа всегда будет таким, как указано в данном списке.
В начале файла располагается обязательная секция [Version].
? Ключ Signature может принимать значения $Windows NT$ или $Windows 95$.
? Ключ Provider позволяет указывать имя компании, которая создала приложение.
? Ключ CESignature принимает значение $Windows СЕ$.
Затем в файле располагается обязательная секция [CEStrings].
? Ключ AppName позволяет указывать имя приложения. Все входы переменной %AppName% в создаваемом inf-файле будут заменены на appname.
? Ключ InstallDir задает имя каталога установки на устройстве. Все входы переменной %InstallDir% в создаваемом inf-файле будут заменены на соответствующее значение.
В секции [Strings] разработчик может хранить любые необходимые строковые константы. А в секции [CEDevice] располагается информация о целевой платформе.
? Ключ ProcessorType содержит значение, которое возвращает фукция SYSTEMINFO. dwProcessorType.
? Ключ UnsupportedPlatforms позволяет указывать перечень несовместимых с программой платформ.
? Ключ VersionMin содержит значение, которое возвращается функцией OSVERSIONINF0.dwVersionMinor.
? Ключ VersionMax содержит значение, которое возвращается функцией OSVERSIONINFO.dwVersionMajor.
Также обязательно нужно использовать секцию [Defaultlnstall]. В этой секции определяются имена секций, которые должны использоваться для чтения настроек при копировании файлов, создании или редактировании ключей реестра и создании ярлыков. Те секции, которые не перечислены в этом разделе, не будут использованы, даже если они присутствуют в inf-файле. Обычно секция содержит от двух до пяти ключей.
? Copyfiles (обязательный ключ). Содержит названия секций, из которых осуществляется копирование файлов.
? AddReg (обязательный ключ). Содержит названия секций, содержащих записи, которые нужно внести в реестр.
? Ключ CEShortcuts = содержит названия секций, в которых описано расположение и параметры ярлыков, создаваемых на устройстве.
? Ключ CESetupDLL позволяет указывать имя и расположение библиотеки, в которой содержатся дополнительные функции, вызываемые во время установки.
? Ключ CESelfRegister содержит имена библиотек, которые должны быть зарегистрированы во время установки вызовом функции DllRegisterServer, после чего их регистрация может быть удалена при деинсталляции приложения вызовом функции DllllnregisterServer.
В обязательной секции [SourceDisksNames] описывается расположение устанавливаемого приложения. Ключ diskid позволяет указывать комментарий и путь к каталогу с файлами приложения. Путь может быть как абсолютным, так и относительным.
В обязательной секции [SourceDisksFiles] указывается, на каком диске и в каком каталоге этого диска размещены файлы вашего приложения. Для этого используется ключ filename.
В обязательной секции [DestinationDirs] указывается, в какие подкаталоги на устройстве будут помещены при установке файлы, собранные в группы в секции [CopyFiles]. Ключ DefaultDestDir указывает каталог для установки по умолчанию. Если никакой другой каталог не задан и файл не отнесен ни к одной из групп, то он будет помещен в этот каталог.
Обязательная секция [CopyFiles] содержит несколько секций, имена которых были объявлены в ключе CopyFiles секции [Defaultlnstall]. Каждая такая секция содержит один или несколько ключей destinationfilename,[sourcefilename],[,flags], где destinationfilename – имя файла при копировании на устройство при установке, sourcefilename – имя файла, который копируется (если destination filename и sourcefilename совпадают, то этот параметр указывать не обязательно). В параметре flags указываются константы из табл. 4.6.
Таблица 4.6. Константы копирования файлов
Имя обязательной секции [AddReg] должно быть таким, которое указано в ключе AddReg секции [Defaultlnstall]. В этой секции перечисляются ключи, которые надо добавить к реестру устройства при установке. Для этого используется строка registryrootstring, subkey, [valuename], flags, value [,value]. Параметр registry rootstrings может принимать одно из трех значений.
? HKCR – HKEYCLASSESROOT.
? HKCU – HKEYCURRENTUSER.
? HKLM – HKEY LOCAL MACHINE.
В параметре value_name указывается имя соответствующего параметра в реестре. А параметр flags может состоять из комбинации значений, приведенных в табл. 4.7. Таблица 4.7. Параметры записи ключей реестра
shortcut_filename,shortcut_type_flag,target_file/path[,standard_destination_path]