Skip to content

Commit

Permalink
Fix Task Dialog to support x64, fixes #5
Browse files Browse the repository at this point in the history
Co-authored-by: Piotr Ziezio <pziezio@users.noreply.github.com>
  • Loading branch information
LorenzCK and pziezio committed Feb 21, 2019
1 parent 2535b49 commit e8b49a5
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions src/WindowsFormsAero/TaskDialog/Message.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ namespace WindowsFormsAero.TaskDialog {
/// Stores a Task Dialog message that will be sent to a dialog in order to update its state.
/// </summary>
internal struct Message {

/// <summary>Text values that can be updated.</summary>
public enum DialogElements : int {
TDE_CONTENT,
Expand All @@ -28,44 +28,44 @@ public enum DialogElements : int {
public Message(NativeMethods.TaskDialogMessages msg, int w, int l) {
UnsafeHandle = IntPtr.Zero;
MessageType = msg;
WParam = w;
LParam = l;
WParam = new IntPtr(w);
LParam = new IntPtr(l);
ContainsTaskDialogConfig = false;
}

/// <summary>Simple int, bool message.</summary>
public Message(NativeMethods.TaskDialogMessages msg, int w, bool l) {
UnsafeHandle = IntPtr.Zero;
MessageType = msg;
WParam = w;
LParam = (l) ? 1 : 0;
WParam = new IntPtr(w);
LParam = new IntPtr(l ? 1 : 0);
ContainsTaskDialogConfig = false;
}

/// <summary>Simple bool, bool message.</summary>
public Message(NativeMethods.TaskDialogMessages msg, bool w, bool l) {
UnsafeHandle = IntPtr.Zero;
MessageType = msg;
WParam = (w) ? 1 : 0;
LParam = (l) ? 1 : 0;
WParam = new IntPtr(w ? 1 : 0);
LParam = new IntPtr(l ? 1 : 0);
ContainsTaskDialogConfig = false;
}

/// <summary>Simple bool, int message.</summary>
public Message(NativeMethods.TaskDialogMessages msg, bool w, int l) {
UnsafeHandle = IntPtr.Zero;
MessageType = msg;
WParam = (w) ? 1 : 0;
LParam = l;
WParam = new IntPtr(w ? 1 : 0);
LParam = new IntPtr(l);
ContainsTaskDialogConfig = false;
}

/// <summary>Simple int, long (hi word and lo word) message.</summary>
public Message(NativeMethods.TaskDialogMessages msg, int w, int l_hi, int l_lo) {
UnsafeHandle = IntPtr.Zero;
MessageType = msg;
WParam = w;
LParam = (l_lo << 16) + l_hi;
WParam = new IntPtr(w);
LParam = new IntPtr((l_lo << 16) + l_hi);
ContainsTaskDialogConfig = false;
}

Expand All @@ -74,8 +74,8 @@ public enum DialogElements : int {
public Message(NativeMethods.TaskDialogMessages msg, DialogElements element, string s) {
UnsafeHandle = Marshal.StringToHGlobalUni(s);
MessageType = msg;
WParam = (int)element;
LParam = (int)UnsafeHandle;
WParam = new IntPtr((int)element);
LParam = UnsafeHandle;
ContainsTaskDialogConfig = false;
}

Expand All @@ -85,18 +85,18 @@ public enum DialogElements : int {
UnsafeHandle = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(NativeMethods.TaskDialogConfig)));
Marshal.StructureToPtr(config, UnsafeHandle, false);
MessageType = msg;
WParam = w;
LParam = UnsafeHandle.ToInt32();
WParam = new IntPtr(w);
LParam = UnsafeHandle;
ContainsTaskDialogConfig = true;
}

private IntPtr UnsafeHandle;

public NativeMethods.TaskDialogMessages MessageType;

public int WParam;
public IntPtr WParam;

public int LParam;
public IntPtr LParam;

private bool ContainsTaskDialogConfig;

Expand Down

0 comments on commit e8b49a5

Please sign in to comment.