https://github.com/mrfearless/filetags-library
Library of functions that wrap the IPropertyStore object, for accessing tags of a file.
https://github.com/mrfearless/filetags-library
asm assembler com ipropertystore library masm32 radasm uasm uasm64 x64 x86
Last synced: 4 months ago
JSON representation
Library of functions that wrap the IPropertyStore object, for accessing tags of a file.
- Host: GitHub
- URL: https://github.com/mrfearless/filetags-library
- Owner: mrfearless
- Created: 2025-01-14T21:39:24.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-01-14T22:45:42.000Z (6 months ago)
- Last Synced: 2025-01-14T23:27:20.183Z (6 months ago)
- Topics: asm, assembler, com, ipropertystore, library, masm32, radasm, uasm, uasm64, x64, x86
- Language: Assembly
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
#  FileTags Library
FileTags Library - a library written in assembler (for x86 and x64) which consists of functions that wrap the COM implementation of the [IPropertyStore](https://learn.microsoft.com/en-us/windows/win32/api/propsys/nn-propsys-ipropertystore) object, for for accessing the [PKEY_Keywords](https://learn.microsoft.com/en-us/windows/win32/properties/props-system-keywords) property metadata of a file.
The `IPropertyStore` object and `PKEY_Keywords` property is used for the 'Tags' feature in Windows Explorer, when viewing the properties of a file, or when the Details Pane of Windows Explorer is open and a file is selected.
Thus the FileTags Library functions hide the complexities of interacting with the `IPropertyStore` COM object, allowing the user to read, write and clear the keywords / tags for a file.
[](http://www.masm32.com/download.htm) [](http://www.terraspace.co.uk/uasm.html) [](http://www.softpedia.com/get/Programming/File-Editors/RadASM.shtml) [](https://filetags-library.readthedocs.io/en/latest/index.html)
# Features
* Read file tags: `FileTagsReadA` & `FileTagsReadW`
* Write file tags: `FileTagsWriteA` & `FileTagsWriteW`
* Clear file tags: `FileTagsClearA` & `FileTagsClearW`# Download
* Download the latest release for whichever assembler and architecture you require:
- [FileTags-x86.zip](https://github.com/mrfearless/FileTags-Library/blob/master/releases/FileTags-x86.zip?raw=true)
- [FileTags-x64.zip](https://github.com/mrfearless/FileTags-Library/blob/master/releases/FileTags-x64.zip?raw=true)* Copy `FileTags.inc` to your `masm32\include` folder for FileTags Library x86, or `uasm\include` for FileTags Library x64 (or wherever your include files are located)
* Copy `FileTags.lib` to your `masm32\lib` folder for FileTags Library x86, or `uasm\lib\x64` for FileTags Library x64 (or wherever your libraries are located)
* Add the following to your project:
```assembly
include FileTags.inc
includelib FileTags.lib
```# Functions
Documentation on the functions in the FileTags libraries are located on readthedocs [here](https://filetags-library.readthedocs.io/en/latest/index.html)
# Resources
For more details on file tagging or the file property metadata:
* [https://karl-voit.at/2019/11/26/Tagging-Files-With-Windows-10/](https://karl-voit.at/2019/11/26/Tagging-Files-With-Windows-10/)
* [https://github.com/Dijji/FileMeta/wiki/XP,-Vista-and-File-Metadata](https://github.com/Dijji/FileMeta/wiki/XP,-Vista-and-File-Metadata)Included with the releases are additional RadASM autocomplete / intellisense type files. Each `*.api.txt` file contains instructions as to where to paste their contents.
Other resources may be required to build the libraries:
- [RadASM IDE](http://www.softpedia.com/get/Programming/File-Editors/RadASM.shtml)
- [MASM32 SDK](http://www.masm32.com/download.htm)
- [UASM - x86/x64 assembler](http://www.terraspace.co.uk/uasm.html)
- [WinInc - include files for x64 assembler](http://www.terraspace.co.uk/WinInc209.zip)
- [UASM-with-RadASM](https://github.com/mrfearless/UASM-with-RadASM)