// Copyright © 2015-2017 winapi-rs developers
// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
//! This file contains structures, function prototypes, and definitions for the NetMessage API
use shared::lmcons::NET_API_STATUS;
use shared::minwindef::{DWORD, LPBYTE, LPDWORD};
use um::winnt::{LPCWSTR, LPWSTR};
extern "system" {
    pub fn NetMessageNameAdd(
        servername: LPCWSTR,
        msgname: LPCWSTR,
    ) -> NET_API_STATUS;
    pub fn NetMessageNameEnum(
        servername: LPCWSTR,
        level: DWORD,
        bufptr: *mut LPBYTE,
        prefmaxlen: DWORD,
        entriesread: LPDWORD,
        totalentries: LPDWORD,
        resumehandle: LPDWORD,
    ) -> NET_API_STATUS;
    pub fn NetMessageNameGetInfo(
        servername: LPCWSTR,
        msgname: LPCWSTR,
        level: DWORD,
        bufptr: *mut LPBYTE,
    ) -> NET_API_STATUS;
    pub fn NetMessageNameDel(
        servername: LPCWSTR,
        msgname: LPCWSTR,
    ) -> NET_API_STATUS;
    pub fn NetMessageBufferSend(
        servername: LPCWSTR,
        msgname: LPCWSTR,
        fromname: LPCWSTR,
        buf: LPBYTE,
        buflen: DWORD,
    ) -> NET_API_STATUS;
}
STRUCT!{struct MSG_INFO_0 {
    msgi0_name: LPWSTR,
}}
pub type PMSG_INFO_0 = *mut MSG_INFO_0;
pub type LPMSG_INFO_0 = *mut MSG_INFO_0;
STRUCT!{struct MSG_INFO_1 {
    msgi1_name: LPWSTR,
    msgi1_forward_flag: DWORD,
    msgi1_forward: LPWSTR,
}}
pub type PMSG_INFO_1 = *mut MSG_INFO_1;
pub type LPMSG_INFO_1 = *mut MSG_INFO_1;
pub const MSGNAME_NOT_FORWARDED: DWORD = 0;
pub const MSGNAME_FORWARDED_TO: DWORD = 0x04;
pub const MSGNAME_FORWARDED_FROM: DWORD = 0x10;
