Что я понимаю, так это то, что вам нужен клиентский API, который оборачивает связь с очередью.
Вам необходимо создать отдельную библиотеку, которая содержит и экспортирует API, и включить его в программы, которые хотят его использовать.
class Communicator
{
public:
bool putData(Data* data);
bool getData(Data*& data);
};
Реализация Communicator
обеспечивает фактическую связь с очередью через IPC, но вы абстрагируете этот слой.