You got it right in the if statement on line 5: (*ptr_to_tree) -> i deref the ** once, then again with -> to get the 'data' member.
Similarly, to obtain the 'pointer' members: (*ptr_to_tree) -> ptr_to_right
Pass the address of this pointer to Add: return Add( &(*ptr_to_tree) -> ptr_to_right, theNewNode);