Bagikan melalui


Struktur SCOPEDATAITEM (mmc.h)

Struktur SCOPEDATAITEM menentukan item yang akan disisipkan ke dalam panel cakupan.

Sintaks

typedef struct _SCOPEDATAITEM {
  DWORD      mask;
  LPOLESTR   displayname;
  int        nImage;
  int        nOpenImage;
  UINT       nState;
  int        cChildren;
  LPARAM     lParam;
  HSCOPEITEM relativeID;
  HSCOPEITEM ID;
} SCOPEDATAITEM;

Anggota

mask

Nilai yang menentukan array bendera yang menunjukkan anggota struktur mana yang berisi data yang valid. Ketika struktur ini digunakan dalam metode IConsoleNameSpace2::GetItem , itu menunjukkan atribut item yang akan diambil. Anggota ini bisa menjadi salah satu nilai berikut.

SDI_STR (0x00002)

Anggota displayname struktur valid. SDI_STR hanya didukung saat Anda menentukan nilai untuk anggota nama tampilan . MMC tidak menyimpan nilai untuk anggota nama tampilan , dan tidak dapat diambil dengan memanggil metode IConsoleNamespace2::GetItem .

SDI_IMAGE (0x00004)

Anggota nImage struktur valid atau harus diisi.

SDI_OPENIMAGE (0x00008)

Anggota nOpenImage struktur valid atau harus diisi.

SDI_STATE (0x00010)

Anggota nState struktur valid atau harus diisi.

SDI_PARAM (0x00020)

Anggota lParam struktur valid atau harus diisi.

SDI_CHILDREN (0x00040)

Anggota cChildren struktur valid atau harus diisi.

SDI_PARENT (0x00000000)

Gunakan hanya saat menyisipkan item ke dalam panel cakupan. Anggota relativeID struktur adalah HSCOPEITEM induk. Item disisipkan sebagai anak terakhir dari item yang dirujuk oleh relativeID.

SDI_PREVIOUS (0x10000000)

Gunakan hanya saat menyisipkan item ke dalam panel cakupan. Anggota relativeID struktur adalah HSCOPEITEM dari saudara kandung sebelumnya.

SDI_NEXT (0x20000000)

Gunakan hanya saat menyisipkan item ke dalam panel cakupan. Anggota relativeID struktur adalah HSCOPEITEM dari saudara kandung berikutnya.

SDI_FIRST (0x08000000)

Gunakan hanya saat menyisipkan item ke dalam panel cakupan. Anggota relativeID struktur adalah HSCOPEITEM induk. Item disisipkan sebagai anak pertama dari item yang dirujuk oleh relativeID.

displayname

MMC_CALLBACK nilai atau penunjuk ke string yang dihentikan null, yang tergantung pada bagaimana struktur digunakan.

  • Saat item disisipkan dengan menggunakan IConsoleNameSpace2::InsertItem, anggota ini harus diatur ke MMC_CALLBACK.
  • Saat nama item yang disisipkan oleh snap-in diubah dengan menggunakan IConsoleNameSpace2::SetItem, anggota ini harus diatur ke MMC_CALLBACK.
  • Saat nama simpul statis (item yang disisipkan konsol) diubah, anggota ini dapat diatur ke MMC_CALLBACK, atau menjadi penunjuk ke string yang dihentikan null yang berisi teks item.
Ketahuilah bahwa snap-in dapat menggunakan MMC_TEXTCALLBACK alih-alih MMC_CALLBACK. Nilai MMC_TEXTCALLBACK adalah versi MMC_CALLBACK yang benar jenis (tidak perlu transmisi).

MMC_TEXTCALLBACK diperkenalkan dalam MMC versi 1.2.

nImage

Indeks gambar virtual dalam daftar gambar saat item berada dalam status tidak dipilih. Ketahuilah bahwa indeks gambar virtual dipetakan secara internal ke indeks aktual. Anggota ini juga dapat ditentukan sebagai item panggilan balik: MMC_CALLBACK atau MMC_IMAGECALLBACK. MMC_IMAGECALLBACK adalah versi MMC_CALLBACK yang benar jenis (tidak perlu transmisi).

MMC_IMAGECALLBACK diperkenalkan dalam MMC versi 1.2.

nOpenImage

Indeks gambar virtual dalam daftar gambar saat item berada dalam status yang dipilih. Ketahuilah bahwa indeks gambar virtual dipetakan secara internal ke indeks aktual. Item ini seperti folder di Microsoft Windows Explorer. Ikon ini untuk folder yang terbuka.

nState

Nilai yang menentukan masker status untuk item. Untuk IConsoleNameSpace2::GetItem, anggota ini mengembalikan MMC_SCOPE_ITEM_STATE_EXPANDEDONCE jika item telah diperluas setidaknya satu kali, atau 0 (nol) jika item belum diperluas.

