summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2016-09-16 19:09:01 -0400
committerRusty Wagner <rusty@vector35.com>2016-09-16 19:09:01 -0400
commit2ec606fab8754dad2135deec2e72e87d39382978 (patch)
tree4c923368406312f0366e27ac10f9a02f5e001c22 /binaryninjacore.h
parent124cf1bc4f465a915621b7ac81af94b9a69a937a (diff)
Add APIs for user interaction from plugins
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 89dceba1..34806b6c 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -1050,6 +1050,26 @@ extern "C"
uint8_t mix, r, g, b, alpha;
};
+ struct BNInteractionHandlerCallbacks
+ {
+ void* context;
+ void (*showPlainTextReport)(void* ctxt, BNBinaryView* view, const char* title, const char* contents);
+ void (*showMarkdownReport)(void* ctxt, BNBinaryView* view, const char* title, const char* contents,
+ const char* plaintext);
+ void (*showHTMLReport)(void* ctxt, BNBinaryView* view, const char* title, const char* contents,
+ const char* plaintext);
+ bool (*getTextLineInput)(void* ctxt, char** result, const char* prompt, const char* title);
+ bool (*getIntegerInput)(void* ctxt, int64_t* result, const char* prompt, const char* title);
+ bool (*getAddressInput)(void* ctxt, uint64_t* result, const char* prompt, const char* title,
+ BNBinaryView* view, uint64_t currentAddr);
+ bool (*getChoiceInput)(void* ctxt, size_t* result, const char* prompt, const char* title,
+ const char** choices, size_t count);
+ bool (*getOpenFileNameInput)(void* ctxt, char** result, const char* prompt, const char* ext);
+ bool (*getSaveFileNameInput)(void* ctxt, char** result, const char* prompt, const char* ext,
+ const char* defaultName);
+ bool (*getDirectoryNameInput)(void* ctxt, char** result, const char* prompt, const char* defaultName);
+ };
+
BINARYNINJACOREAPI char* BNAllocString(const char* contents);
BINARYNINJACOREAPI void BNFreeString(char* str);
@@ -2030,6 +2050,25 @@ extern "C"
BINARYNINJACOREAPI void BNCancelBackgroundTask(BNBackgroundTask* task);
BINARYNINJACOREAPI bool BNIsBackgroundTaskFinished(BNBackgroundTask* task);
+ // Interaction APIs
+ BINARYNINJACOREAPI void BNRegisterInteractionHandler(BNInteractionHandlerCallbacks* callbacks);
+ BINARYNINJACOREAPI char* BNMarkdownToHTML(const char* contents);
+ BINARYNINJACOREAPI void BNShowPlainTextReport(BNBinaryView* view, const char* title, const char* contents);
+ BINARYNINJACOREAPI void BNShowMarkdownReport(BNBinaryView* view, const char* title, const char* contents,
+ const char* plaintext);
+ BINARYNINJACOREAPI void BNShowHTMLReport(BNBinaryView* view, const char* title, const char* contents,
+ const char* plaintext);
+ BINARYNINJACOREAPI bool BNGetTextLineInput(char** result, const char* prompt, const char* title);
+ BINARYNINJACOREAPI bool BNGetIntegerInput(int64_t* result, const char* prompt, const char* title);
+ BINARYNINJACOREAPI bool BNGetAddressInput(uint64_t* result, const char* prompt, const char* title,
+ BNBinaryView* view, uint64_t currentAddr);
+ BINARYNINJACOREAPI bool BNGetChoiceInput(size_t* result, const char* prompt, const char* title,
+ const char** choices, size_t count);
+ BINARYNINJACOREAPI bool BNGetOpenFileNameInput(char** result, const char* prompt, const char* ext);
+ BINARYNINJACOREAPI bool BNGetSaveFileNameInput(char** result, const char* prompt, const char* ext,
+ const char* defaultName);
+ BINARYNINJACOREAPI bool BNGetDirectoryNameInput(char** result, const char* prompt, const char* defaultName);
+
#ifdef __cplusplus
}
#endif