⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 functions.h

📁 用STL的方式封装了WindowsAPI、COM调用、ACE、ATL、MFC、WTL等多种组件
💻 H
📖 第 1 页 / 共 2 页
字号:
            '\0' != u.infoa_.szName[0])
        {
            *infoa = u.infoa_;
        }
        else
        {
            /* ANSI failed, so try Unicode. */
            u.infow_.dwSize = sizeof(NEWCPLINFOW);

            stlsoft_static_cast(void, (*entry)(hwnd, CPL_NEWINQUIRE, stlsoft_static_cast(LONG, index), stlsoft_reinterpret_cast(LONG, &u.infow_)));

            STLSOFT_NS_GLOBAL(WideCharToMultiByte)(0, 0, u.infow_.szName, -1, infoa->szName, STLSOFT_NUM_ELEMENTS(u.infoa_.szName), NULL, NULL);
            STLSOFT_NS_GLOBAL(WideCharToMultiByte)(0, 0, u.infow_.szInfo, -1, infoa->szInfo, STLSOFT_NUM_ELEMENTS(u.infoa_.szInfo), NULL, NULL);
            STLSOFT_NS_GLOBAL(WideCharToMultiByte)(0, 0, u.infow_.szHelpFile, -1, infoa->szHelpFile, STLSOFT_NUM_ELEMENTS(u.infoa_.szHelpFile), NULL, NULL);
        }
    }
}

/** \brief [C, C++] Issues a run control (CPL_DBLCLK) to a control panel applet, including caller-supplied data.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
STLSOFT_INLINE BOOL winstl__control_panel_run_data(control_panel_entry_t entry, HWND hwnd, ss_size_t index, LONG data)
{
    WINSTL_ASSERT(NULL != entry);

    return !stlsoft_static_cast(BOOL, (*entry)(hwnd, CPL_DBLCLK, stlsoft_static_cast(LONG, index), data));
}

/** \brief [C, C++] Issues a run control (CPL_STARTWPARMSA) to a control panel applet, including caller-supplied parameter string.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
STLSOFT_INLINE BOOL winstl__control_panel_run_params_a(control_panel_entry_t entry, HWND hwnd, ss_size_t index, ws_char_a_t const *params)
{
    WINSTL_ASSERT(NULL != entry);

    return stlsoft_static_cast(BOOL, (*entry)(hwnd, CPL_STARTWPARMSA, stlsoft_static_cast(LONG, index), (LONG)params));
}

/** \brief [C, C++] Issues a run control (CPL_STARTWPARMSW) to a control panel applet, including caller-supplied parameter string.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
STLSOFT_INLINE BOOL winstl__control_panel_run_params_w(control_panel_entry_t entry, HWND hwnd, ss_size_t index, ws_char_w_t const *params)
{
    WINSTL_ASSERT(NULL != entry);

    return stlsoft_static_cast(BOOL, (*entry)(hwnd, CPL_STARTWPARMSW, stlsoft_static_cast(LONG, index), (LONG)params));
}

/** \brief [C, C++] Issues a stop control (CPL_STOP) to a control panel applet.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
STLSOFT_INLINE void winstl__control_panel_stop(control_panel_entry_t entry, HWND hwnd, ss_size_t index, LONG data)
{
    WINSTL_ASSERT(NULL != entry);

    stlsoft_static_cast(void, (*entry)(hwnd, CPL_STOP, stlsoft_static_cast(LONG, index), data));
}

/* /////////////////////////////////////////////////////////////////////////
 * C++ functions
 */

#ifdef __cplusplus

/* /////////////////////////////////////////////////////////////////////////
 * 
 */

/** \brief Initialises a control panel applet module.
 *
 * \ingroup group__library__windows_control_panel
 */
inline BOOL control_panel_init(control_panel_entry_t entry, HWND hwnd)
{
    return winstl__control_panel_init(entry, hwnd);
}

