コード例 #1
0
/* This is obviously a very stripped down implementation that only
   attempts to implement the bare minimum functionality needed by this
   plug-in. */
khm_int32 KHMAPI
int_kcdb_get_resource(khm_handle h,
                      kcdb_resource_id r_id,
                      khm_int32 flags,
                      khm_int32 *prflags,
                      void * vparam,
                      void * buf,
                      khm_size * pcb_buf)
{
    if (r_id == KCDB_RES_DISPLAYNAME) {
        return kcdb_buf_get_attr_string(h, KCDB_ATTR_NAME, buf, pcb_buf, 0);
    }
    return KHM_ERROR_NOT_FOUND;
}
コード例 #2
0
ファイル: propertywnd.c プロジェクト: Brainiarc7/pbis
void pw_update_property_data(HWND hw, pw_data * d)
{
    HWND hwnd_lv;
    khm_int32 * attrs = NULL;

    hwnd_lv = d->hwnd_lv;

    if(hwnd_lv == NULL)
        return;

    ListView_DeleteAllItems(hwnd_lv);

    if(d->record != NULL) {
        wchar_t * buffer;
        khm_size attr_count;
        khm_size i;
        khm_size cb_buf;
        khm_size t;
        LVITEM lvi;
        int idx;

        if(KHM_FAILED(kcdb_attrib_get_count(
            KCDB_ATTR_FLAG_VOLATILE |
            KCDB_ATTR_FLAG_HIDDEN,
            0,
            &attr_count)))
            return;

        attrs = PMALLOC(sizeof(khm_int32) * attr_count);
        assert(attrs != NULL);

        kcdb_attrib_get_ids(
            KCDB_ATTR_FLAG_VOLATILE |
            KCDB_ATTR_FLAG_HIDDEN,
            0,
            attrs,
            &attr_count);

        cb_buf = sizeof(wchar_t) * 2048;
        buffer = PMALLOC(cb_buf);
        assert(buffer != NULL);

        for(i=0; i<attr_count; i++) {
            if(KHM_FAILED(kcdb_buf_get_attr(d->record, attrs[i], NULL, NULL, NULL)))
                continue;

            ZeroMemory(&lvi, sizeof(lvi));
            lvi.mask = LVIF_TEXT | LVIF_PARAM;
            lvi.iItem = (int) i;
            lvi.iSubItem = 0;
            lvi.pszText = buffer;
            lvi.lParam = (LPARAM) attrs[i];

            t = cb_buf;
            kcdb_attrib_describe(attrs[i], buffer, &t, KCDB_TS_SHORT);

            idx = ListView_InsertItem(hwnd_lv, &lvi);

            ZeroMemory(&lvi, sizeof(lvi));
            lvi.mask = LVIF_TEXT;
            lvi.iItem = idx;
            lvi.iSubItem = 1;
            lvi.pszText = buffer;

            t = cb_buf;
            kcdb_buf_get_attr_string(d->record, attrs[i], buffer, &t, 0);

            ListView_SetItem(hwnd_lv, &lvi);
        }

        PFREE(attrs);
        PFREE(buffer);
    }
}