Win32 API 日本語リファレンス
ホームNetworking.ActiveDirectory › DSQUERYINITPARAMS

DSQUERYINITPARAMS

構造体
サイズx64: 48 バイト / x86: 28 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
cbStructDWORD4+0+0この構造体のサイズをバイト単位で格納します。
dwFlagsDWORD4+4+4

クエリの動作を定義するフラグのセットを格納します。0 または次の値のうち 1 つ以上の組み合わせを指定できます。

DSQPF_ENABLEADMINFEATURES

コンテキスト メニューやプロパティ ページ用の Admin Display Specifier など、ディレクトリ サービス管理ツールがサポートする機能を使用します。

DSQPF_ENABLEADVANCEDFEATURES

コンテキスト メニューやプロパティ ページに渡される IDataObject インスタンスで高度な機能を指定します。

DSQPF_HASCREDENTIALS

この構造体の pUserNamepPasswordpServer の各メンバーで、サーバーおよび資格情報のデータを指定できます。

DSQPF_NOCHOOSECOLUMNS

クエリ ダイアログ ボックスの 表示 メニューにある 列の選択 項目を無効にします。

DSQPF_NOSAVE

クエリ ダイアログ ボックスの ファイル メニューから 検索結果の保存 項目を削除します。

DSQPF_SAVELOCATION

pDefaultSaveLocation メンバーに、検索結果を保存する既定のファイル システム パスが格納されます。

DSQPF_SHOWHIDDENOBJECTS

クエリ ダイアログ ボックスがクエリ結果一覧に隠しオブジェクトを表示するようにします。

pDefaultScopeLPWSTR8/4+8+8検索の既定のスコープの ADsPath を格納する、null 終端の Unicode 文字列へのポインター。既定の検索スコープを指定しない場合は、このメンバーを NULL に設定します。
pDefaultSaveLocationLPWSTR8/4+16+12検索結果を保存する既定のファイル システム パスを格納する、null 終端の Unicode 文字列へのポインター。dwFlags メンバーに DSQPF_SAVELOCATION が含まれていない場合、このメンバーは無視されます。
pUserNameLPWSTR8/4+24+16有効なドメイン表記のユーザー名 (たとえば "fabrikam\jeffsmith") を格納する、null 終端の Unicode 文字列へのポインター。
pPasswordLPWSTR8/4+32+20pUserName メンバーで指定されたユーザーのパスワードを格納する、null 終端の Unicode 文字列へのポインター。
pServerLPWSTR8/4+40+24信頼されたドメインの一覧を読み取るサーバーの名前を格納する、null 終端の Unicode 文字列へのポインター。この一覧は、ダイアログ ボックスの In: ドロップダウン リストを設定するために使用されます。

公式ドキュメント

DSQUERYINITPARAMS 構造体は、ディレクトリ サービス クエリで参照ダイアログ ボックスを初期化するために使用するデータを記述します。

解説(Remarks)

この構造体は CLSID_DsQuery クエリ ハンドラー固有のものです。この構造体は、OPENQUERYWINDOW 構造体の clsidHandler メンバーに CLSID_DsQuery が設定されている場合に、 OPENQUERYWINDOW 構造体の pHandlerParameters メンバーとして使用されます。この API および関連する他の API の使用方法とコード例の詳細については、 ICommonQuery::OpenQueryWindow を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

#include <windows.h>