/** \brief Uninitialises a control panel applet module.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
inline void control_panel_uninit(control_panel_entry_t entry, HWND hwnd)
{
    winstl__control_panel_uninit(entry, hwnd);
}

/** \brief Retrieves the number of control panel applets within a control panel applet module.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
inline ss_size_t control_panel_get_count(control_panel_entry_t entry, HWND hwnd)
{
    return winstl__control_panel_get_count(entry, hwnd);
}

/** \brief Issues an inquiry control (CPL_INQUIRE) to a control panel applet.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
inline void control_panel_inquire(control_panel_entry_t entry, HWND hwnd, ss_size_t index, LPCPLINFO info)
{
    winstl__control_panel_inquire(entry, hwnd, index, info);
}

/** \brief Issues a "new" inquiry control (CPL_NEWINQUIRE) to a control panel applet.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
inline void control_panel_newinquire(control_panel_entry_t entry, HWND hwnd, ss_size_t index, LPNEWCPLINFO info)
{
    winstl__control_panel_newinquire(entry, hwnd, index, info);
}

/** \brief Issues a run control (CPL_DBLCLK) to a control panel applet, including caller-supplied data.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
inline BOOL control_panel_run_data(control_panel_entry_t entry, HWND hwnd, ss_size_t index, LONG data)
{
    return winstl__control_panel_run_data(entry, hwnd, index, data);
}

/** \brief Issues a run control (CPL_STARTWPARMSA) to a control panel applet, including caller-supplied parameter string.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
inline BOOL control_panel_run_params_a(control_panel_entry_t entry, HWND hwnd, ss_size_t index, ws_char_a_t const *params)
{
    return winstl__control_panel_run_params_a(entry, hwnd, index, params);
}

/** \brief Issues a run control (CPL_STARTWPARMSW) to a control panel applet, including caller-supplied parameter string.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
inline BOOL control_panel_run_params_w(control_panel_entry_t entry, HWND hwnd, ss_size_t index, ws_char_w_t const *params)
{
    return winstl__control_panel_run_params_w(entry, hwnd, index, params);
}

/** \brief Issues a run control (CPL_DBLCLK) to a control panel applet, including caller-supplied data.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
inline BOOL control_panel_run(control_panel_entry_t entry, HWND hwnd, ss_size_t index, LONG data)
{
    return control_panel_run_data(entry, hwnd, index, data);
}

/** \brief Issues a run control (CPL_STARTWPARMSA) to a control panel applet, including caller-supplied parameter string.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
inline BOOL control_panel_run(control_panel_entry_t entry, HWND hwnd, ss_size_t index, ws_char_a_t const *params)
{
    return control_panel_run_params_a(entry, hwnd, index, params);
}

/** \brief Issues a run control (CPL_STARTWPARMSW) to a control panel applet, including caller-supplied parameter string.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
inline BOOL control_panel_run(control_panel_entry_t entry, HWND hwnd, ss_size_t index, ws_char_w_t const *params)
{
    return control_panel_run_params_w(entry, hwnd, index, params);
}

/** \brief Issues a stop control (CPL_STOP) to a control panel applet.
 *
 * \ingroup group__library__windows_control_panel
 *
 */
inline void control_panel_stop(control_panel_entry_t entry, HWND hwnd, ss_size_t index, LONG data)
{
    winstl__control_panel_stop(entry, hwnd, index, data);
}

/* ////////////////////////////////////////////////////////////////////// */

#endif /* __cplusplus */

/* /////////////////////////////////////////////////////////////////////////
 * Unit-testing
 */

#ifdef STLSOFT_UNITTEST
# include "./unittest/functions_unittest_.h"
#endif /* STLSOFT_UNITTEST */

/* ////////////////////////////////////////////////////////////////////// */

#ifndef _WINSTL_NO_NAMESPACE
# if defined(_STLSOFT_NO_NAMESPACE) || \
     defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
} /* namespace winstl */
# else
} /* namespace winstl_project */
} /* namespace stlsoft */
# endif /* _STLSOFT_NO_NAMESPACE */
#endif /* !_WINSTL_NO_NAMESPACE */

/* ////////////////////////////////////////////////////////////////////// */

#endif /* WINSTL_INCL_WINSTL_CONTROL_PANEL_H_FUNCTIONS */

/* ////////////////////////////////////////////////////////////////////// */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -