Microsoft Information Protection (MIP) SDK for C: Reference 1.15
Doxygen-generated documentation for MIP SDK written in C
Loading...
Searching...
No Matches
metadata_dictionary_cc.h
Go to the documentation of this file.
1/*
2*
3* Copyright (c) Microsoft Corporation.
4* All rights reserved.
5*
6* This code is licensed under the MIT License.
7*
8* Permission is hereby granted, free of charge, to any person obtaining a copy
9* of this software and associated documentation files(the "Software"), to deal
10* in the Software without restriction, including without limitation the rights
11* to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
12* copies of the Software, and to permit persons to whom the Software is
13* furnished to do so, subject to the following conditions :
14*
15* The above copyright notice and this permission notice shall be included in
16* all copies or substantial portions of the Software.
17*
18* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
21* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24* THE SOFTWARE.
25*
26*/
27
28/**
29* @brief Contains C API definitions for a metadata dictionary.
30*
31* @file metadata_dictionary_cc.h
32*/
33
34#ifndef API_MIP_UPE_METADATA_DICTIONARY_CC_H
35#define API_MIP_UPE_METADATA_DICTIONARY_CC_H
36
37#include <stdint.h>
38
40#include "mip_cc/error_cc.h"
42#include "mip_cc/result_cc.h"
43
45
46/**
47 * @brief Metadata entry
48 */
49typedef struct {
50 const char* key; /**< Key entry*/
51 const char* value; /**< Value entry */
52 uint32_t version; /**< Version entry, should be initialized to 0 unless otherwise known*/
54
55/**
56 * @brief Create a dictionary of string keys/values
57 *
58 * @param entries Array of metadata entries
59 * @param count Number of metadata entries
60 * @param dictionary [Output] Newly-created dictionary
61 * @param errorInfo [Output] (Optional) Failure info if operation result is error
62 *
63 * @return Result code indicating success or failure
64 *
65 * @note A mip_cc_dictionary must be freed by calling MIP_CC_ReleaseDictionary
66 */
67MIP_CC_API(mip_cc_result) MIP_CC_CreateMetadataDictionary(
69 const int64_t count,
72
73/**
74 * @brief Get metadata entries that compose a dictionary
75 *
76 * @param dictionary Source dictionary
77 * @param entries [Output] Array of metadata entries, memory owned by mip_cc_dictionary object
78 * @param count [Output] Number of metadata entries
79 * @param errorInfo [Output] (Optional) Failure info if operation result is error
80 *
81 * @return Result code indicating success or failure
82 *
83 * @note The memory for 'entries' is owned by the mip_cc_dictionary object, so it should not be freed independently
84 */
85MIP_CC_API(mip_cc_result) MIP_CC_MetadataDictionary_GetEntries(
88 int64_t* count,
90
91/**
92 * @brief Release resources associated with a dictionary
93 *
94 * @param dictionary Dictionary to be released
95 */
96MIP_CC_API(void) MIP_CC_ReleaseMetadataDictionary(mip_cc_metadata_dictionary dictionary);
97
98#endif // API_MIP_UPE_METADATA_DICTIONARY_CC_H
A file Containing the common types used by the upe, file and protection modules.
Error definition and functions.
const int64_t mip_cc_metadata_dictionary * dictionary
const int64_t mip_cc_metadata_dictionary mip_cc_error * errorInfo
mip_cc_metadata_entry ** entries
const int64_t count
MIP_CC_API(void) MIP_CC_ReleaseMetadataDictionary(mip_cc_metadata_dictionary dictionary)
Release resources associated with a dictionary.
mip_cc_handle * mip_cc_metadata_dictionary
Export/import and other macros for C API.
Defines success/error result codes.
mip_cc_result
API success/failure result.
Definition result_cc.h:44
Error information.
Definition error_cc.h:79
Opaque handle to MIP object.
Metadata entry.
const char * value
Value entry.
const char * key
Key entry.
uint32_t version
Version entry, should be initialized to 0 unless otherwise known.