ホーム › System.AddressBook › NEWMAIL_NOTIFICATION
NEWMAIL_NOTIFICATION
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| cbEntryID | DWORD | 4 | +0 | +0 | lpEntryID が指す新着メッセージのエントリIDサイズ。 |
| lpEntryID | ENTRYID* | 8/4 | +8 | +4 | 新着メッセージのエントリIDへのポインター。 |
| cbParentID | DWORD | 4 | +16 | +8 | lpParentID が指す親フォルダーのエントリIDサイズ。 |
| lpParentID | ENTRYID* | 8/4 | +24 | +12 | 新着メッセージが属する親フォルダーのエントリIDへのポインター。 |
| ulFlags | DWORD | 4 | +32 | +16 | 通知の文字幅などを示すフラグ。 |
| lpszMessageClass | CHAR* | 8/4 | +40 | +20 | メッセージクラスを表す文字列へのポインター。 |
| ulMessageFlags | DWORD | 4 | +48 | +24 | メッセージのフラグ(既読/添付等)を示す値。 |
公式ドキュメント
適用対象: Outlook 2013 | Outlook 2016
新しいメッセージの到着に関連する情報を記述します。
| プロパティ | 値 |
|---|---|
| ヘッダー ファイル: |
Mapidefs.h |
typedef struct _NEWMAIL_NOTIFICATION
{
ULONG cbEntryID;
LPENTRYID lpEntryID;
ULONG cbParentID;
LPENTRYID lpParentID;
ULONG ulFlags;
LPSTR lpszMessageClass;
ULONG ulMessageFlags;
} NEWMAIL_NOTIFICATION;
解説(Remarks)
NEWMAIL_NOTIFICATION 構造体は、NOTIFICATION 構造体の info メンバーに含まれる構造体の共用体のメンバーの 1 つです。NOTIFICATION 構造体の info メンバーが NEWMAIL_NOTIFICATION 構造体を格納している場合、NOTIFICATION 構造体の ulEventType メンバーには fnevNewMail が設定されます。
MAPI は NEWMAIL_NOTIFICATION 構造体を、通知イベントに関する情報をアドバイズ シンクに保持する NOTIFICATION 構造体のメンバーとしてのみ使用します。
通知の詳細については、次の表に示すトピックを参照してください。
| トピック | 説明 |
|---|---|
| Event Notification in MAPI |
通知および通知イベントの概要です。 |
| Handling Notifications |
クライアントが通知をどのように処理すべきかについての説明です。 |
| Supporting Event Notification |
サービス プロバイダーが IMAPISupport メソッドを使用して通知を生成する方法についての説明です。 |
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)
各言語での定義
#include <windows.h>
// NEWMAIL_NOTIFICATION (x64 56 / x86 28 バイト)
typedef struct NEWMAIL_NOTIFICATION {
DWORD cbEntryID;
ENTRYID* lpEntryID;
DWORD cbParentID;
ENTRYID* lpParentID;
DWORD ulFlags;
CHAR* lpszMessageClass;
DWORD ulMessageFlags;
} NEWMAIL_NOTIFICATION;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NEWMAIL_NOTIFICATION
{
public uint cbEntryID;
public IntPtr lpEntryID;
public uint cbParentID;
public IntPtr lpParentID;
public uint ulFlags;
public IntPtr lpszMessageClass;
public uint ulMessageFlags;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NEWMAIL_NOTIFICATION
Public cbEntryID As UInteger
Public lpEntryID As IntPtr
Public cbParentID As UInteger
Public lpParentID As IntPtr
Public ulFlags As UInteger
Public lpszMessageClass As IntPtr
Public ulMessageFlags As UInteger
End Structureimport ctypes
from ctypes import wintypes
class NEWMAIL_NOTIFICATION(ctypes.Structure):
_fields_ = [
("cbEntryID", wintypes.DWORD),
("lpEntryID", ctypes.c_void_p),
("cbParentID", wintypes.DWORD),
("lpParentID", ctypes.c_void_p),
("ulFlags", wintypes.DWORD),
("lpszMessageClass", ctypes.c_void_p),
("ulMessageFlags", wintypes.DWORD),
]#[repr(C)]
pub struct NEWMAIL_NOTIFICATION {
pub cbEntryID: u32,
pub lpEntryID: *mut core::ffi::c_void,
pub cbParentID: u32,
pub lpParentID: *mut core::ffi::c_void,
pub ulFlags: u32,
pub lpszMessageClass: *mut core::ffi::c_void,
pub ulMessageFlags: u32,
}import "golang.org/x/sys/windows"
type NEWMAIL_NOTIFICATION struct {
cbEntryID uint32
lpEntryID uintptr
cbParentID uint32
lpParentID uintptr
ulFlags uint32
lpszMessageClass uintptr
ulMessageFlags uint32
}type
NEWMAIL_NOTIFICATION = record
cbEntryID: DWORD;
lpEntryID: Pointer;
cbParentID: DWORD;
lpParentID: Pointer;
ulFlags: DWORD;
lpszMessageClass: Pointer;
ulMessageFlags: DWORD;
end;const NEWMAIL_NOTIFICATION = extern struct {
cbEntryID: u32,
lpEntryID: ?*anyopaque,
cbParentID: u32,
lpParentID: ?*anyopaque,
ulFlags: u32,
lpszMessageClass: ?*anyopaque,
ulMessageFlags: u32,
};type
NEWMAIL_NOTIFICATION {.bycopy.} = object
cbEntryID: uint32
lpEntryID: pointer
cbParentID: uint32
lpParentID: pointer
ulFlags: uint32
lpszMessageClass: pointer
ulMessageFlags: uint32struct NEWMAIL_NOTIFICATION
{
uint cbEntryID;
void* lpEntryID;
uint cbParentID;
void* lpParentID;
uint ulFlags;
void* lpszMessageClass;
uint ulMessageFlags;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; NEWMAIL_NOTIFICATION サイズ: 28 バイト(x86)
dim st, 7 ; 4byte整数×7(構造体サイズ 28 / 4 切り上げ)
; cbEntryID : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; lpEntryID : ENTRYID* (+4, 4byte) varptr(st)+4 を基点に操作(4byte:入れ子/配列)
; cbParentID : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; lpParentID : ENTRYID* (+12, 4byte) varptr(st)+12 を基点に操作(4byte:入れ子/配列)
; ulFlags : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; lpszMessageClass : CHAR* (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; ulMessageFlags : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; NEWMAIL_NOTIFICATION サイズ: 56 バイト(x64)
dim st, 14 ; 4byte整数×14(構造体サイズ 56 / 4 切り上げ)
; cbEntryID : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; lpEntryID : ENTRYID* (+8, 8byte) varptr(st)+8 を基点に操作(8byte:入れ子/配列)
; cbParentID : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; lpParentID : ENTRYID* (+24, 8byte) varptr(st)+24 を基点に操作(8byte:入れ子/配列)
; ulFlags : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; lpszMessageClass : CHAR* (+40, 8byte) qpoke st,40,値 / qpeek(st,40) ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; ulMessageFlags : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global NEWMAIL_NOTIFICATION
#field int cbEntryID
#field intptr lpEntryID
#field int cbParentID
#field intptr lpParentID
#field int ulFlags
#field intptr lpszMessageClass
#field int ulMessageFlags
#endstruct
stdim st, NEWMAIL_NOTIFICATION ; NSTRUCT 変数を確保
st->cbEntryID = 100
mes "cbEntryID=" + st->cbEntryID