mirror of
https://github.com/QL-Win/QuickLook.git
synced 2026-03-04 01:06:35 +08:00
Finish animation and PDF viewer, still need refinement
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
<ProjectGuid>{D31EE321-C2B0-4984-B749-736F7DE509F1}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>QuickLookShell32Helper</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion>
|
||||
<WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion>
|
||||
<ProjectName>QuickLook.Native.Shell32</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
|
||||
@@ -47,17 +47,19 @@ void Shell32::GetCurrentSelectionBuffer(PWCHAR buffer)
|
||||
wcscpy_s(pos - 1, 1, L"");
|
||||
}
|
||||
|
||||
void Shell32::SaveSelectedFromExplorer() {
|
||||
void Shell32::SaveSelectedFromExplorer()
|
||||
{
|
||||
CoInitialize(nullptr);
|
||||
|
||||
CComPtr<IShellWindows> psw;
|
||||
HRESULT ret=psw.CoCreateInstance(CLSID_ShellWindows);
|
||||
HRESULT ret = psw.CoCreateInstance(CLSID_ShellWindows);
|
||||
|
||||
auto hwndFGW = GetForegroundWindow();
|
||||
|
||||
auto fFound = FALSE;
|
||||
|
||||
for (int i = 0; !fFound; i++) {
|
||||
for (int i = 0; !fFound; i++)
|
||||
{
|
||||
VARIANT vi;
|
||||
V_VT(&vi) = VT_I4;
|
||||
V_I4(&vi) = i;
|
||||
@@ -67,13 +69,16 @@ void Shell32::SaveSelectedFromExplorer() {
|
||||
if (SUCCEEDED(psw->Item(vi, &pdisp)))
|
||||
{
|
||||
CComPtr<IWebBrowserApp> pwba;
|
||||
if (SUCCEEDED(pdisp->QueryInterface(IID_IWebBrowserApp, reinterpret_cast<void**>(&pwba)))) {
|
||||
if (SUCCEEDED(pdisp->QueryInterface(IID_IWebBrowserApp, reinterpret_cast<void**>(&pwba))))
|
||||
{
|
||||
HWND hwndWBA;
|
||||
if (SUCCEEDED(pwba->get_HWND(reinterpret_cast<LONG_PTR*>(&hwndWBA))) && hwndWBA == hwndFGW) {
|
||||
if (SUCCEEDED(pwba->get_HWND(reinterpret_cast<LONG_PTR*>(&hwndWBA))) && hwndWBA == hwndFGW)
|
||||
{
|
||||
fFound = TRUE;
|
||||
|
||||
CComPtr<IDispatch> ppdisp;
|
||||
if (SUCCEEDED(pwba->get_Document(&ppdisp))) {
|
||||
if (SUCCEEDED(pwba->get_Document(&ppdisp)))
|
||||
{
|
||||
CComPtr<IShellFolderViewDual2> pshvd;
|
||||
if (SUCCEEDED(ppdisp->QueryInterface(IID_IShellFolderViewDual2, reinterpret_cast<void**>(&pshvd))))
|
||||
{
|
||||
@@ -120,7 +125,7 @@ CComQIPtr<IWebBrowser2> Shell32::AttachDesktopShellWindow()
|
||||
|
||||
if (SUCCEEDED(psw.CoCreateInstance(CLSID_ShellWindows)))
|
||||
{
|
||||
VARIANT pvarLoc = { VT_EMPTY };
|
||||
VARIANT pvarLoc = {VT_EMPTY};
|
||||
long phwnd;
|
||||
psw->FindWindowSW(&pvarLoc, &pvarLoc, SWC_DESKTOP, &phwnd, SWFO_NEEDDISPATCH, reinterpret_cast<IDispatch**>(&pdispOut));
|
||||
}
|
||||
@@ -135,10 +140,10 @@ void Shell32::SaveSelectedFromDesktop()
|
||||
return;
|
||||
|
||||
CComQIPtr<IServiceProvider> psp(pWebBrowser2);
|
||||
CComPtr<IShellBrowser> psb;
|
||||
CComPtr<IShellView> psv;
|
||||
CComPtr<IFolderView> pfv;
|
||||
CComPtr<IPersistFolder2> ppf2;
|
||||
CComPtr<IShellBrowser> psb;
|
||||
CComPtr<IShellView> psv;
|
||||
CComPtr<IFolderView> pfv;
|
||||
CComPtr<IPersistFolder2> ppf2;
|
||||
|
||||
if (!psp) return;
|
||||
|
||||
@@ -164,7 +169,8 @@ void Shell32::SaveSelectedFromDesktop()
|
||||
}
|
||||
}
|
||||
|
||||
void Shell32::vectorFromDataObject(CComPtr<IDataObject> dao) {
|
||||
void Shell32::vectorFromDataObject(CComPtr<IDataObject> dao)
|
||||
{
|
||||
FORMATETC formatetc;
|
||||
STGMEDIUM medium;
|
||||
|
||||
|
||||
@@ -26,4 +26,3 @@ private:
|
||||
static CComQIPtr<IWebBrowser2> AttachDesktopShellWindow();
|
||||
static void vectorFromDataObject(CComPtr<IDataObject> dao);
|
||||
};
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "Shell32.h"
|
||||
|
||||
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
|
||||
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
|
||||
{
|
||||
switch (ul_reason_for_call)
|
||||
{
|
||||
@@ -15,4 +15,3 @@ BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReser
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
|
||||
// TODO: reference additional headers your program requires here
|
||||
#include<atlcomcli.h>
|
||||
#include<Exdisp.h>
|
||||
|
||||
Reference in New Issue
Block a user