public unsafe void TASKDIALOG_BUTTON_x64_ensure_layout()
        {
            TASKDIALOG_BUTTON sut  = new TASKDIALOG_BUTTON();
            byte *            addr = (byte *)&sut;

            Assert.Equal(0, (byte *)&sut.nButtonID - addr);                // 4, int
            Assert.Equal(4, (byte *)&sut.pszButtonText - addr);            // 8, PCWSTR
        }
Beispiel #2
0
        public unsafe void TASKDIALOG_BUTTON_x64_ensure_layout()
        {
            if (!Environment.Is64BitProcess)
            {
                return;
            }

            TASKDIALOG_BUTTON sut  = new TASKDIALOG_BUTTON();
            byte *            addr = (byte *)&sut;

            Assert.Equal(0, (byte *)&sut.nButtonID - addr);                // 4, int
            Assert.Equal(4, (byte *)&sut.pszButtonText - addr);            // 8, PCWSTR
        }
        /// <summary>
        ///     ネイティブボタン配列を作成します。
        /// </summary>
        /// <param name="controls">ボタンコントロールのコレクション。</param>
        /// <returns>作成したネイティブボタン配列。</returns>
        private static TASKDIALOG_BUTTON[] CreateNativeButtonArray(IReadOnlyCollection <TaskDialogButtonBase> controls)
        {
            Contract.Requires <ArgumentNullException>(controls != null);

            var result = new TASKDIALOG_BUTTON[controls.Count];
            var index  = 0;

            foreach (var control in controls)
            {
                result[index] = new TASKDIALOG_BUTTON(control.Id, control.GetButtonText());
                ++index;
            }

            return(result);
        }