Anggota ini diabaikan untuk IConsoleNameSpace2::InsertItem dan IConsoleNameSpace2::SetItem.

cChildren

Nilai yang menentukan jumlah item yang dijumlahkan.

Saat snap-in menyisipkan item cakupan, snap-in harus mengatur bidang cChildren ke 0 (nol), dan mengatur bendera SDI_CHILDREN jika kedua kondisi berikut terpenuhi:

  • Snap-in tidak memiliki item turunan untuk ditambahkan di bawah item yang disisipkan.
  • Snap-in tidak secara dinamis mengaktifkan snap-in ekstensi namespace apa pun untuk item ini.
Jika tidak, saat menyisipkan item cakupan, bidang cChildren harus diatur ke 1 (satu), atau tidak diatur sama sekali.

Jika kondisi berubah di lain waktu, snap-in dapat mengubah bidang cChildren dengan menggunakan IConsoleNameSpace2::SetItem.

Jika akan memakan waktu yang signifikan untuk menentukan jumlah anak, snap-in harus menggunakan tebakan terbaik pada waktu penyisipan, dan membuat penentuan aktual pada utas lain sehingga antarmuka pengguna MMC tidak akan dikunci. IConsoleNameSpace2::SetItem dapat digunakan untuk memperbaiki pengaturan jika perlu.

Ketika MMC mendeteksi item cakupan dengan jumlah cChildren 0 (nol), MMC memeriksa ekstensi namespace yang telah diaktifkan secara statis untuk item oleh pengguna atau antarmuka IRequiredExtensions . Jika tidak ada yang diaktifkan, tanda plus (+) dihapus dari item.

Setelah item diperluas, status tanda plus ditentukan oleh jumlah aktual item anak yang ada.

lParam

Nilai yang menentukan nilai 32-bit yang disediakan pengguna untuk dikaitkan dengan item. Item ini, juga disebut cookie, adalah nilai yang diteruskan sebagai parameter pertama ke IComponentData::QueryDataObject.

relativeID

Pengidentifikasi item unik yang disediakan konsol. Item disisipkan pada posisi relatif terhadap item yang ditentukan anggota ini. Pengaturan masker menentukan posisi relatif.

Untuk menentukan bagaimana relativeID ditafsirkan, tentukan salah satu konstanta berikut sebagai anggota masker .

SDI_PARENT

relativeID adalah HSCOPEITEM induk. Item disisipkan sebagai anak terakhir dari item induk. Nilai SDI_PARENT menunjukkan bahwa itu adalah no-op, karena secara default, ID item induk adalah relativeID.

SDI_PREVIOUS

relativeID adalah HSCOPEITEM dari saudara kandung sebelumnya.

SDI_NEXT

relativeID adalah HSCOPEITEM dari saudara kandung berikutnya.

SDI_FIRST

Sama seperti SDI_PARENT, kecuali item disisipkan sebagai anak pertama.

ID

Nilai yang menentukan pengidentifikasi unik yang disediakan konsol untuk item cakupan. Nilai ini digunakan untuk mengidentifikasi item di panel cakupan panggilan ke beberapa metode antarmuka IConsole2 dan IConsoleNameSpace2 .

Setelah snap-in berhasil menyisipkan item ke panel cakupan (dengan menggunakan IConsoleNameSpace2::InsertItem), anggota ID struktur SCOPEDATAITEM berisi handel HSCOPEITEM dari item yang baru disisipkan. Handel ini adalah pengidentifikasi unik untuk item cakupan.

Untuk simpul statis, MMC menyisipkan item ke panel cakupan snap-in. Kemudian MMC meneruskan HSCOPEITEM dari simpul statis ke snap-in sebagai parameter param dalam pemberitahuan MMCN_EXPAND .

Ketahuilah bahwa snap-in harus menyimpan HSCOPEITEM dari setiap item yang disisipkan dan menggunakannya nanti untuk memanipulasi item dengan menggunakan metode antarmuka IConsole2 dan IConsoleNameSpace2 .

Keterangan

Tidak valid untuk menyisipkan item sebagai saudara kandung dari simpul statis. Jika snap-in mengatur anggota relativeID ke HSCOPEITEM simpul statis, mengatur bendera SDI_PREVIOUS atau SDI_NEXT , lalu memanggil IConsoleNameSpace2::InsertItem, MMC mengembalikan E_INVALIDARG.

Persyaratan

   
Klien minimum yang didukung Windows Vista
Server minimum yang didukung Windows Server 2008
Header mmc.h

Lihat juga

IComponentData

IComponentData::GetDisplayInfo

IConsoleNameSpace2::GetItem

IConsoleNameSpace2::InsertItem

IConsoleNameSpace2::SetItem