Win32 API 日本語リファレンス
ホームStorage.Jet › JET_OBJECTLIST

JET_OBJECTLIST

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

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

フィールド

フィールドサイズx64x86説明
cbStructDWORD4+0+0この構造体のバイトサイズ。
tableidJET_TABLEID8/4+8+4結果が格納された一時テーブルのテーブルID。
cRecordDWORD4+16+8一時テーブル内のレコード(オブジェクト)数。
columnidcontainernameDWORD4+20+12コンテナ名列の列IDを示す値。
columnidobjectnameDWORD4+24+16オブジェクト名列の列IDを示す値。
columnidobjtypDWORD4+28+20オブジェクト種別列の列IDを示す値。
columniddtCreateDWORD4+32+24作成日時列の列IDを示す値。
columniddtUpdateDWORD4+36+28更新日時列の列IDを示す値。
columnidgrbitDWORD4+40+32grbit列の列IDを示す値。
columnidflagsDWORD4+44+36フラグ列の列IDを示す値。
columnidcRecordDWORD4+48+40レコード数列の列IDを示す値。
columnidcPageDWORD4+52+44ページ数列の列IDを示す値。

各言語での定義

#include <windows.h>

// JET_OBJECTLIST  (x64 56 / x86 48 バイト)
typedef struct JET_OBJECTLIST {
    DWORD cbStruct;
    JET_TABLEID tableid;
    DWORD cRecord;
    DWORD columnidcontainername;
    DWORD columnidobjectname;
    DWORD columnidobjtyp;
    DWORD columniddtCreate;
    DWORD columniddtUpdate;
    DWORD columnidgrbit;
    DWORD columnidflags;
    DWORD columnidcRecord;
    DWORD columnidcPage;
} JET_OBJECTLIST;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct JET_OBJECTLIST
{
    public uint cbStruct;
    public UIntPtr tableid;
    public uint cRecord;
    public uint columnidcontainername;
    public uint columnidobjectname;
    public uint columnidobjtyp;
    public uint columniddtCreate;
    public uint columniddtUpdate;
    public uint columnidgrbit;
    public uint columnidflags;
    public uint columnidcRecord;
    public uint columnidcPage;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure JET_OBJECTLIST
    Public cbStruct As UInteger
    Public tableid As UIntPtr
    Public cRecord As UInteger
    Public columnidcontainername As UInteger
    Public columnidobjectname As UInteger
    Public columnidobjtyp As UInteger
    Public columniddtCreate As UInteger
    Public columniddtUpdate As UInteger
    Public columnidgrbit As UInteger
    Public columnidflags As UInteger
    Public columnidcRecord As UInteger
    Public columnidcPage As UInteger
End Structure
import ctypes
from ctypes import wintypes

class JET_OBJECTLIST(ctypes.Structure):
    _fields_ = [
        ("cbStruct", wintypes.DWORD),
        ("tableid", ctypes.c_size_t),
        ("cRecord", wintypes.DWORD),
        ("columnidcontainername", wintypes.DWORD),
        ("columnidobjectname", wintypes.DWORD),
        ("columnidobjtyp", wintypes.DWORD),
        ("columniddtCreate", wintypes.DWORD),
        ("columniddtUpdate", wintypes.DWORD),
        ("columnidgrbit", wintypes.DWORD),
        ("columnidflags", wintypes.DWORD),
        ("columnidcRecord", wintypes.DWORD),
        ("columnidcPage", wintypes.DWORD),
    ]
#[repr(C)]
pub struct JET_OBJECTLIST {
    pub cbStruct: u32,
    pub tableid: usize,
    pub cRecord: u32,
    pub columnidcontainername: u32,
    pub columnidobjectname: u32,
    pub columnidobjtyp: u32,
    pub columniddtCreate: u32,
    pub columniddtUpdate: u32,
    pub columnidgrbit: u32,
    pub columnidflags: u32,
    pub columnidcRecord: u32,
    pub columnidcPage: u32,
}
import "golang.org/x/sys/windows"

type JET_OBJECTLIST struct {
	cbStruct uint32
	tableid uintptr
	cRecord uint32
	columnidcontainername uint32
	columnidobjectname uint32
	columnidobjtyp uint32
	columniddtCreate uint32
	columniddtUpdate uint32
	columnidgrbit uint32
	columnidflags uint32
	columnidcRecord uint32
	columnidcPage uint32
}
type
  JET_OBJECTLIST = record
    cbStruct: DWORD;
    tableid: NativeUInt;
    cRecord: DWORD;
    columnidcontainername: DWORD;
    columnidobjectname: DWORD;
    columnidobjtyp: DWORD;
    columniddtCreate: DWORD;
    columniddtUpdate: DWORD;
    columnidgrbit: DWORD;
    columnidflags: DWORD;
    columnidcRecord: DWORD;
    columnidcPage: DWORD;
  end;
const JET_OBJECTLIST = extern struct {
    cbStruct: u32,
    tableid: usize,
    cRecord: u32,
    columnidcontainername: u32,
    columnidobjectname: u32,
    columnidobjtyp: u32,
    columniddtCreate: u32,
    columniddtUpdate: u32,
    columnidgrbit: u32,
    columnidflags: u32,
    columnidcRecord: u32,
    columnidcPage: u32,
};
type
  JET_OBJECTLIST {.bycopy.} = object
    cbStruct: uint32
    tableid: uint
    cRecord: uint32
    columnidcontainername: uint32
    columnidobjectname: uint32
    columnidobjtyp: uint32
    columniddtCreate: uint32
    columniddtUpdate: uint32
    columnidgrbit: uint32
    columnidflags: uint32
    columnidcRecord: uint32
    columnidcPage: uint32
struct JET_OBJECTLIST
{
    uint cbStruct;
    size_t tableid;
    uint cRecord;
    uint columnidcontainername;
    uint columnidobjectname;
    uint columnidobjtyp;
    uint columniddtCreate;
    uint columniddtUpdate;
    uint columnidgrbit;
    uint columnidflags;
    uint columnidcRecord;
    uint columnidcPage;
}

HSP用 定義

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

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

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