- clipz.zip
- Clipz.sln
- Clipz
- Core
- AppRestartRecovery
- Core.csproj
- Dialogs
- Common
- TaskDialogs
- Interop
- NetworkList
- PowerManagement
- Properties
- PropertySystem
- SafeHandles
- Libraries
- StructureMap.dll
- Shell
- Common
- CommonFileDialogs
- Controls
- Design
- ShellObjects.cd
- ShellThumbnailClassDiagram.cd
- DesktopWindowManager
- ExplorerBrowser
- Interop
- Common
- Dialogs
- ExplorerBrowser
- KnownFolders
- PropertySystem
- StockIcons
- Taskbar
- KnownFolders
- Properties
- PropertySystem
- Shell.csproj
- StockIcons
- Taskbar
|
//Copyright (c) Microsoft Corporation. All rights reserved.
using System;
using System.Runtime.InteropServices;
using MS.WindowsAPICodePack.Internal;
namespace Microsoft.WindowsAPICodePack.ApplicationServices
{
internal static class AppRestartRecoveryNativeMethods
{
#region Application Restart and Recovery Definitions
internal delegate UInt32 InternalRecoveryCallback(IntPtr state);
internal static InternalRecoveryCallback internalCallback;
static AppRestartRecoveryNativeMethods()
{
internalCallback = new InternalRecoveryCallback(InternalRecoveryHandler);
}
private static UInt32 InternalRecoveryHandler(IntPtr parameter)
{
bool cancelled = false;
ApplicationRecoveryInProgress(out cancelled);
GCHandle handle = GCHandle.FromIntPtr(parameter);
RecoveryData data = handle.Target as RecoveryData;
data.Invoke();
handle.Free();
return (0);
}
[DllImport("kernel32.dll")]
internal static extern void ApplicationRecoveryFinished(
[MarshalAs(UnmanagedType.Bool)] bool success);
[DllImport("kernel32.dll")]
[PreserveSig]
internal static extern HRESULT ApplicationRecoveryInProgress(
[Out, MarshalAs(UnmanagedType.Bool)] out bool canceled);
[DllImport("kernel32.dll")]
[PreserveSig]
internal static extern HRESULT GetApplicationRecoveryCallback(
IntPtr processHandle,
out RecoveryCallback recoveryCallback,
out object state,
out uint pingInterval,
out uint flags);
[DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
[PreserveSig]
internal static extern HRESULT RegisterApplicationRecoveryCallback(
InternalRecoveryCallback callback, IntPtr param,
uint pingInterval,
uint flags); // Unused.
[DllImport("kernel32.dll")]
[PreserveSig]
internal static extern HRESULT RegisterApplicationRestart(
[MarshalAs(UnmanagedType.BStr)] string commandLineArgs,
RestartRestrictions flags);
[DllImport("KERNEL32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
[PreserveSig]
internal static extern HRESULT GetApplicationRestartSettings(
IntPtr process,
IntPtr commandLine,
ref uint size,
out RestartRestrictions flags);
[DllImport("kernel32.dll")]
[PreserveSig]
internal static extern HRESULT UnregisterApplicationRecoveryCallback();
[DllImport("kernel32.dll")]
[PreserveSig]
internal static extern HRESULT UnregisterApplicationRestart();
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I'm the founder of PageLabs, a web-based performance and SEO optimization site.
Give your site a boost in performance, even take a free speed test!
http://www.pagelabs.com