// DSQUERYINITPARAMS  (x64 48 / x86 28 バイト)
typedef struct DSQUERYINITPARAMS {
    DWORD cbStruct;
    DWORD dwFlags;
    LPWSTR pDefaultScope;
    LPWSTR pDefaultSaveLocation;
    LPWSTR pUserName;
    LPWSTR pPassword;
    LPWSTR pServer;
} DSQUERYINITPARAMS;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DSQUERYINITPARAMS
{
    public uint cbStruct;
    public uint dwFlags;
    public IntPtr pDefaultScope;
    public IntPtr pDefaultSaveLocation;
    public IntPtr pUserName;
    public IntPtr pPassword;
    public IntPtr pServer;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DSQUERYINITPARAMS
    Public cbStruct As UInteger
    Public dwFlags As UInteger
    Public pDefaultScope As IntPtr
    Public pDefaultSaveLocation As IntPtr
    Public pUserName As IntPtr
    Public pPassword As IntPtr
    Public pServer As IntPtr
End Structure
import ctypes
from ctypes import wintypes

class DSQUERYINITPARAMS(ctypes.Structure):
    _fields_ = [
        ("cbStruct", wintypes.DWORD),
        ("dwFlags", wintypes.DWORD),
        ("pDefaultScope", ctypes.c_void_p),
        ("pDefaultSaveLocation", ctypes.c_void_p),
        ("pUserName", ctypes.c_void_p),
        ("pPassword", ctypes.c_void_p),
        ("pServer", ctypes.c_void_p),
    ]
#[repr(C)]
pub struct DSQUERYINITPARAMS {
    pub cbStruct: u32,
    pub dwFlags: u32,
    pub pDefaultScope: *mut core::ffi::c_void,
    pub pDefaultSaveLocation: *mut core::ffi::c_void,
    pub pUserName: *mut core::ffi::c_void,
    pub pPassword: *mut core::ffi::c_void,
    pub pServer: *mut core::ffi::c_void,
}
import "golang.org/x/sys/windows"

type DSQUERYINITPARAMS struct {
	cbStruct uint32
	dwFlags uint32
	pDefaultScope uintptr
	pDefaultSaveLocation uintptr
	pUserName uintptr
	pPassword uintptr
	pServer uintptr
}
type
  DSQUERYINITPARAMS = record
    cbStruct: DWORD;
    dwFlags: DWORD;
    pDefaultScope: Pointer;
    pDefaultSaveLocation: Pointer;
    pUserName: Pointer;
    pPassword: Pointer;
    pServer: Pointer;
  end;
const DSQUERYINITPARAMS = extern struct {
    cbStruct: u32,
    dwFlags: u32,
    pDefaultScope: ?*anyopaque,
    pDefaultSaveLocation: ?*anyopaque,
    pUserName: ?*anyopaque,
    pPassword: ?*anyopaque,
    pServer: ?*anyopaque,
};
type
  DSQUERYINITPARAMS {.bycopy.} = object
    cbStruct: uint32
    dwFlags: uint32
    pDefaultScope: pointer
    pDefaultSaveLocation: pointer
    pUserName: pointer
    pPassword: pointer
    pServer: pointer
struct DSQUERYINITPARAMS
{
    uint cbStruct;
    uint dwFlags;
    void* pDefaultScope;
    void* pDefaultSaveLocation;
    void* pUserName;
    void* pPassword;
    void* pServer;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; DSQUERYINITPARAMS サイズ: 28 バイト(x86)
dim st, 7    ; 4byte整数×7(構造体サイズ 28 / 4 切り上げ)
; cbStruct : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; dwFlags : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; pDefaultScope : LPWSTR (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; pDefaultSaveLocation : LPWSTR (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; pUserName : LPWSTR (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; pPassword : LPWSTR (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; pServer : LPWSTR (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DSQUERYINITPARAMS サイズ: 48 バイト(x64)
dim st, 12    ; 4byte整数×12(構造体サイズ 48 / 4 切り上げ)
; cbStruct : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; dwFlags : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; pDefaultScope : LPWSTR (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; pDefaultSaveLocation : LPWSTR (+16, 8byte)  qpoke st,16,値 / qpeek(st,16)  ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; pUserName : LPWSTR (+24, 8byte)  qpoke st,24,値 / qpeek(st,24)  ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; pPassword : LPWSTR (+32, 8byte)  qpoke st,32,値 / qpeek(st,32)  ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; pServer : LPWSTR (+40, 8byte)  qpoke st,40,値 / qpeek(st,40)  ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global DSQUERYINITPARAMS
    #field int cbStruct
    #field int dwFlags
    #field intptr pDefaultScope
    #field intptr pDefaultSaveLocation
    #field intptr pUserName
    #field intptr pPassword
    #field intptr pServer
#endstruct

stdim st, DSQUERYINITPARAMS        ; NSTRUCT 変数を確保
st->cbStruct = 100
mes "cbStruct=" + st->cbStruct