Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added IThumbnailProvider implementation #2

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
**/ipch
events.rc
events.h
*.aps
*.bin
*.user
*.VC.*
**/.vs
**/x64/
**/Debug/
**/Release/
/taglib
/taglib_build_*
/boost
19 changes: 10 additions & 9 deletions DllRegister.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#include "dllregister.h"
#include <iostream>

LONG createRegKey(const HKEY base, const LPCWSTR name, HKEY& out)
{
Expand Down Expand Up @@ -63,6 +64,14 @@ HRESULT CreateRegKeyAndSetValue(const REGISTRY_ENTRY &pRegistryEntry,
HRESULT doRegistration(LPWSTR szModuleName,
LONG createKey(const HKEY,const LPCWSTR,HKEY &))
{
{
wchar_t user_profile[MAX_PATH];
if (SUCCEEDED(SHGetFolderPathW(NULL, CSIDL_PROFILE, NULL, 0, user_profile))) {
if (wcsstr(szModuleName, user_profile) == szModuleName)
std::cout << "WARNING: you are registering this module within your user folder. Search indexing will not work unless it is registered from a system-wide path." << std::endl;
}
}

// List of property-handler specific registry entries we need to create
const REGISTRY_ENTRY rgRegistryEntries[] =
{
Expand All @@ -75,14 +84,6 @@ HRESULT doRegistration(LPWSTR szModuleName,
SZ_TAGLIBPROPERTYHANDLER,
0
},
{
HKEY_CLASSES_ROOT,
L"CLSID\\" SZ_CLSID_US,
L"ManualSafeSave",
REG_DWORD,
NULL,
1
},
{
HKEY_CLASSES_ROOT,
L"CLSID\\" SZ_CLSID_US L"\\InProcServer32",
Expand All @@ -96,7 +97,7 @@ HRESULT doRegistration(LPWSTR szModuleName,
L"CLSID\\" SZ_CLSID_US L"\\InProcServer32",
L"ThreadingModel",
REG_SZ,
L"Apartment",
L"Both",
0
},

Expand Down
31 changes: 18 additions & 13 deletions README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,13 @@ Please report any problems, no matter how small.

-- Manual install instructions:

1) Register the 32-bit TagLibHandler.dll (from this directory), ie.
1) Place TagLibHandler.dll in a system directory (i.e. NOT your user folder)

> regsvr32 TagLibHandler.dll

This will give an illogical error message if not run with sufficient permissions. Possibly:
> The module "TagLibHandler.dll" was loaded but the call to DllRegisterServer failed with error code 0x80070005.
2) Open an administrator command prompt and register the module:

1a) If you are using a 64-bit OS, also register the x64 version of the component.
> regsvr32 TagLibHandler.dll

1a) If you are using a 64-bit OS, consider also registering the x86 version of the component.

It's worth having both installed as frequently you'll use x32 apps without realising.

Expand All @@ -30,25 +29,31 @@ Please report any problems, no matter how small.

ie. create a Key called HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers\.ogg
and set it's (Default) value to {66AC53F1-EB5D-4af9-861E-E3AE9C07EF14}.

It's safe to replace the system associations, such as .mp3, although, at this stage, you will lose functionality by doing so.

3) It's safe to replace the system associations, such as .mp3, although, at this stage, you will lose functionality by doing so.
You may want to back-up any data you overwrite.

You may want to back-up any data you overwrite.
3) Register TagLibHandler as the thumbnail provider for whichever formats you like. For OGG thumbnails:

a) Create the key HKEY_CLASSES_ROOT/.ogg/ShellEx/{e357fccd-a995-4576-b01f-234630154e96}
b) Set its (Default) to {66AC53F1-EB5D-4af9-861E-E3AE9C07EF14}.

-- Lost functionality by using Taglib Handler instead of the Windows Default.

You will lose: The ability to write to tags, and the ability to view some tags.
You will gain: The ability to read a whole new set of tags, including id3v2.4 tags with utf-8.

-- Development environment:
- Vista SP2.
- VS2008 SP1.
- Header-only libraries from Boost 1.40.
- Windows 10
- VS 2015
- taglib master branch at ./taglib (last known good revision: d53ca6f7369dc7299c2991fa1fb9e4d80f534cf3)
- taglib CMake build output(s) at ./taglib_build_$(PlatformTarget)
- Header-only libraries from Boost 1.62 at ./boost

For the installer:
- loki-0.1.7.7
- http://wtl.svn.sourceforge.net/svnroot/wtl/trunk/wtl@404
- taglib "branch": 0e2057cc9d1918d893a7dacfdf927dd9253b12c1, off
svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglibb@1035209 (after 1.6 release)

-- License (MIT):

Expand Down
Loading