It's also worth considering the following couple of sentences, that put the answer in a slightly different way:
"The handle declarator (^, pronounced "hat"), modifies the type specifier to mean that the declared object should be automatically deleted when the system determines that the object is no longer accessible."
"Because native C++ pointers (*) and references (&) are not managed references, the garbage collector cannot automatically update the addresses they point to. To solve this problem, use the handle declarator to specify a variable that the garbage collector is aware of and can update automatically."
(And "native" is I.M.H.O. a better word than 'handle', as handle is possibly a word that was brought more so in by the use of the 'Windows SDK')